Форум пожеланий

Делаем браузер вместе с вами

Защищённый кэш второго уровня для часто используемых страниц

Avatar

Предисловие.

Это развитие вашей же технологии: в 2015 году вы описали кластерное кэширование и писали о планах защищать кластеры открытых вкладок и добавлять ручное сохранение страниц (habr.com/ru/companies/yandex/articles/263031), а в 2018 году реализовали сохранение копий открытых вкладок. Предлагается логичный следующий шаг: дать пользователю возможность закреплять такую защиту за закладками, чтобы она переживала очистку кэша и закрытие вкладок, с лимитом размера, задаваемым пользователем

Проверил на повторы: похожие возможности в Браузере есть (офлайн-копии открытых вкладок с 2018 года, кластерное кэширование с 2015-го), но сама связка, которую я предлагаю, нигде не реализована и на портале идей не встречается:

1. защита кэша привязывается к закладкам, а не к открытым вкладкам — то есть переживает закрытие вкладки, перезагрузку и очистку кэша;

2. опция включается самим пользователем, а не решается на стороне сайта;

3. размер защищённого слоя задаёт пользователь;

4. защищается только статика — HTML и данные всегда сверяются с сервером. Это логичное развитие вашей же технологии, а не повтор существующей


Обоснование проблемы:

В мобильном Яндекс Браузере (Android) кэш вытесняется автоматически и может очищаться системой при нехватке памяти. При этом у пользователя нет способа защитить часто используемые сайты от повторной загрузки всей статики (JS, стили, шрифты, картинки) — а страницы сейчас весят десятки МБ. Особенно это бьёт по тем, кто периодически очищает кэш вручную или чистильщиками: их ежедневный набор сайтов затем перекачивается целиком.

Мое предложение: добавить опциональный «кэш второго уровня»:

чтобы закладки с пометкой не теряли кэш при очистке, чтобы не гонять трафик заново. Статику хранить, данные — обновлять.

Опция включается вручную в настройках браузера.

После включения пользователь может отметить нужные закладки/вкладки как «Ежедневные» — такая пометка даёт странице право на хранение во втором уровне кэша.

Размер этого слоя пользователь задаёт сам.

Защищённый слой переживает обычную очистку кэша и системную очистку (выгружается последним).

Защищается только статика (картинки, скрипты, стили, шрифты). HTML и данные страниц по-прежнему сверяются с сервером, чтобы не показывать устаревший контент — текст и цифры обновляются как обычно.

Эффект: скорость открытия ежедневных сайтов сокращается заметно, а экономия трафика особенно ощутима на сайтах с «тяжёлым» оформлением, которое меняется редко — например, обновление дизайна идёт раз в сезон (игровые порталы), а данные (погода, котировки) при этом динамические. Повторная загрузка мегабайтов оформления при каждом визите отпадает.

*

«Пометка "Ежедневная" ставится прямо из меню закладки/вкладки — по длинному тапу или галочке в редактировании закладки».

«Лимит размера лучше показывать с текущим заполнением, как в хранилище приложения, чтобы пользователь видел, сколько занято».

1. Настройки — включение опции и лимит (всё, что управляет слоем, — в одном месте)

Image 247

2. Закладки — пункт «Закрепить как “Ежедневную”» в контекстном меню (по долгому тапу; у уже отмеченных строк — жёлтая метка)

Image 248

3. Вкладки — тот же пункт в меню «три точки» (закрепить можно прямо из открытой вкладки; на закреплённой — жёлтая метка «Е»)

Image 249