如果在服务器上修改了重新加载页面

时间:2013-02-15 14:40:15

标签: javascript jquery http

我试图让页面重新加载,如果它已在服务器上更改,ajax每秒请求页面自己的URL,然后检查textStatus是否notmodified

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

但是,textStatus始终为success

1 个答案:

答案 0 :(得分: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