Как предотвратить сохранение написанного на javascript-контента в кеше wyciwyg в Firefox? - PullRequest
3 голосов
/ 14 апреля 2011

Я работаю с пользовательскими данными и не могу разрешить их кэширование.

Я тестирую с Firefox 4 и сервером Tomcat 6 с контролем кэша, установленным в no-cache, no-store, private, must-revalidate, max-age = 0. Я также установил заголовок expires.

Но Firefox по-прежнему генерирует файл wyciwyg (что вы кешируете, то что получаете) в своем кеше. Это можно считать механизмом истории, а не механизмом кэширования. Но он все еще хранит пользовательские данные.

Примером является http://www.w3schools.com/Ajax/ajax_example.asp. В Firefox 4.0 страница about: cache (особенно about: cache? Device = disk) показывает файл wyciwyg: //, а также дату истечения срока действия, установленную на «No expiration time». Хуже всего то, что кэш сохраняется после закрытия и перезапуска браузера.

После расследования для меня генерируется wyciwyg с содержимым вызова javascript document.write ().

Как это предотвращает кеширование Firefox этого? В идеале без изменения document.write ()?

1 Ответ

2 голосов
/ 14 апреля 2011

Вы проверяли с помощью Firebug, что заголовки кэша действительно отправляются в браузер?

Но в любом случае есть простое решение для предотвращения кэширования: добавьте параметр timestamp в URL запроса.

url = '/my/ajax/script?_=' + new Date().getTime();

Этот прием также используется многими библиотеками JS.Если вы используете jQuery, достаточно передать cache: false в параметры запроса AJAX.

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