У меня есть эмулятор, который я написал для тестирования веб-приложений для смарт-ТВ. Сам эмулятор - это веб-приложение с простым интерфейсом, показывающим телевизор и удаленный доступ, и загружает веб-приложение, тестируемое внутри iframe. Пользователи запускают эмулятор из командной строки, который запускает два простых HTTP-сервера (один для эмулятора, один для тестируемого веб-приложения), затем запускает chrome, используя ключ командной строки -app, указывающий его на мой эмулятор.Предотвращение кэширования iframe в Chrome
Проблема в том, что каждый раз, когда Chrome запускается, он загружает кешированную версию веб-приложения. Если вы внесли изменения в свое веб-приложение с момента последнего запуска, они не отображаются, пока вы не будете сильно обновлять страницу.
Чтобы обойти эту проблему, я попытался следующие:
- Запуск Chrome с добавлением переключателя повреждают-кэша
- добавляющим случайный из параметров запроса в URL запуска передается хром (например:
--app=http://localhost:6001/?random={some_hash}
) - прилагая случайный параметров запроса к веб-приложения URL, указанный в IFRAME
ни один из них, кажется, сделать трюк, однако. Код эмулятора, похоже, не кэшируется, поскольку URL-адрес src в iframe действительно получает новое случайное значение, добавляемое к нему каждый раз. Однако страница, загруженная в iframe, является старой и всегда требует обновления после первоначального запуска.
Любые другие вещи, которые я могу попробовать, чтобы я не накрывал выше?
Далее пример выпуска:
- Пользователь запускает эмулятор впервые для веб-приложение 1
- Веб-приложение 1 показано в эмуляторе
- Пользователь закрывает эмулятор
- Пользователь запустил чес эмулятор для веб-приложение 2
- Веб-приложение 1 показано в эмуляторе
В этом случае эмулятор будет запущен и до сих пор показывают, веб-приложение 1. Он продолжает демонстрировать веб-приложение 1 до обновления, пока пользователь не выполнит жесткое обновление (cmd + shift + r), после чего отобразится веб-приложение 2.
Поскольку вы контролируете сервер, вы пробовали, включая все возможные директивы для отключения кэширования в заголовках ответа? – Xan
Хорошая точка. Хотя я не уверен, как бы я это сделал. Эмулятор упакован как рубиновый камень, и я использую webrick в качестве http-сервера. Наверное, у меня есть кое-что. – Danny
[This] (http://tobyho.com/2009/09/16/http-server-in-5-lines-with/) - интересная страница. – Xan