Comments 16
Возможно, автор сей статьи сможет заодно пояснить, почему при нажатии кнопки «Назад» в Safari, если предыдущая страница была главной, часто перекидает на незалогиненную страницу :)? Разработчики Хабра добавили костыль, который перезагружает страницу, когда это происходит, но всё равно механизм этого бага очень интересен.
+2
В Using Firefox 1.5 caching написано — если страница использует unload, то кэширование не работает, вы немного уточняете это утверждение. Но все же не понятно в какой момент и как браузер определяет наличие обработчика unload, если как описано в документации, то как только вы что-то повесили на unload, то мы можем говорить, что мы уже используем unload даже если потом мы отцепили обработчик. Мне приходит в голову единственный момент, в который браузер проверяет наличие обработчика это после его исполнения unload, тогда почему нельзя его использовать, статья начиналась с фразы
Разработчик может посчитать, что данное поведение ни что иное как баг браузера или какая-то его особенность, и в поисках быстрого решения бездумно вставить лишний обработчик на событие unload (первый пункт в списке, приведенном дальше). Тем самым разработчик отказывается от BFCache вообще, тем самым лишая своих пользователей возможности практически мгновенного перемещения по посещенным страницам.
0
Грубо говоря браузер после того как уйти со страницы выполнив все обработчики в том числе и unload, уже в своем окружении проверяет, а висит ли хоть один обработчик на unload, если его unload undefined, то тогда кэшировать, если остальные конечно условия в вашем списке тоже выполняются. Так ли это?
0
Вопрос — как можно принудительно отключить в Мозилле кэширование страниц, с которых ушел, а то уж больно безбожно жрёт память.
P.S. Как, как может 5 страничек с обычными ненагруженными страничками пожирать 624 Мб памяти?
P.S. Как, как может 5 страничек с обычными ненагруженными страничками пожирать 624 Мб памяти?
0
Эх… вспоминаю теплое ламповое кэширование страниц в Opera < 9.20 (с версией могу ошибиться). Которое было включено всегда. И пусть скрипты ломались при этом, но на диалапе такое кэширование было то что надо.
+5
Opera… Сколько в слове этом. Вспомнилось как лет 5 назад мне нужно было получить расписание экзаменов. Мы привыкли что оно всё время доступно в сети и никуда не переписывали. Осталась пара дней до экзамена, а во сколько он и в какой аудитории никто не знает. Ну а сайт лежит мёртвым сном. Я вспомнил что посещал эту страницу ранее, около 2-3-ёх недель назад. Включил offline-режим, набрал нужный URL и страница «всплыла передо мной». Со всеми стилями и пр… Такой кеш надолго запомнился. А сейчас такое поведение, наверное, уже почти не встретишь. Повсюду груды JavaScript-а и прочих сложностей, сводящих подобный кеш на нет.
+5
Меня один раз так Firefox спас когда я вкладки перепутал и вместо главного шаблона сайта в админке вставил шаблон от компонента (сайт был на Битрикс и без какого-либо доступа кроме админки). Увидев как вместо сайта пустую страницу я сообразил что что-то не то и чуть было уже не отложил кирпичей. Но вовремя вспомнил про «Автономный режим». Пару кликов «Назад» и вот уже передо мной форма с оригинальным кодом шаблона. Отключил кэширование и ткнул по сабмиту в форме… Пронесло =)
+3
Когда пользователь возвращается на закешированную страницу, скрипты не выполняются заново
Важно уточнить, что не выполняются только внешние скрипты, подключенные через script src="". Inline-скрипты выполняются всегда. Не берусь утверждать, но по-моему так будет более кроссбраузерно.
-1
Скрипты уже выполнились. Если их выполнить повторно, то это может только привести к ошибкам, а пользы никакой не даст.
0
Польза будет та же что и от pageshow/pagehide. Ошибки выявляются на этапе тестирования.
Тем не менее факт остается фактом: inline-скрипты выполняются при переходе вперед/назад.
Тем не менее факт остается фактом: inline-скрипты выполняются при переходе вперед/назад.
0
Не подтверждаю. Кликаю назад в firefox — inline скрипт не выполняется. Chromium выполняет оба. Т.е. перегружает страницу.
0
Sign up to leave a comment.
Back/Forward Cache — механизм кеширования страниц в браузере