2

私のアプリケーションは、ポーリングを使用して音楽プレーヤーのステータスを更新します。私はsetIntervalこれを行うために0.5秒ごとにAjax呼び出しを行うために使用しています。Nookカラーのブラウザを除く多くのブラウザ(Chrome、Firefox、Safari ...)で動作します。ページが読み込まれると正しい情報が更新されますが、その後は常に同じ情報が読み込まれます。これはを使用して確認されalertました。これが元のコードです

関数getStatus(){

request = new XMLHttpRequest();

request.open( "GET"、SOME_URL、true);

request.setRequestHeader( "Content-Type"、 "application / x-www-form-urlencoded");

request.onreadystatechange = function(){

if(request.readyState === 4 && request.status === 200)

updateStatus(request.responseText);

};

request.send()

}

setInterval(getStatus, 500);

常に同じ情報(最初に取得する情報)をロードしている理由はありますか?

また、キャッシュをクリアした場合にのみ最新の情報が読み込まれます。このNookは根付いており、Firefoxもあり、問題なく動作します。これを行っているのはNookネイティブブラウザです(ルート化またはルート化解除)。

4

1 に答える 1

2

Internet Explorer には、AJAX コンテンツをキャッシュする奇妙な癖があります。Nook ブラウザでも同じ問題が発生していると思います。解決策は、「キャッシュバスター」パラメーターを追加することです。これは基本的に単なるランダムパラメーターであるため、URL は新しく処理されます。

"SOME_URL?random=" + Math.random()
于 2011-05-14T04:58:17.453 に答える