javascript - 过滤包含大数据的html表(超过12K行)

标签 javascript php jquery html-table

我正在开发一个小项目,其中包含网站列表(最多添加 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/

相关文章:

php - 检查 mysql 行是否存在不工作

php - 如果不存在则插入并创建表...在重复键更新时

jquery - 使用 jquery "html"动态加载表时,网格标题加载在 IE8 中的表底部

javascript - jquery 中未显示的 json 数据

javascript - document.getElementsByTagName 不起作用

javascript - 如何处理注销#appcelerator

javascript - jQuery通过Checkbox更新mysql

php - Laravel Eloquent 关系无 key

jquery - 如何让jquery文件上传回发除[httpPost]index.cshtml()之外的指定操作?

javascript - 如何使用 jquery 每 x 秒显示 n 个 json 项目?