好吧,这就是:
我目前正在实现一个软件,它使用AJAX对数据进行autorefresh / autopull / autoreload以保持屏幕的正常运行.
这实际上是有效的,但我知道我使用了最简单的方法:
> SetInterval(javascript)
>每隔n秒反复调用刷新方法.
>阅读Json数据,重建HTML并进行更新.
这也可以通过调用SetTimeOut(javascript)和AJAX请求的结束来完成.
在刷新方法中,我在内部检查它是否同时被调用,等等.
然而……这是最简单的方法,它可以工作但是,在慢速计算机中,firefox和ie,我可以看到这个活动有时会冻结浏览器,我知道这可能不是必要的,因为AJAX调用,但是如何“密集“整个javascript操作……但是,在运行一个分析器后,整体javascript(顺便使用jquery)似乎没问题.此外,如果我禁用自动刷新,浏览器不会在慢速计算机中短时间冻结.
我决定调查几个主要的AJAX应用程序是如何工作的.
例如Facebook ..他们一直在做一个请求,每N秒,解释JSON并更新屏幕,但是,google docs …我似乎可以找到任何请求..这可能是因为:他们只是在告诉javascript调试器引擎,他们不希望他们的请求被记录??,或者,他们是否使用另一种方法来解决刷新困境?
我在stackoverflow上读到另一个答案,Google Docs保持打开连接..
这可以作为答案吗? http://ajaxpatterns.org/HTTP_Streaming
你们对此有何了解?
正如旁注,我正在开发的应用程序一次只能被成千上万的用户访问,我知道JavaScript刷新例程只讲述了历史的一小部分,但是服务器端应用程序和数据库是目前通过使用数千个虚拟化站进行的压力测试来支持这样的负载.我只是想知道你对客户端浏览器问题的看法.
问候和
如果你还在读这个..
谢谢你的时间.
最佳答案 我怀疑他们正在使用
WebSockets.浏览器支持是不稳定的,所以你的里程可能因这种方法而有所不同.
您可能还想查看APE(ajax推送引擎),这是一个使用客户端/服务器架构进行长轮询的不错实现.