AJAX不断寻找服务器更新?使用Javascript

时间:2009-08-17 18:07:13

标签: javascript jquery iphone ajax

我的情况是网页上的显示需要随机更新。我想在AJAX中这样做,但我不知道除了做一个

之外该怎么做
while(true) { ajaxFunction(); sleep(1) }

输入东西。

问题在于,在更改服务器时需要非常快速地更新网页,但有时可能偶尔会发生更改。

编辑:这是一个使用UIWebView的Iphone应用程序,是否可以使用iPhone的推送通知与javascript接口?

谢谢!

4 个答案:

答案 0 :(得分:6)

我认为你所描述的是Comet并且有一些jQuery的插件:

http://code.google.com/p/jquerycomet/

http://plugins.jquery.com/project/Comet

答案 1 :(得分:1)

我能想到的唯一方法是不断查询它。只是保持你的回答很小,这样你就不会无缘无故地移动一堆数据。您甚至可以暂停服务器的响应,直到数据可用。

setInterval(function(){
  $.get("updates.php", function(result) {
    alert(result);
  });
}, 5000);

甚至可以在updates.php中构建一些逻辑,以便在用户部分不活动10分钟后取消setInterval()。这将扼杀不再登录的用户的持续请求。

答案 2 :(得分:1)

当您想要优化服务器负载时,您应该考虑实施某种彗星(服务器推送)技术。如果您只有少数用户,那么轮询解决方案是合适的。

关于彗星:彗星技术不是别的,而是向服务器发出一个简单的http请求,服务器不会立即响应请求,而是等待有需要回复的内容。直到服务器上的线程被暂停。

在实现服务器推送技术时应该考虑一些技术方面(比如我应该在哪里挂起线程)。最好使用开源的。如果你搜索彗星,很容易在网上找到它们。

答案 3 :(得分:0)

如果更改是零星的,请考虑不使用任何AJAX。等待用户刷新或重新访问该页面。