javascript - jQuery 和附加大量 HTML

标签 javascript jquery ajax dhtml

我发现,如果使用得当,使用 jQuery 创建 HTML 客户端可以极大地提高性能。我使用返回 JSON 的 AJAX 来检索动态内容,然后构建相关的 HTML 并使用 jQuery 将其插入。第一次使用这种技术时,我发现 IE 的 JavaScript 中的字符串连接器执行得非常慢,因此构建一个包含超过 50 行左右的动态表时执行得非常糟糕。

var shtml = '<table>';
for (var i = 0; i < 100; i++) {
  shtml += '<tr><td>A bunch of content</td></tr>';
}
shtml += '</table>';
$('#myTable').append(shtml);

然后我发现了一种字符串连接技术,它改变了一切。不要使用 sting += 运算符,而是使用数组进行连接;

var shtml = ['<table>'];
for (var i = 0; i < 100; i++) { 
  shtml.push('<tr><td>A bunch of content</td></tr>');
}
shtml.push('</table>');
$('#myTable').append(shtml.join(''));

我发现性能显着提高。然而现在,在我开始看到浏览器本身难以同时动态插入如此多的内容之前,有大约 100 行的上限。有没有人有任何指示或技术可用于帮助我实现大型动态 HTML 集的下一次性能提升?

最佳答案

由于其 $.trim 函数,jQuery 和向 DOM 中插入大量 html 字符串时存在性能问题。

我有时发现普通的旧 dom 脚本比使用 jquery 快得多。尝试类似的东西

document.getElementById('id').innerHTML = myarray.join('')

关于javascript - jQuery 和附加大量 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/589120/

相关文章:

javascript - 如何在 Telerik 编辑器上使用 knockoutjs 绑定(bind)?

javascript - Adobe InDesign Javascript 错误!错误号 : 55 Error String: Object does not support the property or method 'documentPreferences'

javascript - 无限滚动和排序问题

javascript - 为什么我无法访问监听器函数内的变量 i ?

javascript - 将上传的文件作为参数传递给 javascript 方法

javascript - 如何将数据添加到基于 Backbone.js 的模板中的元素

javascript - 从 ajax jQuery 中的数据变量获取属性

javascript - 删除JS数组元素

jquery - 如何在 jQuery 中使元素可拖动?

javascript - 在 MVC5 中使用 AJAX 调用