Многим пользователям знакома ситуацию, когда клик по уже открытой в фоне вкладке приводит к перезагрузке страницы. При этом изменения, сделанные во вкладке, могут быть утеряны. В чем причина подобного поведения браузеров? Как эту проблему решили в Яндекс.Браузере? Сегодня мы ответим на эти вопросы.
Кстати, для тех, кто интересуется технологиями, рекомендуем прочитать более детальную историю на Хабре: https://habr.com/company/yandex/blog/423507/
Как браузеры экономят память
Ресурсы компьютеров не бесконечны. Оперативная память, которая необходима для работы любого приложения, также ограничена. Каждая открытая в браузере страница хранится в памяти. Чем больше вкладок у вас открыто, тем больше ресурсов потребляет браузер. Если память закончится, браузер не сможет открыть новую вкладку. Чтобы этого избежать, разработчики браузеров придумали трюк. Они находят наиболее старую страницу и удаляют ее из памяти. Вкладка остается, но ее содержимое уже утеряно. Поэтому клик по такой вкладке приводит к загрузке страницы из сети.
Перезагрузка фоновых вкладок раздражает. Пользователь теряет время и трафик. Но самое страшное в другом: при перезагрузке можно потерять часть информации. К примеру, введенный текст, нарисованную картинку или другой результат работы сайта. Казалось бы, иначе экономии ресурсов не добиться. Но в команде Яндекс.Браузера нашли решение этой проблемы.
Hibernate в Яндекс.Браузере
Новая технология Hibernate, которая вот-вот станет доступна всем пользователям Яндекс.Браузера для Windows, и память экономит, и содержимое вкладок не теряет. Секрет в том, что разработчикам из Яндекса удалось научить Браузер сохранять содержимое вкладок на жесткий диск перед их удалением из памяти. Когда пользователь возвращается на такую вкладку, загружать страницу из сети не нужно — Яндекс.Браузер восстановит ее состояние из сохраненной копии. Браузер восстановит не только саму страницу, но и те изменения, которые пользователь уже успел внести.
У пользователей с большим числом открытых вкладок технология Hibernate в среднем экономит более 330 мегабайт памяти и не теряет при этом информацию во вкладках, которая остается доступна в один клик при любом состоянии сети.