Программно сбросить кеш браузера в Ruby (или удалить выбранный элемент из кеша браузера)? - PullRequest
0 голосов
/ 11 ноября 2009

Я хотел бы создать грабли или что-то для очистки кэша браузера. Проблема в том, что я запускаю приложение Flash, и если я изменяю данные, мне чаще всего требуется сбросить кэш браузера, чтобы он удалял старый swf и мог видеть новые данные xml.

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

Спасибо за помощь!

Ответы [ 4 ]

2 голосов
/ 11 ноября 2009

Я вижу несколько возможных решений:

  1. Напишите сценарий оболочки, который удаляет временные файлы с диска из кэша (какой браузер вы используете?). Я не уверен, что удаление файлов на диске обязательно будет работать, если браузер кэширует их в памяти.
  2. Используйте и заголовок HTTP (No-Cache), чтобы избежать кэширования в браузере, Adobe имеет документацию по No-Cache . Вы можете установить этот заголовок только в режиме разработки, чтобы в производственном процессе SWF-файл кэшировался.
  3. В зависимости от вашего браузера принудительно обновлять страницу и кэш (например, Crtl-F5 в Firefox)
1 голос
/ 11 ноября 2009

Я не уверен, как вы загружаете данные XML, но в прошлом я обошел эту проблему, добавив случайное число к пути файла XML:

xml.load("data.xml?"+Math.random());

По сути, Flash всегда будет думать, что файл - это другой URL. Он не сможет найти совпадение в вашем кеше.

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

Надеюсь, это поможет.

0 голосов
/ 11 ноября 2009

Поскольку вы используете Safari, вот статья , описывающая, как использовать AppleScript для очистки кэша. Но вы, вероятно, можете просто пропустить часть AppleScript и удалить файлы непосредственно в задаче rake. Единственный улов может быть в том, что вам нужно перезапустить браузер, чтобы он вступил в силу, но это можно сделать с помощью уничтожения процесса и «open /Applications/Safari.app» (я предполагаю, что вы на Mac; в Windows это будет что-то вроде запуска «c: \ program files \ Safari ...»).

0 голосов
/ 11 ноября 2009

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

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

Вы можете установить для них NoCache, просто имейте в виду, что он будет попадать на сервер каждый раз

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