0

テキストファイルの内容を更新しても更新されません。代わりに、Google Chrome を更新するには、すべてのキャッシュなどを削除する必要があります。ただし、Apache サーバー (ローカル ホスト) を使用している場合は機能します。

: を追加しようとしました<meta http-equiv="expires" content="Mon, 26 Jul 1997 05:00:00 GMT"/> <meta http-equiv="pragma" content="no-cache" />が、問題は引き続き発生します。

function MakeRequest()
{
  var xmlHttp = getXMLHttp(); // just a basic XML request
  xmlHttp.onreadystatechange = function()
  {
    if(xmlHttp.readyState == 4)
    {
      HandleResponse(xmlHttp.responseText);
    }
  }
  xmlHttp.open("GET", "counter.txt", true); 
  xmlHttp.send(null);
}

そして、これを div に出力するだけの別の JavaScript があります。

document.getElementById('counterHolder').innerHTML = response;

ウェブページをライブで見る必要がある場合は、ここをクリックしてください。

4

3 に答える 3

2

これはキャッシングの問題のようです。なぜこのようなことが起こるのかを正確に説明することはできませんが、私の経験では、get リクエストの URL の末尾にランダムな文字列を追加するとうまくいくはずです。私は以下のようなものを提案します:

xmlHttp.open("GET", "counter.txt?" + Math.random(), true);
于 2012-07-03T23:55:20.967 に答える
1

この投稿に似たものがあなたを助けると私は信じています。を使用してファイルにリンクすることを目的としたものは、ページがリロードされるたびに新しいリンクと見なされますが、同じことが状況に当てはまります。

キャッシュをバイパスするHTMLリンク

于 2012-07-03T23:58:02.720 に答える
0

jQueryまたは別の適切なJavaScriptライブラリを使用することをお勧めします。その場合は、jQueryにキャッシュオプションがあることを確認してください。

問題をそのまま修正して、これを試してください。

function MakeRequest()
{
  var xmlHttp = getXMLHttp(); // just a basic XML request
  xmlHttp.onreadystatechange = function()
  {
    if(xmlHttp.readyState == 4)
    {
      HandleResponse(xmlHttp.responseText);
    }
  }
  var timestamp_since_epoch = new Date().getTime();
  xmlHttp.open("GET", "counter.txt?"+timestamp_since_epoch, true); 
  xmlHttp.send(null);
}

上記の機能は、エポック以降のタイムスタンプを生成し、それをパラメーターとしてAJAX呼び出しに追加することです。

于 2012-07-04T00:00:23.920 に答える