为什么这个轮询在空转一段时间后停止工作
Why this polling stops working after idling for some time?
我使用AngularJS通过HTTP POST不断轮询新数据。当接收到新数据时,将发送警报。控制器内部的代码看起来像这样;
var poll = function() {
$http.get('phones.json').success(
function(data)
{
new_val = data.val;
if ( (new_val!== old_val) )
{
$window.alert("AlertEvent");
}
old_data = new_val;
$timeout(poll, 500);
}
);
};
poll();
这段代码在html页面刷新时起作用。工作意味着打电话。Json更改后,将出现警报。但是,如果我打开页面,比如说30分钟,然后再回来,它就停止工作了。我必须刷新页面才能使它再次工作。
我还错过了什么?我做错了什么?会不会是缓存机制造成的?
非常感谢。
编辑:我找到原因了。这确实是由于浏览器从缓存中读取。我可以使用Chrome Developer工具看到这一点。如何只对这个html页面禁用缓存?您可以通过这样做来破坏缓存:
$http.get('phones.json?v=' + Date.now())
根据您的后端设置,您可能需要调整它以接受
相关文章:
- Canvas+svg路径动画,在路径中的特定点暂停一段时间,然后继续
- 收集一段时间内的EMG数据.建议JS
- 在一段时间内切换文本
- 如何停止字幕文本一段时间,然后继续
- HTTP服务器在一段时间后停止(Node.js)
- Hammer.js过了一段时间就停止工作了
- Meteor-在一段时间内解锁模板(按日期)
- 画布在一段时间后开始滞后
- JS-在一段时间后水平移动图像
- AJAX 调用在获得响应并成功执行时会冻结浏览器一段时间
- 表单提交在一段时间循环PHP,jquery
- 一段时间后生成回发
- 一段时间后自动点击提交按钮
- 如何每隔一段时间更改我网站的背景颜色
- 一段时间后调用函数,但只调用一次
- 一段时间后使用Javascript加载网页ASP.net
- 在for循环中另一个音频结束后播放一段时间的音频
- 即使用户正在导航到其他页面,也要在一段时间后打开弹出窗口
- 如何在页面加载一段时间后使用adsense
- 为什么这个轮询在空转一段时间后停止工作