前端或后端的数组排序

时间:2017-04-14 15:28:10

标签: javascript frontend backend

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

6 个答案:

答案 0 :(得分:2)

我实际上会尝试将其传递给数据库。将查询写在从数据库返回的数组已经排序的位置。最强大的计算能力和最有效的排序可能在数据库上。

这将用于常规IMO中的排序和过滤。

答案 1 :(得分:1)

您的API将由 n 客户端使用。在性能方面,让每个客户端自己进行排序而不是让服务器为所有 n 客户端执行排序是有意义的。简单来说,服务器的CPU工作量就会减少。

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

但是,在实际出现性能问题之前,我不会过度考虑性能部分。也可能是数据排序的成本并不高,或者排序已经完成,具体取决于内部信息的保存方式(例如,在DBMS-s中)。

修改

最多20行没有排序,它确实没有重要区别 - 让API实现开发人员'生活更轻松,并在后端进行小排序。

答案 2 :(得分:1)

RESTful API是为使用它的开发人员而构建的。它返回的值,它呈现的错误,甚至标题都是"用户体验的一部分"开发人员在使用您的API时。

现在你需要权衡性能问题。是否有大量数据?你能通过分页等限制数据吗?在未经检查的情况下,对服务器进行长时间排序操作可能会不仅为该用户而且还为其他用户提供严重降级的体验。

也就是说,服务器通常具有更多的排序功能,甚至(使用正确的语言/算法)可以提供多线程的方法来解决问题。因此,如果您不担心性能影响服务器端,几乎在所有情况下我都会在服务器上执行此操作。

答案 3 :(得分:0)

这取决于您的需求。如果您有少量数据,则可以在FE中执行所有操作,因此用户无需为不同的排序加载相同的数组。

当然,有很多数据和分页,最好在后端进行。

答案 4 :(得分:0)

以这种方式思考..您是否希望服务器完成工作,或者个人的浏览器......因此效率归结为他们的系统硬件和软件..任何时候您都无法“甩掉”负载到在浏览器上,它会在服务器上稍微增加一些开销。然而,问题要少一些 - 简短的回答是没有人知道,因为你无法了解客户系统的所有方面。

话虽如此,它只是数组解析。使用更大(大,我意味着巨大)的数据集......您所询问的内容可能在数组的服务器端和客户端处理之间略微明显。但如果它不是“巨大的” - 从表演的角度来看,最有可能只有六个单向一半。

在我看来,最佳做法是将代码保留在可以控制开销的位置。服务器端。

答案 5 :(得分:0)

取决于数据的来源,您拥有的数量以及您希望实现的目标。

基于前端的解决方案是降低服务器CPU的成本,但可能会成为糟糕的用户体验。想象一下在旧PC上安装的IE排序的100000个功能阵列?它可以挂起浏览器。

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