在我的网络应用程序中,首先下载所需的初始div。然后,我发送一个请求并使用ajax调用获得额外的绝对div(弹出div / warning msg div等)。现在我做的是下面的
document.body.innerHTML += secondarydivs;
这会导致性能受到影响,因为身体已经构建好了,现在我还要追加更多的div?我真正需要知道的是,当这个陈述被删除时,整个文档是重新绘制还是只有添加到字符串中的附加字符串被添加到DOM中?
谢谢!
答案 0 :(得分:3)
它会将DOM序列化为HTML,销毁所有现有节点(在此过程中丢失绑定事件处理程序),然后从HTML重新创建它们(以及新节点)。
使用appendChild
和朋友。
答案 1 :(得分:0)
这取决于你究竟用它做什么。如果它只是某种回调函数中的单个语句,那么它可以,但如果你在循环中设置它,你应该考虑将整个事物构造为字符串,而不是将它附加到innerHTML。