gpt4 book ai didi

node.js - SPA应该使用Ajax还是socket.io?

转载 作者:搜寻专家 更新时间:2023-10-31 23:32:48 25 4
gpt4 key购买 nike

浏览 GitHub 存储库时,我经常看到使用 Ajax 而不是 socket.io 的 SPA 实现。这让我感到惊讶,因为我猜想 socket.io 实现应该更快(因此您不必在每次更改路由时都打开连接)并因此提供更好的用户体验。还是我想念什么?基于Ajax的SPA有什么优势吗?

最佳答案

此决定完全取决于您的要求,没有应该。这甚至不是一个“非此即彼”的决定,在某些情况下,使用混合方法可能是个好主意。

Does Ajax-based SPA has any advantages?

一些想法:

  • 可重用性:如您所知,socket.io 不仅仅是 WebSockets 的包装器。事实上,它使用与其他 WebSocket 实现不兼容的自定义协议(protocol) - 您的(网络)客户端必须支持 socket.io。另一方面,当使用 Ajax 时,您可以创建一个可重复使用的 REST 接口(interface),该接口(interface)同时被不同类型的应用程序使用,例如通过您的 SPA,另外通过本地移动应用程序。
  • 客户端和服务器端的复杂性:大多数用于构建 SPA 的 Javascript 框架都为与 Ajax 相关的通信提供了出色的开箱即用支持,而 Ajax 调用只是简单的旧 HTTP 请求,用户可以理解每台网络服务器都在那里。
  • 性能:正如您所指出的,不需要 socket.io 为每个请求建立新连接。但事实是,使用 HTTP 时也不一定如此。现代浏览器使用(或多或少)智能连接管理,如果请求之间的空闲时间不太长,它可能会为后续请求使用相同的连接。如果您有很多并发用户,这可能比使用 socket.io 更节省资源,后者即使没有流量也能长时间保持连接打开。

关于node.js - SPA应该使用Ajax还是socket.io?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33582971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com