我的应用程序使用轮询来更新音乐播放器的状态。我正在使用setInterval
每半秒进行一次Ajax调用来执行此操作。它适用于许多浏览器(Chrome,Firefox,Safari ......),Nook color的浏览器除外。当页面加载时,它会更新正确的信息,但之后它总是加载相同的信息。这是使用alert
确认的。这是原始代码
function getStatus(){
request = new XMLHttpRequest();
request.open(“GET”,SOME_URL,true);
request.setRequestHeader(“Content-Type”,“application / x-www-form-urlencoded”);
request.onreadystatechange = function(){
if(request.readyState === 4&& request.status === 200)
updateStatus(request.responseText);
};
request.send()
}
setInterval(getStatus, 500);
为什么它总是加载相同的信息(最初提取的信息)的任何想法?
另外:如果清除缓存,它只会加载最新信息。这个Nook已经扎根并且还有Firefox,它可以正常工作。这是Nook原生浏览器(root或unrooted)。
答案 0 :(得分:2)
Internet Explorer有一个奇怪的怪癖,它可以缓存AJAX内容。我想你在Nook浏览器中看到了同样的问题。解决方案是添加一个“cache buster”参数,这个参数基本上只是一个随机参数,所以URL被新近处理:
"SOME_URL?random=" + Math.random()