Вопрос

Я пробовал много способов получить IE8, чтобы перезагрузить страницу, но не удалось. Т.е. просто продолжает использовать его внутренний кеш, не спрашивая веб-сервер для него.

Я посылаю следующие заголовки из моего веб-сервера:

Response.Add(new StringHeader("Expires", DateTime.UtcNow.AddYears(-1).ToString("r")));
Response.Add(new StringHeader("Cache-Control", "no-store, no-cache, must-revalidate, max-age=0"));
Response.Add(new StringHeader("Pragma", "no-cache"));
Response.Add(new StringHeader("Last-Modified", DateTime.UtcNow.ToString("r")));

Это просто одна из многих комбинаций, которые я пробовал.

Как сделать IE получить страницу каждый раз (не заставляя моих пользователей отключить кэширование внутри IE)?

Это было полезно?

Решение

Правильный способ - отправить эти заголовки HTTP в ответ:

Pragma: no-cache
Expires: -1
Cache-Control: no-cache, no-store

Использование их делает все работать в IE без каких-либо других модификаций.

Другие советы

Самый простой способ состоит в том, чтобы добавить параметр с помощью сжатой даты / отпечатки времени на строку запроса ... Это делает его как целая новая страница к браузерам.

Просто быстрое обновление, Если вы публикуете данные на сервер, то т.е. пропустит кеш и загрузите новые данные. Тем не менее, если вы только выпускаете запросы Get, то IE идут посмотреть на URL, и это собственные настройки, чтобы определить, нужно ли потянуть из кэша или фактически переходить на сервер для данных.

Теперь, если у пользователя есть «Check для более новых версий хранимых страниц», чтобы никогда, то нет ничего, что вы не можете сделать с этим, если он не может присоединиться к значению строки запроса. Видеть KB263070. Для получения подробной информации от MS на этих вариантах. Быстрый просмотр Microsoft ответов показывает большое количество людей, которые были битовыми этим. Решение, которое всегда дано для пользователя, чтобы изменить настройки кэша.

Итак, для вас решение будет (на уровне сложности)

  1. Добавьте высокообеспеченное значение строки запроса
  2. Сообщите своим пользователям, что они должны изменить настройку «Проверка новых версий» для каждого посещения страницы или автоматически.
  3. Измените свои ссылки, чтобы вызвать спины поста. (Yuck)

Ряд приложений выбирают либо элемент 2, либо элемент 1. Причина, являющаяся тем, что 2 2 имеет наименьшее влияние на базу кода, в то время как элемент 1 имеет наименьшее влияние на ваших пользователей.

Если это сайт администратора, то я бы сказал, пойти с вариант 2, поскольку вы должны иметь честное количество рычагов над настройками рабочего стола пользователей.

Надеюсь, я понимаю ваш вопрос, возможно, дай эту попытку, это понятно:

   List<string> keys = new List<string>();
    IDictionaryEnumerator enumerator = Cache.GetEnumerator();
    while (enumerator.MoveNext())
    {
        keys.Add(enumerator.Key.ToString());
    }

    foreach(string key in keys)
    {
        Cache.Remove(key);
    }

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

Есть также директива OutbactCache, если вышеупомянутая не то, что вы ищете.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top