HTML 表过滤和重排
HTML Table Filtering and Reflow
我有一个非常大的html表,有900+行。 我通过循环浏览行并根据过滤器的值隐藏/显示行来启用过滤。
问题来了。 当我隐藏/显示 500+ 行时,当浏览器忙于重排时,页面变得完全无响应。 我尝试在过滤、克隆表然后替换表等之前隐藏表。但是无响应仍然是一个问题,因为它阻止我在浏览器重绘时拥有"动画"加载图像。
分页不是一种选择,延迟滚动也不是一种选择。
这是循环:
var rows = null;
$("#mavis-filters").find("input:checkbox").on("click", function() {
var id, i;
if (!rows) {
rows = document.getElementById("taskOverview").querySelectorAll("tr");
}
id = this.id;
i = rows.length;
while (i--) {
var row = rows[i];
if (row.dataset.project === id) {
row.classList.toggle("row-hidden");
}
}
});
使用渐进式渲染来解决此问题。以下是在每个浏览器中应用它的方法:
- 使用表格布局:固定启用渐进式渲染
- 在 Firefox/Camino 中,在 about:config 中设置
html5.parser.enable=false
- 优化表标记
- 使用 DOM 方法而不是 jQuery
相关文章:
- 使用PHP通过HTML表单选项选择器过滤MYSQL结果
- 在AngularJS中过滤-html标签中的文本
- 如何过滤页面源以获得纯HTML-无内容(仅标记)
- 使用AngularJS从JSON对象中过滤HTML
- 当我附加XSS过滤后的html时,它会打印原始html
- Javascript 使用表格 td 的宽度过滤 HTML 内容
- 如何根据 css 属性值过滤 HTML 元素
- 在页面问题上过滤 HTML 元素
- 使用 jQuery 轻松过滤 HTML 部门
- 使用 JavaScript 动态过滤 HTML 表的行
- 需要帮助用javascript过滤HTML表
- 使用angular.forEach函数过滤HTML表以替换许多if/else语句
- 使用jquery过滤HTML表数据
- 使用Javascript过滤HTML字符串,如果字符串包含word
- Javascript使用单选按钮过滤html元素的可见性
- 使用JavaScript过滤HTML表-无插件
- PHP / Jquery中的Json响应过滤HTML
- Jquery/javascript,从ajax响应中过滤html对象
- 下拉框过滤HTML中的元素
- 如何自动过滤 HTML 选择列表