ajax - 何时使用 socket.io 何时使用 ajax

标签 ajax node.js express socket.io

我一直在用 nodejs 编程,研究了如何使用 socket.io 和 ajax 调用 Node 服务器。 socket.io 是否旨在取代 ajax?我很想知道在哪些情况下使用 socket.io 更好,哪些 ajax 更好。感谢您的意见。

最佳答案

嗯,Web 套接字(通过 socket.io)提供 ajax 缺少的主要功能之一是服务器推送。因此,对于 ajax,如果您想了解服务器上的新事件(例如,不同的用户向您发送了一条消息),您需要进行服务器轮询,这意味着您以相对频繁的周期性循环发送 ajax 请求。大多数情况下,服务器会响应没有新内容,但偶尔当有新内容时,客户端可以了解它。

Web 套接字允许服务器主动向客户端推送通知而无需轮询。因此,如果您的应用程序有任何类型的信息需要在服务器上启动并显示在浏览器中,那么 Web 套接字是一个更好的解决方案。

  • 在请求/响应模型中向服务器提交数据
    • ajax 或 web 套接字本质上是等效的,传统形式的 POSTS 也可以
  • 在事件流模型中向服务器提交事件
    • Web 套接字是最好的,可以通过 ajax 进行一些模拟
  • 将事件从服务器推送到浏览器
    • 网络套接字是最好的,可以通过 ajax 长轮询、flash 等来模拟(如果没有真正的网络套接字,socket.io 可以尝试使用几个后备)。
  • 旧版浏览器、某些移动平台
    • 没有网络套接字支持,所以 ajax 是您的后备方案

关于ajax - 何时使用 socket.io 何时使用 ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17266540/

相关文章:

javascript - 仅使用 javascript 显示来自 Amazon S3 存储桶的图像

javascript - Ruby & Rails - 将字符串转换为 Proc

javascript - 如何访问发送到 php 脚本的 jQuery.ajax() 返回数据

c# - 将复杂的 JSON 提交给 MVC Controller 。如何命名嵌套对象?

node.js - 事件 gulp-nodemon 没有触发

javascript - 如何让Node.JS在工作负载繁重时回复请求?

node.js - 从 REST 调用返回对象

node.js - 如何只允许一名用户注册 Stormpath

javascript - ReactJs 与 ChartJs 中的数据可视化

javascript - Express 中的脚本标签