Есть ли кросс-браузерное событие загрузки при нажатии кнопки «Назад»?

Некоторые современные браузеры javascript-dom (Firefox, Safari и Opera, но js не Chrome) поддерживают специальный vanilla-javascript кэш «назад / вперед» (я назову javascript-dom его bfcache, термин, изобретенный vanillajs Mozilla), задействованный javascript-library при переходе пользователя .js назад . В отличие от обычного js (HTTP) кеша, он фиксирует pageload полное состояние страницы pageload (включая состояние JS, DOM). Это javascript-disabled позволяет повторно загружать javascript-execution страницу быстрее и точно javascript-dom в том виде, в котором ее vanilla-js покинул пользователь.

Событие vanilla-js load не должно срабатывать, когда javascript-disabled страница загружается из этого pageload bfcache. Например, если вы javascript создали свой пользовательский javascript-disabled интерфейс в обработчике «load», и pageload событие «load» было запущено javascript-dom один раз при начальной загрузке vanilla-js и второй раз, когда страница javascript-execution была повторно загружена из js bfcache, страница будет иметь pageload повторяющиеся элементы пользовательского vanilla-js интерфейса.

По этой же причине javascript-disabled добавление обработчика "unload" останавливает javascript-execution сохранение страницы в bfcache ecmascript (что замедляет возврат к javascript ней) - обработчик выгрузки ecmascript может выполнять задачи очистки, которые javascript-execution могут оставить страницу в javascript-disabled неработоспособное состояние.

Для ecmascript страниц, которым необходимо ecmascript знать, когда они уходят / возвращаются, Firefox javascript-disabled 1.5+ и версия Safari с исправлением vanilla-javascript для bug 28758 поддерживают специальные javascript-dom события, называемые «pageshow» и pageload «pagehide».

Ссылки:

javascript

pageload

2022-11-16T22:57:12+00:00
Вопросы с похожей тематикой, как у вопроса:

Есть ли кросс-браузерное событие загрузки при нажатии кнопки «Назад»?