JSONP Long Polling总是加载

时间:2010-03-31 19:32:57

标签: comet long-polling orbited

我正在使用JSONP进行长轮询,并且firefox不断弹出“正在加载”微调器,使页面看起来好像还没有完成加载。有没有办法压制这个?

我被告知Orbited团队有抑制这种情况的黑客攻击,但通过Orbited.js代码我无法弄清楚它们是什么。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:5)

这是一个简单的解决方案..您所要做的就是使用setTimeout启动轮询请求。

这是我使用的一些代码..它使用jQuery,但我假设你可以弄清楚你需要什么,并使用你的库来做同样的事情。

<script type="text/javascript">
  function poll(){
    $.getJSON('/updates', function(json){
      //reconnect since we successfully received data and disconnected
      poll();

      //add something here to do whatever with the recieved data
    });
  }
  /*call the poll function after document has loaded with setTimeout
  if called before the document finishes loading completely it will
  cause a constant loading indication*/
  setTimeout(poll, 1);
</script>

答案 1 :(得分:2)

我没有答案,但我确实有一个建议的选择。其他人刚问了一个类似的问题here's my answer

基本上,如果您拥有对服务器的控制权,最简单的解决方案是使用跨域资源共享标头来确定跨域XMLHttpRequest,并在旧浏览器上回退到JSONP。

我为CORS提供了一个相当完整的兼容性表(每个支持用户脚本的浏览器),作为我链接的答案的一部分,以及更为通用的on Wikipedia