数组排序中的 JavaScript 与 PHP
Posted
技术标签:
【中文标题】数组排序中的 JavaScript 与 PHP【英文标题】:JavaScript vs PHP in sorting an array 【发布时间】:2016-03-24 19:58:50 【问题描述】:我正在从用户那里获取信息。然后我要对信息进行排序(按字母数字顺序),然后再次将其返回给用户,因此 不会将其保存到数据库中。
我可以使用 JavaScript(您甚至可以使用 jQuery)或 PHP 来进行排序。由于数据可能包含很多行,我想知道以下排序方法:
假设我使用一个名为 lines
lines.sort()
;
在 php 中 sort($lines)
;
我非常想知道客户端或服务器端的做法是否会有所不同,主要是在速度方面。另外,如果准确性很重要,那么它们会有什么不同吗?请解释原因。
【问题讨论】:
jquerysort
是 speedy
因为它是客户端负载。对于服务器端排序,我们需要从整个数据中查找,而不仅仅是从当前页面的显示中查找分页
那里有很多可能性,例如如果用户有良好的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的主要内容,如果未能解决你的问题,请参考以下文章