Возмем к примеру такой сценарий работы страницы в браузере:
По WebSocket-у периодически сервер присылает данные.
На странце
// conection - это signalR если что
this.connection.on("ReceiveUpdate", dataSource => {
// Обновляем DOM используя полученный json
Actions.DataSourceUpdated(dataSource);
});
Все прекрасно работает часами пока таба со страницей активная.
Но стоит уйти на другой таб НА ПЯТЬ минут и по возвращении на табу это таба ЗАВИСАЕТ.
Какого эти изобретатели гибернации не смогли сделать настроиваемой. или полностью вырубать WebSocket вместе с хибернацией или дать API про статус гибернации. Например так:
// conection - это signalR/webSocket клиент если что
this.connection.on("ReceiveUpdate", dataSource => {
if (!window.isHypernated) {
// Обновляем DOM используя полученный json
Actions.DataSourceUpdated(dataSource);
}
});
P.S. Если серверный push поменять на древний poll по таймеру в браузере то такой проблемы НЕТ. Т.е. по олдскульному POLL хибернация ничего не ломает.
P.P.S если будут конструктивные ответы, перенесите в Web-программирование please.