Ну как по мне то браузер должен само очищаться от старого кэша для нового.
Ну и должен предупреждать если сайт хочет использовать да же больше 500 мбайт (не говоря уже о 2.2 гига), что то типа «Уважаемый пользователь, данный сайт хочет сохранить кэш в размере ХХХ мбайт(гигабайт) — вы уверены? Да / Нет» — пусть фраза и банальная, но как по мне будет защищать пользователь от таких кэшей.
Но ведь если приложение сохраняет данные не одним куском, а цепочкой мелких (как в статье с PDF), то браузер должен вывести дофига сообщений «Данный сайт хочет сохранить кэш в размере 7 МБ», не так ли? В идеале на 30-40 сообщение пользователь уже должен был бы поставить галочку «Все, этому сайту больше не наливать нельзя сохранять кэш, а то и так шибко много кушает» (кстати, тоже спорный вопрос — если приложение не сможет сохранить 1 ГБ кэша и будет каждый сеанс его пытаться выкачать, то уж лучше я у себя его похраню… другой вопрос, а буду ли я пользоваться таким приложением вообще), но на практике после третьего подобного сообщения пользователь пойдет в настройки и отключит эту назойливую штуку.
Вот стопудов — за примером того, как это работает, можно пойти в Windows Vista и Windows 7. «Это приложение хочет что-то записать в реестр. Разрешить?» — и у меня отличный выбор: либо я выберу «нет», и приложение даст сбой, либо я выберу «да», и приложение сделает неизвестно что, причем мне же потом и скажут «а тебя предупреждали, бро, ты сам разрешил».
Если вы сами запустили приложение, то можете ему разрешить, по крайней мере, в случаем проблемы, вы знаете, какое приложение накосячило. А вот если такой запрос выдан, а вы ничего не запускали и не ждали, то повод задуматься.
Думаю, есть простое решение.
Прежде чем использовать кеш, сайт должен попросить место с помощью специального вызова. Т.е. юзер увидит окно «Этот сайт просит разрешение на использование 500 МБ кеша. Разрешить/Запретить/Пусть делает что хочет/Нефиг ему кеш юзать».
Если юзер разрешит — сайт может добавить в кеш эти 500 МБ. При попытке добавить еще 1 байт — соответствующий JS получает exception.
Да, мысль мне нравится. И чтобы сайт мог через API увидеть, что у него заканчивается место и запросить аллокацию дополнительного места. При этом пользователь увидел бы «Этот сайт просит увеличение размера кэша с 1000 МБ до 1500 МБ». Ну и по умолчанию давать сайтам пару мегабайт кэша — чтобы каждый сайт не парил пользователя запросами.
Тут встает вопрос — как разделять сайты.
Ибо если давать просто так сайту с доменом 3го уровня хоть какое-то место, то нехороший человек с собственным доменом 2го уровня может занять сколько угодно места.
Ну описанный вами сценарий можно осуществить и без Storage, храня большое количество данных в Cookies поддоменов.
По умолчанию можно давать столько же места, сколько сайт мог бы сохранить в куках — скажем десятки килобайт — это не даст каких-то возможностей для злоупотребления.
Я бы в браузер в строку статуса или адреса просто добавил индикатор который показывает сколько конкретный сайт занял на диске, со всеми потрохами и кешами
waymaps.com/article/a-78.html в хроме удобнее всего, я вот ниразу кеш не очищал на новом ноутбуке, спасибо за статью, стоит задуматься кто и зачем мне винт забивает всякой ерундой
В стоимости одного мегабайта (sic) в несколько рублей (а если в роуминге, то и десятков рублей) при использовании мобильного телефона в качестве модема для выхода в интернет (все-таки ситуации разные бывают — форс-мажор так накрыть может, что огого). Правда, это не сколько к кэшу относится, сколько к web-приложениям вообще.
Тогда кроме дурацкой реализации браузера, при которой большой объем закэшированных данных вызывает дикие тормоза (придумал программист для «ускорения» работы при загрузке весь объем кэша подгружать в память, но не учел, что HDD очень медленный попался, и оперативка к тому же не резиновая — свопится, да еще и на тот же медленный HDD), пока ничего придумать не могу (^_^)'
Вы не усугубляете проблему? Сколько приложений помимо вашего теста сейчас используют этот кэш? У меня лично 0. Когда сервисы начнут более менее активно использовать данный функционал — проблема решится девелоперами браузеров.
М-да… То, что забивает кеш это фиг с ним. Кому надо уменьшат размер кеша до приемлемых для них величин.
А вот то, что он по заполнении кеша отказывает другим приложениям вместо того, чтобы выбрасывать самый старый чейн, это серьезный косяк. Это означает что одно web-приложение может повлиять на нормальную работу другого приложения.
Как веб-приложение может скачать в кэш 2 ГБ, а вы не заметите