【发布时间】:2012-07-03 12:08:27
【问题描述】:
是的,我知道有很多 JS/jQuery 程序可以做到这一点。我目前正在使用 http://www.kryogenix.org/code/browser/sorttable/sorttable.js 。这很简单:只需一个 JS 文件,向您的表中添加一些类属性,然后就可以了。特别是,您实际上不需要了解 JS 即可使用它,并且您可以添加自定义排序键,而无需编写自己的 JS 来扩展它。由于这两个原因,我非常喜欢它。主要问题:我的表大约 9300 行长,排序需要 10-20 秒。所以我想知道,还有比这更快的脚本吗?这些是我找到的:
http://webfx.eae.net/dhtml/sortabletable/sortabletable.html(甚至不知道这是什么用途)
http://tablesorter.com/docs/(真的很好,但不容易扩展,需要了解 JS/jQuery)
http://flexigrid.info/(矫枉过正,我只需要一个表格排序器,而不是整个数据操作程序)
http://datatables.net/(矫枉过正,需要 Js/jQuery 扩展)
我确信还有 5000 个其他程序可以做我想做的事,但我没有时间弄清楚并测试它们是否都快。因此,我想知道是否有人在 StackOverflow 上可以向我指出他们知道哪个库很快,所以我只需要弄清楚如何使用一个程序。
(顺便说一句,我已经看到 Java 使用快速排序在毫秒内对数十万个数字进行排序;有人知道 JS.sort() 使用什么算法吗?)
【问题讨论】:
-
你用 jquery 标记了这个,但听起来你想避免这种依赖......它是哪种方式?
-
当然,java 可以快速地对 数字 进行排序,但是您正在对 DOM 进行排序。 DOM 操作很慢。您的问题从 HTML 表中的 9300 行开始。我会在服务器端对其进行排序。但如果你不想这样做,也许将数据存储在 JS 对象中,每次排序和重新渲染表格会更快。
-
@Robert:是的,我想避免它,但如果有必要,我会采取任何快速的方法并学习 JQuery。
-
@Christian:我确实提供了按一列排序的 HTML,但是从许多不同的列中排序的数据很有趣。我目前使用的 JS 读取 HTML,将条目存储在数组中,然后在数组上使用 JS 的内置 sort()。
标签: javascript jquery performance sorting html-table