网站实时更新-每秒1个ajax是不好的做法吗



我有一个网站,每个用户都可以有几个订单。每个订单都有自己的状态。后台流程,根据需要不断更新每个订单的状态。我想实时通知用户他的订单状态。因此,我开发了一个API端点,它返回给定用户的所有订单。在客户端,我开发了一个显示订单的React组件,然后每秒钟向API执行一个AJAX请求,以获取所有订单及其状态,然后React将在必要时自动更新。

每秒调用一个AJAX来获取用户的所有订单是不是一种糟糕的做法?我还能做什么其他策略?

是的。您可以使用Socket来实现这一点。看看Socket。IO

编辑:我的观点是,为什么要使用AJAX来模拟一个可以通过为其设计的功能来完成的任务?插座就是用来做这种事情的。

想象一下,如果你的用户失去了互联网连接。带插座。IO你可以很好地处理这个问题。但我认为AJAX不会那么容易。

考虑到可扩展性,Socket。IO被设计为在任何传输上都能发挥性能。它根据可能的连接而优雅地降级的方式非常棒,这意味着你的服务器将尽可能少地过载,同时仍然能接触到尽可能广泛的受众。

AJAX会起作用,但它不是最好的设计。

这个问题没有一个适合所有人的解决方案。

首先,这不是一个聊天应用程序,不到1秒的延迟不会对用户体验产生太大改变。

因此,这给我们留下了技术原因,这实际上取决于许多因素:

你有多少用户(总负载),有多少并发用户在等待他们的订单,你正在使用什么基础设施,你有其他重要的东西要构建吗?或者你只想花更多的时间为有趣的事情编码?

如果你有少数用户,每秒查询一次并没有错,它很容易,维护开销更少,而且你说你已经编码好了。

如果有几十个或更多的并发用户在等待状态,那么最好使用Websockets。

在基础设施方面,太多的websocket是昂贵的(一些云主机对套接字的数量有限制),所以如果你想走这条路,请记住这一点。

最新更新