前端或后端的数组排序

Array sorting in Front-end or Back-end

我正在实现一个 RESTful API returns 数组。我想知道在我的后端代码中或在 javascript?

中按降序对数组进行排序是否更有效

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

此外,结果是否需要排序取决于使用数据的应用程序的性质。让应用程序决定。一些界面允许用户决定排序的依据,从而方便在本地进行排序(无需等待后台 HTTP 调用)。

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

编辑

最多 20 行没有排序,这真的没有什么重要区别 - 让 API 实现开发人员的生活更轻松,并在前端进行小排序。

这取决于您的需要。如果你的数据量小,你可以在FE中全部完成,这样用户就不必为不同的排序加载相同的数组。

对于大量数据和分页,当然最好在后端完成。

A RESTful API 是为开发人员使用它而构建的。它 returns 的值、它呈现的错误,甚至 headers 都是开发人员在使用您的 API.

时所拥有的 "user experience" 的一部分

现在您需要权衡性能问题。它可能有很多数据吗?您可以通过分页等限制该数据吗?在未经检查的情况下,在您的服务器上执行长时间排序操作不仅会严重影响该用户的体验,还会严重影响其他用户的体验。

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

这样想..你是想让服务器来完成工作,还是个人的浏览器......所以效率取决于他们的系统硬件和软件..任何时候你都不能"pawn off"浏览器的负载,它会稍微增加服务器的开销。但是,有更少的问题 - 简短的回答是没有人知道,因为你无法了解客户端系统的所有方面。

话虽如此,这只是数组解析。对于更大的(大体上,我的意思是巨大的)数据集......你所要求的可能在数组的服务器端和客户端处理之间略显明显。但如果不是 "HUGE" -- 从性能的角度来看,最有可能是六个。

在我看来,最佳做法是将代码放在您可以控制开销的地方。服务器端。

取决于数据的来源、您拥有的数据量以及您想要实现的目标。

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

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

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

这会在一般 IMO 中进行排序、过滤。