4

好吧,就这样吧:

我目前正在实现一个软件,该软件通过使用 AJAX 自动刷新/自动拉动/自动重新加载数据以保持屏幕实时。

这实际上是有效的,但我知道我使用了最简单的方法:

  1. 设置间隔 (javascript)
  2. 每 n 秒调用一次 Refresh 方法。
  3. 读取 Json 数据,重建 HTML 并更新它。

这也可以通过调用 SetTimeOut (javascript) 并结束 AJAX 请求来完成。

在刷新方法中,我在内部检查它是否被同时调用,等等。

但是......这是最简单的方法,它可以工作,但是在慢速计算机、firefox 和 ie 中,我可以看到这个活动有时会冻结浏览器,我知道这可能不是必需的,因为AJAX 调用,但是“密集" 是整体的 javascript 操作......但是,在运行分析器之后,整体 javascript(顺便使用 jquery)似乎很好。此外,如果我禁用自动刷新,浏览器不会在慢速计算机中冻结几秒钟。

我决定研究几个主要的 AJAX 应用程序是如何工作的。

例如 Facebook .. 他们每 N 秒都会发出一个请求,解释 JSON 并更新屏幕,但是,谷歌文档...我似乎可以找到任何请求.. 这可能是因为:他们只是在告诉javascript 调试器引擎,他们不希望他们的请求被记录??或者,他们是否使用另一种方法来解决刷新困境?

我在 stackoverflow 上阅读了另一个答案,即 Google Docs 保持开放连接。

这可以是答案吗?http://ajaxpatterns.org/HTTP_Streaming

你们对此有什么了解?

顺便说一句,我正在开发的应用程序旨在同时被成千上万的用户访问,我知道 JavaScript 刷新例程只讲述了历史的一小部分,但服务器端应用程序和数据库是根据我使用数千个虚拟化站所做的压力测试,目前支持这样的负载。我只想知道您对客户端浏览器问题的具体看法。

问候,如果您仍在阅读本文。谢谢您的宝贵时间。

4

2 回答 2

2

我怀疑他们正在使用WebSockets。浏览器支持不稳定,因此您的里程可能会因这种方法而异。

您可能还想查看APE(ajax 推送引擎),它是使用客户端/服务器架构的长轮询的一个不错的实现。

于 2012-06-08T11:40:46.253 回答
0

您可以阅读Long Polling。但是你必须处理掉线等。

于 2012-06-08T11:40:37.057 回答