В конце прошлого года в Google Chrome появились 2 новых режима
- Memory Saver (Экономия памяти)
- Energy Saver (Энергосбережение)
Они позволяют более гибко управлять использованием системных ресурсов браузером.
🔸 Memory Saver: Этот режим автоматически освобождает неиспользуемые фоновые вкладки, чтобы освободить память для активных вкладок и других запущенных приложений. Но для сложных сайтов с интерактивностью это может привести к проблемам восстановления состояния страницы.
🔸 Energy Saver: Режим Energy Saver позволяет браузеру снизить частоту обновления экрана для экономии заряда батареи. Обычно, для большинства сайтов, не требуется внесение изменений, но если вы используете JavaScript-анимации, имейте в виду, что они могут замедлиться.
👉 Важно, чтобы веб-разработчики учитывали эти новые режимы и обеспечивали безупречный опыт для пользователей. Рекомендуется сохранять состояние пользователей при изменении их активности и обрабатывать перезагрузки страницы после удаления вкладок.
В данный момент нет никаких событий, которые будут запущены перед выгрузкой вкладки. Рекомендуются следующие способы сохранения состояния:
- Периодически, когда состояние изменяется
- Когда вы переходите на другую вкладку, по событию visibilitychange
document.addEventListener('visibilitychange', () => {
if (document.visibilityState === 'hidden') {
storeState();
}
});
💡 Не забудьте протестировать свой сайт в этих режимах, чтобы убедиться, что все работает как задумано.
- Для этого можно открыть в адресной строке chrome://discards и для нужно вам вкладки использовать кнопку Urgent Discard.
- Инструменты автоматического тестирования пока не помогут вам протестировать эти режимы с помощью автотестов. Но вы можете использовать простую перезагрузку страницы, она почти полностью идентична выгрузке вкладки. Разница лишь в том, что при выгрузке вкладки, события beforeunload, pagehideи unload не будут вызваны.
Подробнее можно почитать в статье
https://t.me/cherkashindev/107