Кнопка возврата в Chrome: предоставляется только кешированная версия начальной страницы без какого-либо содержимого Ajaxed.
У меня две страницы: A и B. Поток выглядит следующим образом:
- Перейти к A
- javascript Ajaxes представляет собой кучу контента для добавления в A, образуя A '
- перейти к B
- нажатие [Назад] возвращается к A, а не A ', без содержимого Ajaxed
Кто-нибудь еще заметил это, и если да, то как вы это исправите?
Если Chrome был кешировать состояние A перед загрузкой в B и воспроизводит A 'назад, это было бы приемлемо. Если Chrome просто повторно загрузил все A (включая запросы Ajax, которые преобразовали его в A), которые тоже будут работать. Текущее поведение, которое загружает старую, неполную версию A, не то, что я хочу.
EDIT: Я знаю, что он загружает кешированную версию, потому что сервер не получает никаких новых запросов, когда я нажимаю [Назад].
Ответы
Ответ 1
Эта тема устарела, но я решил поделиться своим решением. Чтобы заставить Firefox, Chrome и Safari вести себя последовательно, вам нужно установить обработчик выгрузки на странице, которую нужно перезагрузить при возвращении, а также использовать заголовки с ошибками кеша.
пример
В заголовках HTTP
Cache-Control: must-revalidate, no-store, no-cache, private
И в javascript для страницы
$(window).unload(function(){}); // Does nothing but break the bfcache
Читайте здесь для получения дополнительной информации: http://madhatted.com/2013/6/16/you-do-not-understand-browser-history
Ответ 2
Я знаю, что тема старая, но решение этой проблемы не так просто найти, я просто потратил несколько часов на ее решение. Эти две линии решили проблему Chrome для меня:
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();
Ответ 3
Ну, если вы используете xhr-запрос, а не скрытые кадры, кнопки назад и вперед не привязываются к запросу xhr