我的情况是网页上的显示需要随机更新。我想在AJAX中这样做,但我不知道除了做一个
之外该怎么做while(true) { ajaxFunction(); sleep(1) }
输入东西。
问题在于,在更改服务器时需要非常快速地更新网页,但有时可能偶尔会发生更改。
编辑:这是一个使用UIWebView的Iphone应用程序,是否可以使用iPhone的推送通知与javascript接口?谢谢!
答案 0 :(得分:6)
我认为你所描述的是Comet并且有一些jQuery的插件:
答案 1 :(得分:1)
我能想到的唯一方法是不断查询它。只是保持你的回答很小,这样你就不会无缘无故地移动一堆数据。您甚至可以暂停服务器的响应,直到数据可用。
setInterval(function(){
$.get("updates.php", function(result) {
alert(result);
});
}, 5000);
甚至可以在updates.php中构建一些逻辑,以便在用户部分不活动10分钟后取消setInterval()。这将扼杀不再登录的用户的持续请求。
答案 2 :(得分:1)
当您想要优化服务器负载时,您应该考虑实施某种彗星(服务器推送)技术。如果您只有少数用户,那么轮询解决方案是合适的。
关于彗星:彗星技术不是别的,而是向服务器发出一个简单的http请求,服务器不会立即响应请求,而是等待有需要回复的内容。直到服务器上的线程被暂停。
在实现服务器推送技术时应该考虑一些技术方面(比如我应该在哪里挂起线程)。最好使用开源的。如果你搜索彗星,很容易在网上找到它们。
答案 3 :(得分:0)
如果更改是零星的,请考虑不使用任何AJAX。等待用户刷新或重新访问该页面。