我正在使用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页面时有效。工作意味着当phones.json被更改时,将出现警报。但是,如果我离开页面,比如30分钟,然后再回来,它就会停止工作。我必须刷新页面才能让它再次运行。
我还错过了什么?我做错了什么?可能是由于一些缓存机制?
非常感谢。
编辑:我找到了原因。这确实是由于浏览器从缓存中读取。我可以使用Chrome开发者工具看到这一点。如何仅为此html页面禁用此缓存?答案 0 :(得分:2)
您可以通过执行以下操作来破坏缓存:
$http.get('phones.json?v=' + Date.now())
根据后端的设置方式,您可能需要对其进行调整才能接受。