筛选包含大数据的html表(超过12K行)
Filter html table containing large data (More than 12K row)
我正在做一个包含网站列表的小项目(最多添加了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记录的唯一方法。
如果是我,我基本上会使用某种"分页"来将用户对数据的"查看"限制为较小的数据块,但可能仍然允许某种"搜索"功能,搜索/过滤所有数据(而不仅仅是可见的数据块)-我想是通过数组。
在过去的一个项目中,我发现为了提高速度/性能,当用户第一次向下滚动到当前数据块的"底部"时,最好向DOM中增量添加对象,然后我会添加一个新的块并删除以前的块。。。用户如何根据书中的位置翻页,而不是将一本书的所有单独页面都放在地板上——也许不是最好的类比,但希望你能遵循我的想法。祝你好运
相关文章:
- 停止jQuery UI滑块移动超过给定值
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- 如何在iOS应用程序中从Firebase中删除超过6小时的数据
- 单元格的工具提示或标题不显示超过2000个字符
- 如何显示文本长度,即使它超过ng最大长度
- 超过了async.detect最大调用堆栈大小
- 超过了最大调用堆栈大小,循环无限
- 如何判断请求/承诺是否需要超过5秒才能完成,angular js
- 超过了最大调用堆栈大小.递归标签
- jQuery分页下一页和上一页按钮在点击零或超过最后一页后失败
- 日志:未捕获的范围错误:超过了最大调用堆栈大小
- 计算阶乘超过了Javascript中的最大整数限制
- 在多个图元(超过2个)上重复此操作
- 如果带有<超过600px
- 当我在Javascript中给出的参数超过函数所需的参数时会发生什么
- JS/CSS:如何在向下滚动超过1200像素(高度)后更改z索引值
- 使用window.onload超过1次
- 未捕获的范围错误:setTimeout()超过了最大调用堆栈大小
- Html<输入模式>使用JavaScript处理-超过时失败
- 筛选包含大数据的html表(超过12K行)