好吗 - 使用 setInterval 进行数据刷新
Is it good - use setInterval for data refreshing?
>我有一个问题 - 我应该尽快为用户更新信息,但我不知道确切的时间。
我使用 setInterval 函数在检查之前检查当前状态和状态之间的差异。如果有任何差异,那么我会发送 AJAX 请求并更新信息。不好吗?在这种情况下,我无法(或不知道如何)收听任何事件。
那么间隔时间呢?所有用户(同时~300)都来自本地网络(ping 15-20毫秒)。我必须立即刷新信息。我应该最好使用 50 毫秒还是 500 毫秒?
如果问题不是很清楚,就问 - 我会尝试用换句话说说出来。提前致谢
解决方案:Websocket
Websocket 允许客户端应用程序响应从服务器发起的消息(将其与 HTTP 进行比较,其中客户端需要首先通过请求向服务器请求数据)。一个好的解决方案是利用 websocket 库或框架。在客户端上,您需要创建与服务器的 websocket 连接,在服务器上,您需要在发生更新时提醒任何打开的 websocket。
间隔问题
它不缩放,您可以将间隔设置为 4000 毫秒,并且一旦达到 1000 个用户......您将以每分钟10000个请求和响应猛击服务器...这将使用大量数据并使用处理来不返回任何内容。 Websocket 仅当您要发送的事件实际发生时,才会将数据发送到客户端代理。
后端:PHP
框架
- 棘轮
- 棘轮源代码
- phpwebsocket
- PHP-Websockets-Server
只需将上述框架之一实现为 websocket 连接,然后您将注册为此端点的客户端,它将在您定义的任何事件上发送数据。
相关文章:
- 如何检查Json文件更新,如果更新了,则用更新的数据刷新我的页面
- JQGrid使用服务器编辑后的更新数据刷新数据
- 如何使用新的JSON数据刷新jsTree
- jQueryAJAX将数据重新加载到DOM中,或者使用新数据刷新DOM
- 插入数据并用新数据刷新数据网格后,关闭弹出窗口
- 正在删除数据(刷新)WebGL Globe
- 使用 ajax 调用使用操作类返回的数据刷新(更新)表的各个行
- 好吗 - 使用 setInterval 进行数据刷新
- 数据表无限 + 自动数据刷新
- 模式未使用新数据刷新
- 聚合物-使用绑定数据刷新模板
- Angular如何知道应该重新应用绑定来用更新的数据刷新UI元素
- 连续添加|更新|将数据库中的数据刷新到页面而不回发
- 使用服务器端数据刷新gridx
- 在数据刷新后保留最后的Flot十字准线和图例数据
- 如何用新数据刷新剑道网格
- Ng-Grid将在数据刷新后折叠行,如何防止这种情况
- 当数据刷新时,jQuery UI手风琴不工作
- 如何在ajax网格中使用数据刷新作为触发器
- 如何在AngularJs中保持页面上的数据刷新