Jquery 向DOM添加大量元素

Jquery 向DOM添加大量元素,jquery,dom,Jquery,Dom,在我的web应用程序中,我必须检索大量数据,并用这些数据创建一个表(大约有800行,10列) 当我通过append()方法直接添加元素时,浏览器暂时没有响应。 为了访问海量数据,我使用web workers进行ajax调用。 由于我们无法从web工作人员处操纵DOM,我该怎么办?? 谢谢:) 编辑: 如果我想在上面使用一些函数,比如hide()(jQuery hide),innerHtml会起作用吗?注意:使用JavaScript访问DOM元素的速度很慢,因此为了获得更具响应性的页面 你可以这样

在我的web应用程序中,我必须检索大量数据,并用这些数据创建一个表(大约有800行,10列)
当我通过
append()
方法直接添加元素时,浏览器暂时没有响应。

为了访问海量数据,我使用web workers进行ajax调用。
由于我们无法从web工作人员处操纵DOM,我该怎么办??
谢谢:)

编辑
如果我想在上面使用一些函数,比如hide()(jQuery hide),innerHtml会起作用吗?

注意:使用JavaScript访问DOM元素的速度很慢,因此为了获得更具响应性的页面

你可以这样做

var buffer = [];
setInterval(function(){ $("#div").html(buffer.join(""); buffer = []; }, 1000);

buffer.push("html");
buffer.push("html");
看看这个


同时选中此链接

您可能希望使用支持延迟插入DOM元素(即按需)的表插件。提供了丰富的功能。它还将帮助您减少必须编写的代码的大小。

您可以使用一些JavaScript模板引擎,以避免手动逐步添加元素或构建innerHTML字符串

比如说

假设您的HTML中有一个模板:

<script type="text/html" id="user_rows_tpl">
    <% for(var y = 0, l = users.length; l > y; y++) { %>
        <tr id="user-row-<%=y%>">
            <td><%=users[y].name%></td>
            <td><%=users[y].surname%></td>
            <td><%=users[y].age%></td>       
        </tr>
    <% } %>
</script>​

Yy++){%>
​
然后在JavaScript中使用此模板来渲染对象:

<script type="text/javascript">
    var table = document.getElementById("userTable");
    table.innerHTML = tmpl("user_rows_tpl", {
        users: getUsers()
    });
</script>

var table=document.getElementById(“userTable”);
table.innerHTML=tmpl(“用户\u行\u tpl”{
用户:getUsers()
});
为了进行测试,我已经创建了1000个用户对象,并将它们呈现在表中。
谷歌Chrome的平均渲染时间约为20-25毫秒。不错,不是吗


如果数据是什么格式的?JSON?在这种情况下,我建议使用JavaScript模板引擎(例如把手)要创建整个HTML字符串,然后立即将该字符串附加到DOM中。检查此项,您可以尝试使用DocumentFragment准备节点,然后再附加一次。我认为在创建片段的过程中,浏览器不需要阻塞。此外,Ajax调用也不需要工作人员。生成和接收的处理要求使用Ajax是最小的。您希望
hide()
做些什么来解决您的问题?您能解释一下如何延迟插入Dom元素吗?(thanx:)