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-cachecontent-expires

于 2013-02-15T14:42:40.547 回答