我正在开发一个小项目,其中包含网站列表(最多添加 12000 个名称), 我要求用户选择他们感兴趣的,我创建了一段代码,如 js fiddle:fiddle
$(document).ready(function () {
$("#title").keyup(function () {
if ($(this).val() != "") {
$("#doc_list_content tbody>tr").hide();
$("#doc_list_content td:contains-ci('" + $(this).val() + "')").parent("tr").show();
} else {
$("#doc_list_content tbody>tr").show();
}
});
});
$.extend($.expr[":"], {
"contains-ci": function (elem, i, match, array) {
return (elem.textContent || elem.innerText || $(elem).text() || "").toLowerCase().indexOf((match[3] || "").toLowerCase()) >= 0;
}
});
代码在处理少量数据时工作正常,但是当它处理 12000 行时,会导致浏览器无响应错误。
我尝试搜索并使用我的代码进行了很多操作。我想要与 js 或 php 相同类型的功能(在 js fiddle 上)(对此知之甚少)
我的问题是:
1> 使用这种排序方式是否可行? 2>有js/jquery解决方案吗? 3> 我知道一点 php 作为服务器端脚本,它可以帮助解决问题吗?
谢谢。
最佳答案
1 不要为此使用 jquery...它很慢。使用纯 JavaScript
2 创建一个包含表的数组
<小时/>var tbl=[
[a1,b1,c1,d1],
[a2,b2,c2,d2],
]
<小时/>
3 使用 while--
循环,因为它是最快的
var l=tbl.length
while(l--){
}
4 使用非常少的速记或按位检查,因为它们更快。
var l=tbl.length
while(l--){
!tbl[l][0]||(SOMETOGGLEFUNCTION(l))//l is the index of the real table
}
这是我知道的快速检查 12k 记录的唯一方法。
关于javascript - 过滤包含大数据的html表(超过12K行),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20270167/