Как предотвратить кэширование страницы html5?
Я конвертировал обычную страницу HTML с ванилью в HMTL5 / CSS3 с отзывчивым макетом, и по соображениям безопасности (продиктованным людьми безопасности) страница никогда не должна кэшироваться.
Страница, ранее использовавшаяся и
чтобы предотвратить кэширование страницы.
Что заменяет это в HTML5? Как предотвратить кэширование html-страницы в клиенте?
- Chrome не кэширует изображения / js / css
- MemoryCache не соответствует ограничениям памяти в конфигурации
- ASP.NET MVC как отключить опцию автоматического кэширования?
- Борьба с кешированием на стороне клиента в Django
- Как кэшировать растровые изображения в встроенную память
Я потратил неделю на чтение файлов манифеста, но они, похоже, точно противоположны тому, что я хочу, поскольку прикрепление файла манифеста явно приводит к тому, что к нему привязана страница к кешу.
И, пожалуйста, не отсылайте меня обратно к определению w3c, для которого мета-элементы теперь разрешены. Я понимаю, что HTML5 не включает в себя cache-control
или Pragma
в meta
.
Мне нужно знать, что он включает, что предотвратит кэширование страницы.
- Есть ли способ удержать страницу от рендеринга, когда человек вышел из системы, но нажал кнопку «назад»?
- Очистить кеш приложений при выходе в Android
- Новое кэширование изображений Gmail разбивает ссылки на изображения в информационном бюллетене
- Кэширование ответа HTTP
- Метод getDrawingCache () Android 2.1 View всегда возвращает значение null
- Кэширование в asp.net-mvc
- API с легким API-интерфейсом Java
- Как бы вы реализовали кеш LRU в Java?
В начале кода вы должны использовать это:
...
Затем создайте manifest.appcache
с таким контентом:
CACHE MANIFEST # Ошибка кэша версии 1.0 # нет кеша СЕТЬ: *
Мне не нравится appcache огромная сумма. Он почти хорошо работает, но может быть настоящей неумолимой болью. Выполняя некоторые рефакторинг кода, я понял, что после выхода из системы я могу вернуться к последней странице. Конечно, обновляя браузер, он заставит пользователя войти в систему, но это нежелательно.
После поиска и просмотра вариантов я начал немного расстраиваться. Я не хочу использовать appcache. Затем я понял, что мой код перенаправлялся на страницу входа после разрушения сеанса и получил представление, а что, если я переадресую на домашнюю страницу? И voila, страница была загружена, проверена сессия (и, конечно же, нет), пользователь перенаправлен на логин. Задача решена.
Некоторое время я боролся с той же проблемой. Что работает для меня – по крайней мере до сих пор – в Chrome, FF и IE выполняется следующее:
1) ссылайтесь на файл манифеста Из того, что я понимаю, это будет кэшировать все, что следует в этом HTML-документе, поэтому файл манифеста необходим, чтобы это не происходило:
2) используйте файл манифеста filename.appcache со следующим содержимым, которое в основном говорит: для всех файлов не читайте из кеша, а с сетевого сервера:
CACHE MANIFEST # 2015-09-25 time 20:33 UTC v 1.01 NETWORK: *
3) требуется третий шаг: каждый раз, когда вы загружаете (частичное) обновление своего веб-сайта, также изменяйте файл манифеста , изменяя отметку даты и времени в строке комментария (#). Зачем? Потому что, если вы не измените файл манифеста, он не будет считан и по умолчанию будет выполняться шаг 1 и, таким образом, будет кэшироваться и считываться из кеша. Однако тот факт, что файл манифеста изменен, заставляет файл манифеста читать снова и, таким образом, принудительно применяет инструкцию «не читать из кеша, но считывать с сетевого сервера».
Предыдущий ответ может не работать последовательно, чтобы предотвратить кеширование или очистить существующий кеш в хроме, но есть работа.
1) Чтобы очистить существующий кеш в хроме, может потребоваться обновить все файлы веб-сайта (например, путем ссылки на новый файл css на каждой странице) вместе с обновлением манифеста кэша до того, как существующий кеш в chrome будет очищен после второе посещение страницы (из-за «streamа» способа отображения страницы: при первом посещении страницы браузер считывает и кэширует манифест при продолжении загрузки из существующего кеша. второй визит будет прочитан и применен вновь сохраненный обновленный манифест).
2), и если ничто из этого не помогает, можно включить скрипт в сам файл манифеста, чтобы проверить новый манифест и, если он найден, перезагрузить его и использовать новый манифест. Это сделало трюк и разрешило все оставшиеся случаи, в которых я тестировал, где файлы остались навсегда сохраненными в хроме. Я нашел этот скрипт на этой странице Джейсоном Стимпелем.