如果在HTML中页面太大,对页面操作的影响
Effect on page operation if page is too big in HTML
在我的一个要求中,我从我的WebServer获得日志文件(可以是大约10MB),并显示table with its content as log entries
(使用javascript)。我面临的问题是它是creates too many table rows
,由于哪一页变成了less responsive
。
我想知道如果太多的对象在HTML使页面变慢?
还有,应该如何解决这个问题?
你的javascript是什么样子的?根据构建DOM的方式,它可能成为瓶颈。例如:
var html = [];
for(var i=0;i<rows.length;i++) {
html.push('<tr><td>' + rows[i] + '</td></tr>');
}
$('#tbody').append(html.join(''));
将比
快得多for(var i=0;i<rows.length;i++) {
$('#tbody').append('<tr><td>' + rows[i] + '</td></tr>');
}
这是假设您正在使用jquery。另外,正如其他人提到的,使用分页可以限制屏幕上的元素数量。
如果你的HTML是复杂的,你可能想看看模板引擎,一些帮助选择一个是适合你的。我使用dust是因为linkedin已经完成了所有艰难的评估工作。
因此,鉴于这是一个AJAX调用,我看到了几个选项(按最佳性能排序):
- 向服务调用添加分页,并允许AJAX查询只下拉特定批次的条目。然后实现下一页/上一页按钮,这些按钮将连续调用以检索更多/更少的信息。例如,
/ajax/log
将是您的初始调用,然后单击下一步按钮将调用/ajax/log?page=2
;上一键重新调用/ajax/log?page=1
. - 在单个调用中拉下所有数据,但只选择性地将其输出到DOM。KnockoutJS使得以分页格式输出信息非常简单(在stackoverflow上有一些例子)。
- 转储它,并添加一个脚本,如jQuery数据表。这将隐藏行,并基于推入表本身的内容实现分页。除了通过ajax加载表,然后调用
$('mytable').datatable()
之外,它只需要很少的额外编程。
相关文章:
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- 如何确定javascript已经完成了某些操作.ios上的
- 防止Alt+Shift默认操作或检测多种操作系统语言的Javascript
- 从JavaScript访问struts操作中的属性
- 鼠标悬停事件影响列表中所有行中的按钮,而不仅仅是特定按钮
- 在同一个服务工作者中处理service-worker.js有任何影响吗
- fluxxor向一个flux实例添加一组以上的操作
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- 操作放置在画布上的元素之间的连接
- 使用“+="操作人员
- Rails操作只调用一次,但我在ajax中每秒钟都调用一次
- Jquery未定义函数正在停止其他操作
- 如何操作iframe之外的元素
- jQuery工具验证器自定义效果-添加&消除影响
- 如何在不影响AngularJS中原始变量的情况下操作视图值
- 如何在不影响其他项目的情况下操作一组列表组项目
- 表单操作只影响表单本身
- 阻止超链接的默认操作会影响浏览器历史记录吗?
- 如果在HTML中页面太大,对页面操作的影响