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