Как Вы препятствуете тому, чтобы Firefox и Safari кэшировали iframe содержание?
У меня есть простая веб-страница с iframe к странице на другом сайте. И внешняя страница и внутренняя страница имеют заголовки ответа HTTP для предотвращения кэширования. Когда я нажимаю "заднюю" кнопку в браузере, внешняя страница работает правильно, но независимо от того, что, браузер всегда получает кэш iframed страницы. IE работает просто великолепно, но Firefox и Safari дают мне проблему.
Моя веб-страница выглядит примерно так:
var
переменная всегда изменяется. Несмотря на то, что URL iframe изменился (и таким образом, браузер должен выполнять новый запрос к той странице), браузер просто выбирает кэшируемое содержание.
Я исследовал Запросы HTTP и ответы, идущие назад и вперед, и я заметил это, даже если внешняя страница содержит , браузер все еще выберет
webpage2.html?var=111
.
Вот то, что я попробовал до сих пор:
Я не могу сделать любые приемы JavaScript, потому что я заблокирован политикой того-же-источника.
У меня заканчиваются идеи. Кто-либо знает, как мешать браузеру кэшировать iframed содержание?
Я установил Fiddler2, поскольку Daniel предложил выполнить другой тест, и к сожалению, я все еще получаю те же результаты.
Это - тест, который я выполнил:
Math.random()
в JSP.С этим тестом я могу видеть точно, который страницы обновляют, и какие страницы кэшируются.
Для быстрого теста я загружаю страницу, перешел к другой странице и затем оттесняю. Вот результаты:
Исходная страница:
Страница Leaving, затем защищаясь:
Это показывает, что внутренняя страница кэшируется, даже при том, что внешняя страница звонит, это с другим ПОЛУЧАЕТ параметр в URL. По некоторым причинам браузер игнорирует то, что iframe запрашивает новый URL; это просто загружает старый.
Конечно же, Скрипач подтверждает то же самое.
(Я загружаю страницу.)
Внешнюю страницу называют. HTML:
0.21300034290246206
http://ipv4.fiddler:1416/page1.aspx?var=0.21300034290246206 называют.
(Я перешел далеко от страницы и затем защищаюсь.)
Внешнюю страницу называют. HTML:
0.4470929019483644
http://ipv4.fiddler:1416/page1.aspx?var=0.21300034290246206 называют.
Ну, от этого теста выглядит, как будто веб-браузер не кэширует страницу, но это кэширует URL iframe и затем выполняет новый запрос на том кэшируемом URL. Однако я все еще озадачен относительно того, как решить эту проблему.
У кого-либо есть какие-либо идеи о том, как мешать веб-браузеру кэшировать iframe URL?
Сделайте так, чтобы URL-адрес iframe указывал на страницу вашего сайта, которая действует как прокси для получения и возврата фактического содержимого iframe. Теперь вы больше не связаны политикой одного и того же происхождения (EDIT: не предотвращает проблему кеширования iframe).
Вы установили Fiddler2 ?
Это позволит вы точно видите, что запрашивается, что отправляется обратно и т. д. Кажется маловероятным, чтобы браузер действительно попал в свой кеш для разных URL-адресов.