будет кэшироваться скрипт в теге html с расширением php? - PullRequest
0 голосов
/ 19 ноября 2008

например <script type="text/javascript" src="assets/scripts/somescript.php"></script> мой браузер все еще будет кешировать это, просто не устанавливая кеш мета-тега заголовков скриптов для обязательной повторной проверки?

Ответы [ 3 ]

2 голосов
/ 19 ноября 2008

Некоторые браузеры более агрессивны с кэшированием по умолчанию, чем другие. Однако есть заголовки управления кэшем, которые вы можете отправить, чтобы указать, когда нужно перезагрузить код.

header("Expires: " . date("r", time() + ( 60 * 60 * 24 * 7 * 1 ) ) ); // Expires in 1 week
header("Content-Type: application/x-javascript");

Это фрагмент кода, который я уже использовал.

Вы можете использовать более причудливые вещи, такие как заголовки If-Not-Modified и ETag, но время истечения - единственные, которые исключают дополнительные вызовы сервера.

0 голосов
/ 19 ноября 2008

Один трюк - написать тэг скрипта с постоянно изменяющейся строкой запроса. Ваш основной PHP может написать следующее, которое меняется каждый день:

<script type="text/javascript" src="assets/scripts/somescript.php?date=20081118"></script> 

Строка запроса будет игнорироваться файлом somescript.php, но браузер будет каждый раз обрабатывать URL-адрес как новый и перезагружать скрипт.

0 голосов
/ 19 ноября 2008

Если вы отправите Content-type: text/javascript; charset="your_charset", браузер распознает ваш PHP-скрипт как допустимый ресурс Javascript и обработает его, как любой другой Javascript. Вы можете контролировать поведение кэширования браузера, выдавая правильные заголовки в своем скрипте PHP, используя header().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...