2011-12-23 5 views
3

私は、Jquery AJAX呼び出しを通じてXMLファイルのコンテンツを取得するページを持っています。Internet Explorerは更新時にAJAXで処理されたコンテンツを更新しませんか?

IEを除くすべてのブラウザのリフレッシュ時に、XMLファイルのコンテンツが更新されるという問題があります。

私はメタタグでこれを解決するために

<meta http-equiv="expires" content="-1"/> 
<meta http-equiv="cache-control" content="no-cache,must-revalidate" /> 
<meta http-equiv="pragma" content="no-cache"/> 

を試してみましたが、これは、任意の提案は非常に高く評価されるだろう関連のjavascriptの小さな部分

$(document).ready(function(){ 
$.ajax({type: "GET",url: "file1.xml",dataType: "xml", success: parseXml }); 
} 

function parseXml(xml){ 
document.getElementById(eventMonthName).innerHTML=firstxmlvari.getElementsByTagName('month')[0].childNodes[0].nodeValue; 
} 

です!

+0

のようですechnologyを使用していますが、HTTPヘッダーを設定してください。私の経験では、古いIEはメタタグにうまく反応しません。ここでは、PHPのhttpヘッダを操作する方法です。 http://www.jonasjohn.de/snippets/php/headers.htm –

答えて

3

はい、おそらくあなたは は、HTTPヘッダを設定してみてください... IEの積極的なキャッシングに実行されますが、私の作品に何か、このようなクエリ文字列に現在の時間を追加されます。

$(document).ready(function() { 
    $.ajax({ 
     type: "GET", 
     url: "/echo/xml/", 
     data: { 
      _rnd: new Date().getTime() 
     }, 
     dataType: "xml", 
     success: parseXml 
    }); 
}); 

function parseXml(xml) { 
    alert(xml); 
} 

アンJSFIDDLE:http://jsfiddle.net/WVBDc/の例では、発信HTTPリクエストを確認してください。

+0

うわー!ありがとう、私が探していたものです! –

0

ありがとう、私は要求の後に更新されなかったドロップダウンで同様の問題(もちろんIEでのみ)を持っていた。タイムスタンプを追加すると、トリックは以下の組み合わせで実行されました。成功関数の

$(document).trigger("ready");

、歓声!

4

Akos Lukacsと同じように動作する「cache:false」オプションも使用できます。結果は同じですが、独自の日付を作成する必要はありません。

$(document).ready(function() { 
    $.ajax({ 
     type: "GET", 
     url: "/echo/xml/", 
     cache: false, 
     dataType: "xml", 
     success: parseXml 
    }); 
}); 
3

jQueryの.LOADメソッドはキャッシュをオフにする便利な方法を提供していませんので、私はちょうどコントローラレベルで無視され、私の要求にタイムスタンプパラメータを追加します。

$('#userDialog').load('/Users/Edit/' + someValue + '?timestamp=' + new Date().getTime(), function() { 
... 
}); 

か:

$('#userDialog').load('/Users/Create', { timestamp: new Date().getTime() }, function() { 
... 
}); 

これは確かにだけ、まだIEのために必要とされるが、私はどのようなバックエンドtを知っていないバージョン10

関連する問題