2

サーバー上でページが変更された場合、毎秒 ajax がページの独自の URL を要求し、それtextStatusnotmodified.

setTimeout(function(){ 
  $.ajax({
    url : window.location.pathname,
    dataType : "text",
    ifModified : true,
    success : function(data, textStatus) {
      if (textStatus !== "notmodified") {
        location.reload();
      }
    }
  });
}, 1000);

ただし、textStatus常にsuccess

4

1 に答える 1

1

ランダム変数を使用して、応答自体のキャッシュを回避してください。!==また、をに置き換え!=ます。

setTimeout(function(){ 
  $.ajax({
    url : window.location.pathname + "?" + (new Date()).getMilliseconds(),
    dataType : "text",
    ifModified : true,
    success : function(data, textStatus) {
      if (textStatus != "notmodified") {
        location.reload();
      }
    }
  });
}, 1000);

これでうまくいかない場合は、次のように置き換えてみてください。

location.reload();

と:

location.href = location.href;

これは、サーバー側のスクリプトにも依存します。また、サーバー側から送信する必要があります...no-cacheとを設定することによりcontent-expires

于 2013-02-15T14:42:40.547 に答える