Остановить IE от кэширования iframe, открытого через модальный диалог jquery - PullRequest
1 голос
/ 15 июня 2011

ОБНОВЛЕНО : Найден ответ.Не могу отправить свой ответ еще 7 часов ... См. Комментарии.

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

url = 'edit/MyPage.aspx?appid=3&value=4&' + date.getTime();
$('#modalIFrame').attr('src', url);
$('#modalDiv').dialog('open');

В iframe есть форма с несколькими полями (флажки, выпадающие, текстовые).В Chrome все работает без нареканий.В IE он кэширует очень постоянно и раздражающе.Даже shift + refresh не помогает.Поэтому, если я открою диалог, внесу изменения, нажму «Отправить», а затем обновлю страницу, все данные будут выглядеть правильно.Однако, когда я нажимаю кнопку редактирования, чтобы открыть диалоговое окно, это предыдущие данные (данные извлекаются с помощью ajax-вызова в службу WCF). Я даже несколько часов ждал, когда истечет срок моей сессии, не повезло.

Как вы можете видеть выше, я попробовал хитрость, которую нашел здесь, чтобы заставить IE думать, что это новая страница.Это не работаетЯ также добавил следующий код в Page_Load страницы в iframe:

Response.Cache.SetCacheability(HttpCacheability.NoCache)

и следующие метатеги в HTML:

<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<META HTTP-EQUIV="EXPIRES" CONTENT="0">

Я полностью потерян здесь,любые идеи будут оценены.

1 Ответ

1 голос
/ 15 июня 2011

Хорошо, я обнаружил, что это была служба WCF, которая кэшировалась в IE (не имеет смысла для меня, но что угодно). Я добавил метку времени к вызову ajax, и теперь он работает!

data: { "appid": appid, "serverid": serverid, "timestamp": date.getTime() },
...