2011-05-14 96 views
2

我的應用程序使用輪詢來更新音樂播放器的狀態。我正在使用setInterval每半秒進行一次Ajax呼叫來完成此操作。它適用於許多瀏覽器(Chrome,Firefox,Safari ...),除了Nook顏色的瀏覽器。當頁面加載時會更新正確的信息,但在此之後它總是加載相同的信息。這已使用alert進行確認。這裏的原始代碼Ajax請求不加載新數據

功能的getStatus(){

請求=新的XMLHttpRequest();

request.open(「GET」,SOME_URL,true);

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

request.onreadystatechange =函數(){

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

updateStatus(request.responseText );

};

request.send()

}

setInterval(getStatus, 500); 

任何想法,爲什麼它總是加載相同的信息(它最初獲取的信息)?

另外:它只加載最新的信息,如果你清除緩存。這個Nook是根植的,也有Firefox,它會工作得很好。它是這樣做的Nook本地瀏覽器(根或無根)。

回答

2

Internet Explorer有一個奇怪的怪癖,它緩存AJAX內容。我想你在Nook瀏覽器中看到了同樣的問題。解決方法是添加一個「緩存攔截器」參數,該參數基本上只是一個隨機參數,因此URL會被重新處理:

"SOME_URL?random=" + Math.random()
+0

This Works!謝謝! – Bastiano9 2011-05-14 06:21:36