作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在实现一个使用 $.getJSON 使用 jQuery 读取系统状态的软件。
这个想法是我在浏览器中显示实时数据并希望尽可能频繁地更新数据。服务器也在本地主机上运行,所以理论上我应该能够获得非常低的延迟(至少 < 50 毫秒,甚至小于 20)。
但问题是:如何使用 jQuery 实现 getJSON,以便在先前的请求完成后立即自动重新发送 HTTP GET 请求?
在我当前的实现中,我定义了一个更新函数:
function updateSimulation() {
$.getJSON('/simulation/', function(data) {
// ..parse data here
});
}
并每 50 毫秒添加一次回调:
document.simulationIntervalId = setInterval( "updateSimulation()", 50 );
问题在于,如果一个请求花费的时间超过 50 毫秒,那么多个请求将异步等待结果,这意味着如果一个请求花费更长的时间,旧的数据可能会被新的数据替换,这是不可取的。
所以基本上这意味着可以考虑以下两种解决方案之一:1)当响应到达时,所有待处理的请求都可以被终止(不是最佳),2)仅在前一个请求返回后才发送新请求(也许是最佳解决方案)。
但一如既往,我们非常感谢所有评论和回答!
最佳答案
为什么不在 success 函数($.getJSON 的第二个参数)上调用 updateSimulation?
它将在前一个请求完成后执行该请求。
关于jquery - 如何让jQuery连续请求同一个HTTP GET请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4509503/
我是一名优秀的程序员,十分优秀!