javascript - 确定新数据是否可用的最佳方法

标签 javascript ajax performance web websocket

有许多高负载网站会在运行时通知用户新消息/主题,而无需重新加载页面。他们是怎么做到的?他们使用哪种方法?

我认为有两种方法:

  • 每次间隔时使用 JavaScript“询问”服务器
  • 使用网络套接字

普遍认为,第一个对于服务器来说太重了,因为它产生了太多的请求。

关于第二个在高负载应用程序中的行为我一无所知,这好吗?

那么,使用哪种设计方法可以正确实现“新消息可用”等功能,而不需要重新加载页面呢? 问题在于性能:)

最佳答案

WebSocket 在浏览器中的性能不是问题,并且在服务器端有高性能的实现。例如,Crossbar.io可以轻松处理小型服务器上的 180k 并发连接(在较旧的 i5 笔记本电脑上的虚拟机中进行测试)和 10k/s 消息 - 并且两者都随硬件(分别是 RAM 和 CPU)进行扩展。另外:像 Crossbar.io/Autobahn/WAMP 这样的东西为您提供了一个基于 WebSocket 的协议(protocol)来处理向客户端分发通知,让您的生活更轻松。

全面披露:我在 Crossbar.io 上工作的公司工作,并且还有其他 WebSocket 和 PubSub 解决方案。看看什么最适合您的用例并选择它。

关于javascript - 确定新数据是否可用的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33616198/

相关文章:

javascript - DOM 中两个元素之间的距离(以像素为单位)

php - 单击按钮时删除单击的按钮 div

ajax - 如何处理乱序的 Ajax 请求?

PHP Ajax 分页数组不起作用

java - 使用迭代器的 for 循环和 while 循环之间的区别

c++ - qsort 与 std::sort 的性能?

java限速逻辑

javascript - 从头开始构建一个 javascript Web 分析工具

Javascript - 在类的函数成员中正确使用 'this'

javascript - 发送通过 AJAX 更改的元素的值