0

對於任何正在努力如何讓ie9從服務器讀取xml文件而不是從緩存中讀取xml文件的人來說,這裏有一個簡單的解決方案。如果您可以使用javascript和XmlHttpRequest修改加載xml的html頁面,則可以使用隱藏的iframe在頁面刷新時強制加載xml。例如,在html頁面的某處添加以下內容:如何強制ie9瀏覽器從服務器讀取xml而不是從緩存中讀取xml

<iframe src="myfile.xml" width="0" height="0" style="display:none"></iframe> <!--resolves xml caching issues--> 

希望這會有所幫助。它可能不是最好的解決方案,因爲它導致從服務器獲得另一個,但我搜索並搜索並嘗試各種頭設置組合,如xmlhttp.setRequestHeader(「緩存控制」,「無緩存」),並沒有在ie9中工作! ie8會從服務器讀取xml,如果您關閉瀏覽器並重新打開它。但ie9根本不會(至少不是來自我的godaddy服務器)。因此,使用這種方法,您可以簡單地刷新頁面,並且每次都會從服務器讀取xml。 ie9似乎真的將緩存應用到極端,因爲它使得獲取新數據變得困難。我使用godaddy託管,我不確定是否會增加更多問題 - 可能是由於代理服務器。

希望這會有所幫助。 馬克

+3

我認爲緩存可以通過向源添加隨機數來解決:'myfile.xml?r = 0.54891' – Karolis

回答

6

隨機數到文件名的策略:

myfile.xml?rand=12345 
+0

謝謝,我沒有意識到你也可以在xmlhttp.open()中做到這一點。我已經看到在其他用途​​中提到過,但不是用於打開xml。是的,它的工作原理!我改變了我的js到以下。再次感謝,cwolves! xmlhttp.open(「GET」,「mydata.xml?rand =」+ Math.floor(Math.random()* 1001),false); xmlhttp.send(); – markharp1

3

Karolis和cwolves解決方案要好得多......如果我有「信譽」點,我想起來他們。

實際上,它的使用非常一致,即使通過MS在他們的AJAX/WebResource實現中,除了他們通常在其請求中附加t = YearMonthDayHour24MinutesSeconds。

相關問題