前端或后端中的数组排序

eda*_*ash 4 javascript frontend backend

我正在实现一个返回数组的RESTful API。我想知道在我的后端代码或javascript中按降序对数组进行排序是否会更有效?

Ant*_*kov 7

取决于数据来自哪里、您拥有多少数据以及您想要实现的目标。

基于前端的解决方案的服务器 CPU 成本较低,但可能会导致糟糕的用户体验。想象一下在旧电脑上安装的 IE 中排序的 100000 个功能的数组吗?它可能会挂起浏览器。

因此,如果您有大量数据需要处理,或者服务器上的 CPU 经济性对于您使用前端很重要,否则使用后端。


小智 5

您的API将被n个客户端使用。从性能角度来看,让每个客户端自己进行排序而不是让服务器为所有n个客户端执行排序是有意义的。简单来说,服务器的CPU工作量较少。

此外,是否需要对结果进行排序取决于使用数据的应用程序的性质。让应用程序决定。

但是,在您实际遇到性能问题之前,我不会过多考虑性能部分。也可能是数据排序的成本并不高,或者已经根据内部保存信息的方式进行了排序(例如,在DBMS中)。

编辑

多达20行而不进行排序,实际上并没有什么重要的区别-使实现开发人员生活的API更加轻松,并在后端进行较小的排序。


小智 5

我实际上会尝试将其交给数据库。编写查询,其中从数据库返回的数组已经排序。最大的计算能力和最有效的排序可能在 DB 上。

这适用于一般 IMO 中的排序、过滤。