2011-05-14 1 views
2

내 응용 프로그램은 폴링을 사용하여 음악 플레이어의 상태를 업데이트합니다. 나는 이것을 수행하기 위해 매초마다 Aphax 전화를 걸기 위해 setInterval을 사용하고 있습니다. Nook 색상의 브라우저를 제외한 많은 브라우저 (Chrome, Firefox, Safari ...)에서 작동합니다. 페이지가로드되면 올바른 정보가 업데이트되지만 이후에는 항상 동일한 정보가로드됩니다. 이는 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 네이티브 브라우저입니다 (루팅되거나 루핑되지 않은 브라우저).

답변

2

Internet Explorer에는 AJAX 콘텐츠를 캐시하는 이상한 특질이 있습니다. Nook 브라우저에서 같은 문제가 발생한다고 생각합니다. 해결책은 기본적으로 임의의 매개 변수 인 "캐시 버스터 (cache buster)"매개 변수를 추가하여 URL을 새로 처리하는 것입니다.

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

이 방법이 효과적입니다. 감사! – Bastiano9