Использование JavaScript для аннулирования кэша браузера - PullRequest
4 голосов
/ 30 января 2010

Я делаю проект в Django и использую djangos-css (http://github.com/dziegler/django-css) и Sass (http://sass -lang.com / ). Файлы Sass разрабатываются с использованием django-css. Я хочу написать подпрограмму JavaScript, которая будет каждую секунду извлекать ресурсы CSS. Цель этого заключается в том, чтобы дизайнер мог редактировать файлы Sass, нажимать кнопку сохранения и видеть результат в браузере немедленно, не переключая приложения. и нажимаю освежить.

В основном мне нужен способ, чтобы JavaScript заставлял браузер перезагружать определенные файлы без обновления страницы. Возможно ли это?

Ответы [ 2 ]

2 голосов
/ 02 декабря 2011

Не все кэши будут кэшировать контент с помощью строки запроса.

Стив Соудерс рекомендует «… избегать строки запросов для кешируемых ресурсов». Он обнаружил, что в этом случае 5-20% запросов не будут кэшироваться. В частности, строки запроса вообще не работают с некоторыми CDN для аннулирования кэша.

Лучший способ - сгенерировать MD5 с именем файла javascript для каждого выпуска, например,

{path to script file}/filename-{md5 hash}.js

2 голосов
/ 31 января 2010

Самый простой способ - добавить уникальный параметр в URL, я часто просто использую метку времени

var timestamp = (new Date()).getTime();
url += '?time=' + timestamp;

Просто будьте осторожны, если ваши запросы уже имеют параметры, тогда вам нужно добавить &time=' + timstamp.

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

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