Как Вы отключаете кэширование на Модальных диалоговых окнах в IE?

Если вы хотите собрать идентификаторы, которые не появляются в массиве users, то итерация users во внешнем цикле неверна: вы добавляете элементы в tmp2, даже не просматривая вторую «запись» из users. 116]

Вы должны поменять их следующим образом:

for(int service : tmp) {
  boolean found = false;
  for(int i = 0; i < users.size(); i += 2) {
    if(users.get(i+1) == service) found = true;
  }

  if(!found) {
    for (int i...) { 
      tmp2.add(users.get(i));
      tmp2.add(service);
    }
  }
}

Конечно, иметь списки с двумя столбцами - плохая практика. Рассмотрим создание класса User с 2 полями. А использование потоков поможет создать более читаемый код.

9
задан josh3736 24 March 2012 в 22:11
поделиться

5 ответов

Добавьте метку времени querystring переменная к URL диалогового содержания - количеству галочек с 01.01.08 или чего-то - IE будет рассматривать его как новую страницу и игнорировать кэш.

9
ответ дан 4 December 2019 в 08:17
поделиться

Учитывая, что http-equiv директивы не работают (и возможно не должен использоваться), и несмотря на него, к сожалению, находиться в категории взлома решений, я думаю, что мы оказываемся перед необходимостью идти с этим (отправленный Greg)...

url = "<Some url with query string>"
var date = new Date();
window.showModalDialog(url + “&” + date.getTime(), ... );

Странно, что нет никакого категорического способа отключить кэширование на этих модальных диалоговых окнах. Я не уверен, принято ли использование модальных диалоговых окон в веб-браузерах как "хорошая идея" или нет, но мы знаем о по крайней мере некоторых недостатках и альтернативах, но просто к сожалению, не можем использовать их в этом проекте.

Спасибо за Ваши предложения.

4
ответ дан 4 December 2019 в 08:17
поделиться

Разместите Скрипача, промежуточного IE и Ваш сервер. Затем проверьте, несет ли ответ на Ваш запрос Управление Кэша HTTP-заголовком. Там некоторое значение дано кроме без кэшей? Раз так затем, возможно, IE уделит этому заголовку первостепенное значение по Вашей http-equiv директиве.

В противном случае необходимо попытаться заставить сервер отправить HTTP-заголовку Cache-Control:no-cache. Если IE не уважает это, это - ошибка в IE. Опыт показывает, что это менее болезненно для выбора другое решение, чем потребовать bugfix, так в этом случае я согласился бы на подсказку Greg.

2
ответ дан 4 December 2019 в 08:17
поделиться

Одна из странных причуд IE - то, что установка без кэшей в начале файла, кажется, не работает, но перемещение, которые разделяют к тому, после того, как исходный HTML часто делает. Все еще лучше всего для отправки его, поскольку HTTP-заголовок, но следующее будет работать в большинстве случаев:

<html>
   <head><title>Blah</title></head>
   <body>Contents</body>
</html>
<html>
   <head>
      <meta http-equiv="Cache-Control" content="no-cache" />
      <meta http-equiv="Pragma" content="no-cache" />
      <meta http-equiv="Expires" content="-1" />
   </head>
</html>
0
ответ дан 4 December 2019 в 08:17
поделиться

Чтобы очистить кеш, добавьте это при загрузке страницы:

Response.Cache.SetCacheability(HttpCacheability.NoCache);
8
ответ дан 4 December 2019 в 08:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: