有了websockets,AJAX还有用武之地吗?

2024-03-29

我目前正在使用 Node.js 构建一个实时应用程序。我使用 socket.io 来支持实时交互,但已加载 jQuery,因此我可以使用 AJAX。我最初使用 socket.io 进行服务器和客户端之间的所有通信。

我开始认为 AJAX 可能更适合某些情况,例如异步执行 RESTful 事务,因为我不必在套接字中编写单独的消息情况来处理每个新事务以及编写 RESTful 路由。

我想知道我是否正在做某件事,或者是否最好使用套接字来提高性能或其他我没有考虑到的事情。

谢谢! 马特·穆勒


是的,WebSockets(RFC 6455 https://www.rfc-editor.org/rfc/rfc6455) 和 Ajax 有很大不同并且服务于不同的目的。

正如您所说,使用 Ajax 您可以执行 RESTful 请求。这意味着您可以利用现有的 HTTP 基础设施,例如代理cache请求和使用有条件获取请求 http://ruturajv.wordpress.com/2005/12/27/conditional-get-request/。 Ajax 请求可能相当重量级,因为每个 Ajax 请求都包含 HTTP 标头并包含 cookie。

WebSockets 专为低延迟双向通信而设计。根据设计,WebSockets 在每条消息中的开销非常小。例如。 WebSockets 消息不必包含任何 HTTP 标头,并且将来可能用于 VoIP 和双向流传输。

另一个区别是 Ajax 可以与无国籍的服务器。例如。如果您的 Web 负载通过多个服务器进行平衡,则任何服务器都可以处理 Ajax 请求,即使在重新启动(或升级)后也是如此。 Websocket 已“连接”并使用stateful服务器,因此使用多个服务器可能会更困难。

还有服务器发送事件,与 WebSocket 类似,服务器可以将数据推送到客户端(如果没有 hack(例如 comet),Ajax 就无法完成此操作),并且它还可以处理自动重新连接。但它仅适用于单向(服务器到客户端)的消息。看HTML5 服务器端事件:EventSource 与包装的 WebSocket https://stackoverflow.com/a/8502556/213269.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有了websockets,AJAX还有用武之地吗? 的相关文章

  • 如何向 JSF 应用程序发送手动 jQuery Ajax 请求?

    我正在做一个POST 使用 jQuery 的请求似乎成功了 但是我如何在服务器端使用它并修改响应 我是否需要另一个 servlet 因为 Faces Servlet 不是为处理这个问题而设计的 ajax type POST data sta
  • 如何从ajax调用php函数?

    我熟悉如何让ajax转到php页面并执行一系列操作然后返回json数据 但是 是否可以调用驻留在给定页面中的特定函数 基本上我想要的是减少项目中的文件数量 所以我可以把很多常用的函数放在一个页面中 然后只调用我现在想要的任何函数 对于 AJ
  • PHP:在 CURL GET 调用中使用 API 密钥

    我看过关于使用 api 密钥在curl 中验证 post 调用的帖子 我有一个 GET 调用 需要 apikey 进行授权 即请求必须具有包含 apiKey 的授权标头 我已经获得了 api 密钥并尝试将其用于 GET 调用
  • Rails 渲染 JSON - 会话丢失?

    我正在尝试对控制器进行一些 Ajax 调用 该控制器以 JSON 进行响应 if session user render json gt Some Data else render json gt You are not logged in
  • 如何在 Codeigniter 中我自己的控制器中生成 API 密钥

    只是想提一下 我确实是 API 开发 概念 结构 最佳实践 方面的新手 我对它一点也不熟悉 所以如果您发现我正在使用 Phil 请原谅我可悲的愚蠢问题Sturgeon 的 REST API 服务器 Curl 库和 REST API 客户端这
  • 外部依赖错误的 HTTP 状态代码

    当服务器与外部 API 通信出现问题时 返回的正确 HTTP 状态代码是什么 假设客户端向我的服务器 A 发送有效请求 然后 A 查询服务器 B 的 API 以便执行某些操作 然而 B 的 API 当前抛出 500 错误或因某种原因无法访问
  • 在 ASP.NET 更新面板中使用时,文本框回发值中缺少回车符(ASCII 字符 13)

    我有一个 ASP NET TextBox 其 TextMode TextBox Mode Multi Line 在 AJAX 更新面板中使用 Text 值已预设为具有多行的值 当使用 Chrome 7 0 517 41 或 Firefox
  • 未捕获的类型错误:无法读取未定义的属性“toLowerCase”

    我收到此错误 它源自 jquery 框架 当我尝试加载准备好的文档上的选择列表时 出现此错误 我似乎无法找到为什么会出现此错误 它适用于更改事件 但在尝试手动执行该函数时出现错误 未捕获的类型错误 无法读取未定义的属性 toLowerCas
  • 如何在 jquery 中使 ajax 数据键动态化?

    我试图使内联编辑成为动态的 因此它只依赖于我的标记中的一些数据属性 所以现在的代码如下 inline edit editable function value settings var editableField this ajax typ
  • Wicket:并发 Ajax 请求仅限于一个?

    情况 在我的 Wicket 应用程序中 我有一个包含两个标签的页面 每次选择一个选项卡时 都会通过 Ajax 获取其内容 以便每次切换到不同的选项卡时 都会从服务器新鲜加载其内容 在其中一个选项卡上 我有一个输入字段 其中有一个 onblu
  • 如何销毁角度工厂实例

    一方面 我有几个工厂 每个工厂都控制一个 websocket 另一方面 其中一个工厂应该在客户端登录时启动 因此 if user isLogged injector get NotificationsWebsocket 这就是我动态初始化工
  • 返回重定向作为对 Ajax(fetch、XHR 等)请求的响应

    如果浏览器收到对 ajax 请求的重定向响应 会发生什么 如果浏览器收到对 ajax 请求的重定向响应 会发生什么 如果服务器发送重定向 又名 302 响应加上 Location 标头 浏览器将自动遵循重定向 对此的回应second请求 假
  • 自动建议 php 的 ajax

    我有一个 html 表单 php 脚本和 jquery 我需要一个 ajax 代码来从我的 php 脚本中进行自动建议 以下是代码 表单 html
  • 获取/发布到 RESTful Web 服务

    我需要从 VB6 对 RESTful Web 服务进行一些 GET 和 POST 操作 最好和最简单的方法是什么 您需要添加对 MSXML 库的引用 Dim sUrl As String Dim response As String Dim
  • jQuery:离线后 POST 出错(iOS 和 Chrome)

    我构建了一个具有离线功能的 HTML5 Web 应用程序 使用 AppCache 程序流程为 Online 在网络上时 应用程序预加载一些基本信息 工作 Offline 用户拿着装有应用程序的平板电脑offline 然后在应用程序上执行他们
  • Firefox 不会在使用 jQuery AJAX 加载的内容上呈现 CSS 样式

    我有一个网站 允许用户对书籍和文章发表评论 主表单有一个搜索输入 用于查找相关书籍或文章 来源 我使用 jQuery 根据输入的搜索词从外部站点动态加载新源 然后还使用 AJAX 返回列表中的源 我有两个问题 现在 在用户输入四个字符后 j
  • Android REST API 连接

    我有点傻 对此感到抱歉 我编写了一个 API 它返回一些 JSON 我的目标是从 Android 应用程序使用此 API 我已经尝试过使用 AsyncTask 但失败了 我想像这样使用它 调用该类 告知 URL 和结果的类型 哪个json
  • 如何在收到电子邮件时实时解析电子邮件

    我需要构建一个电子邮件解析脚本 该脚本将解析进入收件箱的电子邮件并将内容转储到数据库中 同时发出包含从电子邮件解析的详细信息的curl 请求 目前 我非常专注于实现如何在收件箱中收到电子邮件时实时解析电子邮件的部分 有没有办法设置触发器来执
  • Java 有现成的时钟同步解决方案吗?

    我们有一个大型的高性能软件系统 它由多个交互的 Java 进程 不是 EJB 组成 每个进程可以在同一台机器上 也可以在不同的机器上 某些事件在一个进程中生成 然后以不同的方式传播到其他进程以进行进一步处理等 出于基准测试的目的 我们需要创
  • 如何在express中动态渲染/加载页面?

    我需要使用express gt 3 0 框架动态加载 渲染nodejs v1 8 15 中页面的一部分 一般来说 我想创建一个单页应用程序 我在页面顶部有一个带有链接的菜单 单击链接将更改下面的内容 就像 AJAX 页面加载一样 例如 gt

随机推荐