0

ie9がキャッシュからではなくxmlファイルを読み取る方法に苦労している人にとっては、ここでは簡単な解決方法があります。 javascriptとXmlHttpRequestを使用してxmlをロードしているhtmlページを変更できる場合は、非表示のiframeを使用して、ページを更新するときにxmlを強制的に読み込むことができます。たとえば、htmlページのどこかに次の行を追加します。ie9ブラウザが強制的にサーバーからキャッシュからではなくxmlを読み取る方法

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

それはサーバーから別の取得を引き起こすので最適なソリューションではないかもしれませんが、xmlhttp.setRequestHeader( "Cache-Control"、 "no-cache")などのさまざまなヘッダー設定の組み合わせを検索して試してみました。 !あなたがブラウザを閉じてそれを再び開いた場合、ie8はxmlをサーバから読み込みます。しかし、ie9は(少なくとも私のgodaddyサーバーからではない)単純にはありません。この方法では、ページを更新するだけで、xmlは毎回サーバーから読み取られます。つまり、新鮮なデータを得ることが困難になっているところまで、実際にキャッシュを適用しているようです。私は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ソリューションは、私が「評判」のポイントを持っていた場合、私はそれらをいただきたい...ずっと優れています。

実際には、AJAX/WebResourceの実装では、通常、t = YearMonthDayHour24MinutesSecondsを要求に追加する点を除いて、MSによってもかなり一貫して使用されています。

関連する問題