Срок действия кэша веб-страницы истекает
-
09-06-2019 - |
Вопрос
Будет ли работать приведенный ниже код, если часы на сервере опережают часы на клиенте?
Response.Cache.SetExpires(DateTime.Now.AddSeconds(-1))
РЕДАКТИРОВАТЬ:Причина, по которой я спрашиваю, заключается в том, что в одном из наших веб-приложений некоторые пользователи утверждают, что видят страницы (номера счетов и т. д.) пользователя, который ранее использовал этот компьютер.Тем не менее, мы используем приведенную выше и другие строки, чтобы «предотвратить» это.
Решение
Этот вопрос охватывает проверку того, что веб-страница не кэшируется.Кажется, вам нужно установить несколько свойств, чтобы веб-страница не кэшировалась во всех браузерах.
Другие советы
Ваша проблема может быть вызвана тем, что браузер запоминает данные, введенные в поля формы.Вы можете отключить это следующим образом:
<input autocomplete="off">
Насколько я могу судить, браузер проверит дату истечения срока действия по местным часам (хотя он будет учитывать часовой пояс), поэтому код в вашем вопросе может работать не так, как вы ожидаете, если часы клиента неточны.Чаще всего это происходит, когда время выглядит правильно, но установлен неверный часовой пояс, а это означает, что временные метки UTC на самом деле отстают на несколько часов.
Вы можете попробовать установить гораздо более старую временную метку, скажем:00:00 1 января 1970 года по Гринвичу (эпоха)
Я думаю, что ваш код должен работать с кэшированием на стороне сервера, но вы можете более явно отключить его с помощью:
Response.Cache.SetNoServerCaching();