Кэширование скрипта jQuery на локальном хосте - PullRequest
1 голос
/ 02 декабря 2010

У меня есть веб-приложение ASP.NET 3.5, написанное на VS 2010. У меня есть aspx со ссылкой на скрипт на файл .js, который находится в папке Scripts.

<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script src="Scripts/HeaderControl.js" type="text/javascript"></script>

Внутри .jsфайл Я использую jQuery для выполнения различных операций, одна из которых была просто оператором отладки, который использовал alert, чтобы выложить значение на странице, чтобы я мог видеть, что это было.

if ($) {
    $(document).ready(function () {
        $("input[id='q']").click(function($e) {
            alert("clicked");
        });
    });
}

Это всеработал отлично, пока я не пошел, чтобы удалить оператор отладки (предупреждение "нажал").Полностью удалив его из .js, я перестроил проект, нажал F5, чтобы запустить его на моей локальной машине, но как только я нажал на тег ввода выше , предупреждение все равно появилось и сказало «нажал». Я пытался одно за другим, пытаясь заставить веб-приложение понять, что .js был изменен, но оно продолжало отображать предупреждение каждый раз, когда я нажимал на тег ввода.Наконец я решил переименовать .js во что-то совершенно другое, и в это время веб-приложение осознало, что .js был изменен, и перестало отображать предупреждение, когда я нажимал на тег ввода.

Итакпочему этот файл .js кэшируется?Это очень раздражающее поведение, и я хотел бы знать, что именно вызвало его.Любая помощь будет оценена.Спасибо!

РЕДАКТИРОВАТЬ: Браузер был IE7.Я не проверял, сделал ли он это и в Mozilla.Несмотря на это, я сделал как минимум 100 различных файлов .js и никогда раньше не замечал такого поведения.Единственное отличие для меня заключается в том, что этот .js находится в веб-приложении, тогда как обычно я создаю их в проектах веб-сайтов ASP.NET.

1 Ответ

3 голосов
/ 02 декабря 2010

Вам нужно Shift + Обновить или просто очистить кеш браузера.

Это нормальное поведение:

Javascript и *Файлы 1009 * CSS даже не проверяют наличие новой версии (запрос If-Modified-Since), если старая версия все еще действительна в соответствии с заголовками кэша в ответе, отправленном в первый раз.

Я полагаючто если вы добавите в конец URL любую строку запроса, даже просто ?, то есть некоторые браузеры (по крайней мере, Firefox) будут менять для проверки наличия новой версии файла каждый раз, как этобудет для изображений.Это может быть полезно во время разработки.

Некоторые разработчики также добавляют версию к файлу (?123), чтобы они могли заставить браузер полностью игнорировать кэш при выпуске новой версии веб-приложения.,Я не уверен, насколько это эффективно, если у вас уже есть вопросительный знак в конце, так как он все равно будет искать обновленную версию (опять же, не уверен во всех браузерах).

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