Я исследовал тот же вопрос, и он, кажется, не API для:
- динамически вызывает кэширование страницы
- динамически вызывает остановку кэширования страницы.
Вот лучшие ресурсы, которые я нашел:
http://www.html5rocks.com/tutorials/appcache/beginner/
http://www.thecssninja.com/javascript/how-to-create-offline-webapps-on-the-iphone
В частности, это цитата из первой ссылки:
Если файл манифеста или указанный в нем ресурс не загружается, происходит полное обновление. Браузер продолжит использовать кэш старого приложения в случае такого сбоя.
В противном случае нигде не упоминается выгрузка кеша.
Похоже на то, что вы не можете принудительно заставить ошибку откатиться. Однако, как отмечено ниже, спецификация предполагает, что если при загрузке файла манифеста произойдет ошибка, весь кеш будет удален.
В Google Chrome пользователь может перейти по следующему URL:
хром: // AppCache-Внутренности /
И вручную отключить кеш. Разумеется, в следующий раз, когда они посетят страницу, она будет повторена, если для страницы установлено свойство manifest.
Если вы посмотрите на спецификацию: 5.6 Оффлайн-приложения
Кажется, предлагает ситуацию, когда кеш удаляется. В частности, раздел 5.6.4.5:
Если загрузка манифеста не удалась из-за ответа 404 или 410 или эквивалентного, запустите эти подшаги:
Отметить группу кеша как устаревшую. Эта группа кешей больше не существует для каких-либо целей, кроме обработки объектов Document, уже связанных с кешем приложений в группе кешей.
Если в группе кеша имеется кеш приложения, чей флаг полноты является неполным, то отбросьте этот кеш приложения.
Затем говорится:
Если это была попытка кэширования, полностью удалите группу кэша.
Как правило, если запрос файла манифеста кеша приводит к 404, то весь кеш должен быть отброшен. Итак, вы пытались заставить сервер возвращать 404 или 410 при запросе файла манифеста кэша? Это должно работать. Хитрость заключается в том, чтобы возвращать 404/410 только для страниц, с которых вы хотите удалить манифест (возможно, с использованием параметров url?).