Skip to content

Instantly share code, notes, and snippets.

@victor-homyakov
Last active August 10, 2024 22:35
Show Gist options
  • Save victor-homyakov/93c0a42e5471cee055cc8646a534e744 to your computer and use it in GitHub Desktop.
Save victor-homyakov/93c0a42e5471cee055cc8646a534e744 to your computer and use it in GitHub Desktop.
API, которые влияют на попадание страницы в bfcache
  • ✔︎ - не мешает попаданию страницы в bfcache
  • ✘ - запрещает попадание страницы в bfcache
  • пустая ячейка - влияние неизвестно
API Firefox Safari Chromium IE
Подписка на beforeunload
Подписка на unload
Незавершённые запросы XHR/fetch ✘ в планах прерывать запрос и вызывать onerror при восстановлении страницы
Незавершённые запросы за ресурсами ✘ кроме favicon
Не окончена загрузка страницы ✘ ждёт события load ✘ ждёт события load ✘ ждёт события DOMContentLoaded ✘ ждёт событий load и pageshow
Пользователь остановил долго выполняющийся скрипт
Вложенный фрейм (IFRAME и т.п.) запрещает bfcache
Замена страницы в истории ✘ history.replaceState ✘ reload/redirect/replace
Был использован wnd = window.open (несколько страниц с одного origin могут синхронно общаться через wnd и window.opener)
Страница не HTTPS ✘ вроде бы можно HTTP
Страница HTTPS и разрешён mixed content (HTTPS+HTTP)
HTTP статус не OK
Страница получена не через HTTP GET
Cache-Control: no-store
Используется Application Cache
Используется Cache Storage
Есть плагины
Есть элемент управления ActiveX
Активный поток аудио/видео из getUserMedia
Активное соединение WebRTC
Незавершённая транзакция IndexedDB баг
Service Worker ✘ в планах скрывать страницу в bfcache от Service Worker
WebWorker (Dedicated, Shared) ✘ в планах останавливать Dedicated Worker и скрывать страницу в bfcache от Shared Worker
WebSocket
WebVR
Есть EME-контент (Encrypted Media Extensions, для DRM-видео)
Есть MSE-контент (Media Source Extensions, HTML5 видео и аудио)
Активен синтез речи
Используется DeviceMotion или DeviceOrientation ✘ если не на iOS
На странице разрешены нотификации
Разрешен доступ к MIDI
WebGL, WebUSB, WebBluetooth
Разрешен доступ к Geolocation
Используется MessageChannel ?
Открыты DevTools
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment