Программная очистка кэша приложений HTML 5 в сценарии входа/выхода из системы

Автономная логика HTML 5 инкапсулирована в объекте window.applicationCache. Однако похоже, что невозможно программно очистить данные кеша, например, когда пользователь выходит из системы. Есть ли другой способ очистить кеш приложения HTML 5, кроме создания пустого файла манифеста?


person Konstantin    schedule 11.07.2011    source источник
comment
Также важно отметить, что даже отображение пустого файла манифеста в браузере приведет к удалению только явных записей из кеша. Основные записи (html-документы с атрибутом manifest) останутся. Таким образом, чтобы очистить кеш, нужно иметь только один общедоступный главный HTML-документ со всеми остальными страницами, явно указанными в файле манифеста.   -  person Konstantin    schedule 12.07.2011


Ответы (3)


Если оставить в стороне специфику кэша приложений HTML5, программная очистка кэша браузера никогда не была возможна (кроме определенных элементов управления ActiveX для этого браузера), поэтому я подозреваю, что вы можете оказаться пустым в этом случае. Возможно, вам следует сосредоточиться на метатеге управления кешем и продолжить тестирование с вашей идеей пустого манифеста?

person Ben    schedule 11.07.2011

Наблюдая это в Chrome, не уверен, что это стандартный способ, если сервер отвечает 404 на запрос файла манифеста, кеш очищается из браузера после создания устаревшего события.

person programmer    schedule 08.12.2011
comment
Я сделал это так, установив манифест в несуществующий файл. Это полностью удаляет кеш. Хотя это обходной путь, он кажется официальным, как указано на appcachefacts.info If the manifest file itself can't be retrieved, the cache will ignored and all cached data associated with it will be disregarded - person spuas; 07.06.2014
comment
Не всегда — Chrome 37.0.2062.124 в MacOS, когда URL-адрес манифеста возвращает 403, кеш сохраняется: | - person Artur Bodera; 03.10.2014

Я думаю, что лучший способ сделать это — изменить ссылку на файл манифеста. В этом случае я бы добавил идентификатор сеанса пользователя в файл манифеста. У каждого пользователя должна быть сессия независимо от статуса входа в систему, и идентификатор сеанса, вероятно, должен измениться при входе/выходе (возможно).

Я также нашел этот ответ: Удаление манифеста HTML5 Appcache навсегда

person Parris    schedule 04.11.2012