2011-06-14 100 views
1

已更新:找到答案。無法提交我自己的答案7個小時以上...查看評論。停止IE緩存通過jquery模式對話框打開iframe

我打開一個對話框,如下所示:

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

iframe的有幾個字段(複選框,下拉菜單,文本域)的形式。在Chrome中,一切都無懈可擊。在IE中,它永久地和令人討厭地高速緩存非常。即使shift +刷新也無濟於事。所以如果我打開對話框,進行更改,點擊提交,然後刷新頁面所有的數據看起來是正確的。但是,當我點擊編輯按鈕打開對話框時,它就是以前的數據(數據是通過ajax調用WCF服務來拉取的),我甚至等了幾個小時才讓會話過期,沒有運氣。

正如你在上面看到的,我嘗試了一個技巧,我發現這裏欺騙IE認爲這是一個新的頁面。這不起作用。我還添加以下代碼到頁面中的iframe在Page_Load:

Response.Cache.SetCacheability(HttpCacheability.NoCache) 

和下面的meta標籤到HTML:

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

我完全失去了這裏,任何想法會讚賞。

+0

好了,所以我不能回答我的問題,但是... – 2011-06-14 21:32:48

+0

好吧,我發現這是當時正在在IE緩存WCF服務。對我來說似乎很奇怪,但我給ajax調用添加了一個時間戳,現在它可以工作了! var date = new Date(); data:{「appid」:appid,「serverid」:serverid,「timestamp」:date.getTime()}, – 2011-06-14 21:33:00

回答

1

好吧,我發現這是在IE中緩存的WCF服務(對我來說沒有任何意義,但無論如何)。我給ajax調用添加了一個時間戳,現在它可以工作了!

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

我想知道爲什麼我們必須這樣「破解」......我也得到了這個問題 - 通過添加時間戳,我可以看到它強制它去,因爲它不是同一個電話,但它爲什麼被緩存,並有一個正確的方式告訴它不要? – farcrats 2013-11-12 15:47:39

+0

希望我可以幫忙,但我已經開始了,這從來沒有得到太多的關注。 – 2013-11-12 17:32:11