ajax和spa的区别,SPA应该使用Ajax还是socket.io?

添加到绝对正确的答案@alapeno发布,这里没有“最佳实践”。这是你的使用案例。

使用Websockets(其中socket.io只是一个实现,恕我直言,有更好的)允许你有双向通信之间的客户端和服务器,其中服务器可以发起通信,只要套接字已启动。

另一方面,Ajax要求客户端每次启动通信。

两者都有优点和缺点。

的WebSockets

一些优点

低开销用于发送和接收数据

可以取代 “传统的Ajax” 使用像SwaggerSockets

服务器的消息格式可以把事件给客户 个

一些缺点

服务器上的低效利用内存。如果您有大量套接字连接,则服务器进程使用的RAM数量将迅速增加。一些Websocket库在内存管理上比其他的更差。 (即你将需要更多的服务器/资源)

没有“标准化”的方式来记录发送和接收数据的格式。您需要明确如何通过已建立的套接字调用服务器上的函数,或者探索使用SwaggerSockets之类的东西。

如果第三方需要使用您的API,Websockets可能是数据交换的一个特别糟糕的选择,因为大多数应用程序可以轻松地调用REST API,但使用基于套接字的方法设置较少。

阿贾克斯

一些优点在服务器上

较低的存储需求。由于连接不是“永久”持久的,并且是为了拉取而非推送而设计的,所以与使用Websockets相比,您可能会处理更多的客户端。

标准化文档格式。使用Swagger,Slate等为您的API创建出色的可读文档,这对您未来的自我以及任何潜在的第三方都很有用。

Ajax通常被大多数Web开发人员很好的理解。

减整体复杂

一些缺点 - 更多的开销。对于每一个请求,你都会有不同的头文件,TCP开销等,尽管这不是一个真正的问题。正如@alapeno所说,现代浏览器在连接管理方面非常智能。 - 无推送通知。如果你想知道服务器上发生了什么事情,你必须问。 (服务器发送的事件在浏览器支持方面仍然处于初级阶段,尽管这对于推送来说最终会是一个不错的选择。)

我确定每个类别都可以添加更多的点,但那些点是我在选择时经历的许多事情。

不同用例的一个很好的例子是Stripe vs. Slack。

条纹有一个非常好的REST API,因为它们直接针对事务操作。他们没有在外部使用Websockets,因为它对他们的模型没有意义。

另一方面,Slack是关于实时通信。他们广泛地使用Websockets发送和接收消息,因为用户在发送数据后立即收到数据是非常必要的。当然,Slack也有一个REST API,所以在单一服务中使用它们显然是有意义的。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值