2

我的应用程序使用轮询来更新音乐播放器的状态。我setInterval习惯每半秒进行一次 Ajax 调用来执行此操作。它适用于许多浏览器(Chrome、Firefox、Safari...),除了 Nook 颜色的浏览器。当页面加载时,它会更新正确的信息,但之后它总是加载相同的信息。使用alert. 这是原始代码

函数 getStatus() {

请求 = 新 XMLHttpRequest();

request.open("GET", SOME_URL, true);

request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

request.onreadystatechange = function () {

如果(request.readyState === 4 && request.status === 200)

updateStatus(request.responseText);

};

请求.发送()

}

setInterval(getStatus, 500);

任何想法为什么它总是加载相同的信息(它最初获取的信息)?

另外:如果您清除缓存,它只会加载最新信息。这个 Nook 是植根的,也有 Firefox,它可以正常工作。执行此操作的是 Nook 本机浏览器(有根或无根)。

4

1 回答 1

2

Internet Explorer 有一个奇怪的怪癖,它缓存 AJAX 内容。我想你在 Nook 浏览器中看到了同样的问题。解决方案是添加一个“缓存破坏者”参数,它基本上只是一个随机参数,因此 URL 被新鲜处理:

"SOME_URL?random=" + Math.random()
于 2011-05-14T04:58:17.453 回答