Как предотвратить кэширование страницы html5?

Я конвертировал обычную страницу HTML с ванилью в HMTL5 / CSS3 с отзывчивым макетом, и по соображениям безопасности (продиктованным людьми безопасности) страница никогда не должна кэшироваться.

Страница, ранее использовавшаяся и чтобы предотвратить кэширование страницы.

Что заменяет это в HTML5? Как предотвратить кэширование html-страницы в клиенте?

Я потратил неделю на чтение файлов манифеста, но они, похоже, точно противоположны тому, что я хочу, поскольку прикрепление файла манифеста явно приводит к тому, что к нему привязана страница к кешу.

И, пожалуйста, не отсылайте меня обратно к определению w3c, для которого мета-элементы теперь разрешены. Я понимаю, что HTML5 не включает в себя cache-control или Pragma в meta .

Мне нужно знать, что он включает, что предотвратит кэширование страницы.

В начале кода вы должны использовать это:

   ... 

Затем создайте 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), и если ничто из этого не помогает, можно включить скрипт в сам файл манифеста, чтобы проверить новый манифест и, если он найден, перезагрузить его и использовать новый манифест. Это сделало трюк и разрешило все оставшиеся случаи, в которых я тестировал, где файлы остались навсегда сохраненными в хроме. Я нашел этот скрипт на этой странице Джейсоном Стимпелем.

  
  • Как использовать кеширование диска в Picasso?
  • Android: очистить кеш всех приложений?
  • Как кэшировать данные в приложении MVC
  • Почему размер кеша L1 меньше, чем размер кэша L2 на большинстве процессоров?
  • Как кэшировать InputStream для многократного использования
  • В чем разница между кодом состояния HTTP 200 (кеш) и кодом состояния 304?
  • Как настроить кеш статического содержимого для каждой папки и расширения в IIS7?
  • RAM-накопитель для компиляции - есть ли такая вещь?
  • Как очистить кэш HttpWebRequest
  • Как удалить кэш других приложений из нашего приложения для Android?
  • Как написать код, который лучше всего использует кеш процессора для повышения производительности?
  • Давайте будем гением компьютера.