Ajax请求不加载新数据

时间:2011-05-14 04:50:44

标签: javascript ajax caching browser nook

我的应用程序使用轮询来更新音乐播放器的状态。我正在使用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)。

1 个答案:

答案 0 :(得分:2)

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

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