Javascript 如何让Chrome监视文件并在文件更改时重新加载?

Javascript 如何让Chrome监视文件并在文件更改时重新加载?,javascript,ajax,google-chrome,caching,Javascript,Ajax,Google Chrome,Caching,我有一个持久化的网页,其中一部分显示一个小文件,该文件会不时更改。我的解决方案是在每一秒钟内用Ajax创建一个文件,这样我就可以在文件更改后很快看到它。我这样做: function loadDoc() { var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 20

我有一个持久化的网页,其中一部分显示一个小文件,该文件会不时更改。我的解决方案是在每一秒钟内用Ajax创建一个文件,这样我就可以在文件更改后很快看到它。我这样做:

   function loadDoc() {
     var xhttp = new XMLHttpRequest();
     xhttp.onreadystatechange = function() {
       if (this.readyState == 4 && this.status == 200) {
         document.getElementById("display").innerHTML = this.responseText;
         setTimeout(function(){loadDoc();}, 1000);
       }
     };
     xhttp.open("GET", "newstuff.html", true);
     xhttp.send();
   }
(这里是新手;这是我的第一个Ajax代码,几乎是我的第一个JavaScript。要温柔。)

只要文件经常更改,效果就很好!但如果不是这样,请求进入的速度就会越来越慢,如我的SimpleHTTPServer的日志所示:

127.0.0.1 - - [21/Feb/2017 19:12:51] "GET /newstuff.html HTTP/1.1" 200 -
127.0.0.1 - - [21/Feb/2017 19:12:52] "GET /newstuff.html HTTP/1.1" 200 -
127.0.0.1 - - [21/Feb/2017 19:12:53] "GET /newstuff.html HTTP/1.1" 200 -
127.0.0.1 - - [21/Feb/2017 19:12:55] "GET /newstuff.html HTTP/1.1" 200 -
127.0.0.1 - - [21/Feb/2017 19:12:57] "GET /newstuff.html HTTP/1.1" 200 -
127.0.0.1 - - [21/Feb/2017 19:12:59] "GET /newstuff.html HTTP/1.1" 200 -
127.0.0.1 - - [21/Feb/2017 19:13:01] "GET /newstuff.html HTTP/1.1" 200 -
127.0.0.1 - - [21/Feb/2017 19:13:03] "GET /newstuff.html HTTP/1.1" 200 -
127.0.0.1 - - [21/Feb/2017 19:13:06] "GET /newstuff.html HTTP/1.1" 200 -
127.0.0.1 - - [21/Feb/2017 19:13:09] "GET /newstuff.html HTTP/1.1" 200 -
127.0.0.1 - - [21/Feb/2017 19:13:12] "GET /newstuff.html HTTP/1.1" 200 -
127.0.0.1 - - [21/Feb/2017 19:13:15] "GET /newstuff.html HTTP/1.1" 200 -
127.0.0.1 - - [21/Feb/2017 19:13:19] "GET /newstuff.html HTTP/1.1" 200 -
127.0.0.1 - - [21/Feb/2017 19:13:23] "GET /newstuff.html HTTP/1.1" 200 -
…情况变得更糟,直到文件发生更改,之后请求每隔一秒就会出现


我猜想是Chrome的缓存在做这件事,并且有越来越多的回退。如果我打开了开发人员工具(我设置了相应的标志),那么请求每秒都会出现。这里的其他查询涉及清除缓存——我可以从JavaScript强制执行吗?还是有其他方法可以做到这一点?感谢您的帮助。

文件实际更改的频率是多少?每秒轮询一次似乎有点过分:即使它实际上更改得如此频繁,从用户的角度来看,每30秒或每15秒更新一次也不够好吗?有很多Node.js脚本可以做到这一点。@nnnnnn文件可能每30-40秒更改一次,但从用户的角度来看,我需要在显示发生变化时尽快改变它。@SLaks我对浏览器中的Node.js不够熟悉,不知道如何做到这一点。你能发送一个指针吗?