数组排序中的 JavaScript 与 PHP

Posted

技术标签:

【中文标题】数组排序中的 JavaScript 与 PHP【英文标题】:JavaScript vs PHP in sorting an array 【发布时间】:2016-03-24 19:58:50 【问题描述】:

我正在从用户那里获取信息。然后我要对信息进行排序(按字母数字顺序),然​​后再次将其返回给用户,因此 不会将其保存到数据库中

我可以使用 JavaScript(您甚至可以使用 jQuery)或 PHP 来进行排序。由于数据可能包含很多行,我想知道以下排序方法:

假设我使用一个名为 lines

的数组标记所有行 在javascriptlines.sort(); 在 phpsort($lines);

我非常想知道客户端或服务器端的做法是否会有所不同,主要是在速度方面。另外,如果准确性很重要,那么它们会有什么不同吗?请解释原因。

【问题讨论】:

jquery sortspeedy 因为它是客户端负载。对于服务器端排序,我们需要从整个数据中查找,而不仅仅是从当前页面的显示中查找分页 那里有很多可能性,例如如果用户有良好的PC和浏览器,那么客户端应该更快,因为不需要调用服务器端是吗?另一方面,如果您想将操作放在服务器上,那么您不依赖于用户的浏览器 【参考方案1】:

1) jQuery sort() 快速 因为它有客户端负载。

2) 对于服务器端排序,我们需要从整个数据中查找,而不仅仅是从当前页面中的显示中查找分页

对于服务器端排序最适合:

大型数据集

更快的初始页面加载

那些不运行 javascript 的人的可访问性

客户端排序最适合:

小数据集

更快的后续页面加载

能够让用户在不加载页面的情况下进行排序

这使得服务器端排序和客户端排序有所不同。

【讨论】:

一个非常简短和好的答案。虽然我想知道你为什么要说Small data set 代表Client side?因为我们不信任客户端的浏览器?还是主要是因为Server side的运算速度更快? 如果我有超过 10k 个单元格(10 列 x 1000 行),那么我可能应该启用服务器端处理,而不是将其留给客户端。在 JavaScript 引擎非常慢的旧机器上尤其如此。 对于大型数据集,我们执行分页以获取记录,并且需要从full data set 排序需要服务器端排序。【参考方案2】:

视情况而定。 Javascript 表示客户端负载。因此,如果客户端的系统速度较慢,则可能需要更长的时间。但是服务器端意味着您必须将数据放入 php(数据库或通过请求等)并在排序后返回客户端。

要考虑的另一件事是 php 是受控的。您可以确保输出是相同的。在 Javascript 中,它在每个系统上都应该是相同的。但是不同的浏览器可能会在排序时产生不同的结果。

【讨论】:

解释得很好。 “但不同的浏览器可能会在排序时产生不同的结果”,我绝对不知道这一点。您能否提供一个小例子或链接?谢谢。

以上是关于数组排序中的 JavaScript 与 PHP的主要内容,如果未能解决你的问题,请参考以下文章

javascript对象,php数组以键名排序

Javascript数组系列四之数组的转换与排序Sort方法

javascript二维数组怎样排序

Javascript 无法正确排序包含两个数组值的数组

JavaScript 快速排序

sort方法实际应用详解---javascript中对一个对象数组按照对象某个属性进行排序