我需要定时连续读取文件,代码如下:
setInterval(function(){
$.getJSON("json/someFile.json", function(data){
// Some code
});
}, 5000);
我正在持续阅读这个文件,因为它在代码的其他部分得到更新。我希望避免使用 setInterval()。
有没有办法让我知道文件已经更新,并且只在更新时读取它。
我需要定时连续读取文件,代码如下:
setInterval(function(){
$.getJSON("json/someFile.json", function(data){
// Some code
});
}, 5000);
我正在持续阅读这个文件,因为它在代码的其他部分得到更新。我希望避免使用 setInterval()。
有没有办法让我知道文件已经更新,并且只在更新时读取它。
setTimeout 而不是失败,则可能会更好地重新启动Ajax请求; 使用当前方法,该函数可以在间隔上运行,但如果响应时间超过间隔时间,则会积累请求;
- 使用Websockets(可能具有回退到类似长轮询之类的东西),也许需要另一个库以及此解决方案的服务器端部分;
抱歉,没有其他办法。
作为脚注,这与jQuery关系不大。首先, setInterval 不是jQuery而是常规的 window 函数,其次,“监视”文件的问题与您执行Ajax调用的方式无关(您使用jQuery,但也可以使用其他库)。
首先,setInterval是原生JavaScript方法,不是来自jQuery。其次,你所做的是轮询。这意味着你定期请求一些信息以保持其最新状态。另一种选择是使用WebSockets。Websockets是客户端和服务器之间的双向连接,可以推送和接收消息。这样,每当后台更新文件时,您可以向客户端发送一个socket消息。
setInterval()
不是jQuery
的方法。 - Rayon