数组排序的最佳实践,PHP或Javascript
Best practice for sorting arrays, PHP or Javascript?
所以我对这个特定的主题做了相当多的研究,但我仍然发现自己对最佳方法有些困惑。我的问题有两个部分。
1)。基本上我的页面是访问MySQL音乐数据库,其中持有整个专辑由一个特定的艺术家。实际上有上千个项目。页面的功能是显示所有项目,并按数组(用户从预定义的列表中选择)中的特定值(如标题、发布日期、目录号、类别等)对它们进行排序。
据我所知,有两种方法可以实现显示&排序。一旦用户加载页面,PHP就可以立即输出光盘数组,将其回显到javascript对象中,然后在用户单击按钮时使用javascript进行排序。
或
在用户单击按钮之后,我可以使用AJAX发送用户希望对所有项进行排序的值,使用PHP **或数据库服务器排序(如ORDER by **)进行排序并以JSON形式输出数组。例如,按页名排序的数组看起来像这样:
var discography = [
{"id":"1",
"pagename":"item100001",
"category":"Albums",
"Label":"Atlantic",
"title":"Awesome Album",
"date":"July 2, 1998",
"country":"United States",
"catalog":"666 3333 44444",
"format":"CD"},
{"id":"12",
"pagename":"item100002",
"category":"Albums",
"Label":"Epic",
"title":"Fun Music",
"date":"January 22, 1992",
"country":"United Kingdom",
"catalog":"333 4444 5555",
"format":"Cassette"},
{"id":"3",
"pagename":"item100003",
"category":"Single",
"Label":"Atlantic",
"title":"Cool Single",
"date":"October 12, 1988",
"country":"United States",
"catalog":"444 5555 66666",
"format":"CD"}
];
然后我可以通过jquery将其输出为html并在页面上显示项目。
用户应该能够按照他们想要的值对条目进行排序和重新排序,而不仅仅是一次。
也许这个问题过于简化了前提,但是哪个是更聪明,更快,更有效的数组排序方法?服务器端排序(使用AJAX和输出为JSON)或Javascript?如果是服务器端,我相信我知道如何编写函数来正确排序数据。
但如果答案是Javascript,这就引出了我的第二个问题。
2)。我已经发现了很多很棒的javascript排序函数,但我一直在阅读javascript中"稳定"与"不稳定"排序的问题。这个问题还适用吗?我绝对需要在所有浏览器中保持一致。合并排序显然是解决这个难题的一个很好的答案,但由于我需要按特定字段(类别、日期等)排序,我需要一些关于如何使函数适应我的目的的指导。但如果我能在没有归并排序的情况下进行安全一致的排序,我就会这么做。
如果你读到这里,我很感激。欢迎任何帮助!
很难说什么是正确的方法。我更喜欢javascript解决方案,因为它在服务器上产生更少的流量。
使用array.sort(),您可以通过传递比较函数来对对象数组进行排序。https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
array.sort(function(a,b){return a.id - b.id});
如果函数返回1,假设a大于b, -1表示a小于b, 0表示它们相等。
如果有很多项目,Javascript可能会冻结你的屏幕。在这种情况下,有两个选择。重新处理服务器上的所有内容或使用WebWorker进行排序。
- PHP Javascript显示/隐藏按钮不工作
- php javascript代码从javascript调用php函数
- 如何在php/javascript中制作定时器和警报
- 带有数据输入的PHP/JavaScript web交互式图谱
- PHP - Javascript integration?
- 从复选框 ajax php javascript 中检索值
- 验证此图像验证码.Jquery PHP & javascript.
- Facebook PHP+JavaScript-在页面加载之前导航时出现异常
- PHP/JavaScript-检测当前打开页面的用户
- Php-Javascript-我如何知道哪些页面是彩色的,哪些是黑白的
- PHP+Javascript解析这两个响应
- 创建php/javascript倒计时计时器时出现问题
- 转换“;2012年7月15日星期日00:00:00 GMT+0700(东南亚标准时间)“;到php/javascript
- 与php/javascript函数调用混淆
- 从下拉框中获取选定的值,并使用来填充文本框php javascript
- 如何使用php+javascript更改HTML表的内容
- Php javascript不显示数据
- PHP/JavaScript MP3播放器,用于采样和销售歌曲
- Integration PHP + Javascript
- Adsense Onclick(php, javascript)