Javascript IE中的慢速页面卸载
我正在开发一个动态创建许多表行的站点。现在行的总数是187。创建行时一切都正常,但在IE中,当我离开页面时,有大量的延迟。我不知道这是否与我在页面中所做的大量DOM操作有什么关系?在构建动态内容的事件处理程序时,我没有创建任何函数闭包,因此我不认为这个问题与内存泄漏有关。非常感谢您的任何见解。您是手动创建元素节点,还是使用innerHTML?虽然我不确定,但我怀疑IE有自己的与HTML节点相关的内存泄漏 我制作了一个演示页面,通过jQuery将187行添加到一个表中。我相信jQuery.append()使用了一个聪明的小技巧将字符串转换为一组节点。它创建一个div并将该div的innerHTML设置为字符串,然后将该div的所有子节点克隆到指定的节点中,最后删除它创建的div 我在IE8中没有得到任何延迟,但它可能会在您使用的版本中延迟。如果你能让我知道,我会很高兴的!也许我可以再帮点忙 PeaceYUI(可能还有其他一些流行的javascript库)提供了,因此我强烈建议使用YUI或其他具有此功能的库,以最大限度地减少IE的问题。不过,听起来您可能遇到的是速度缓慢,而不是任何内存泄漏问题;您正在将事件处理程序附加到一大堆元素。众所周知,IE6的优化程度较低,所以可能要花很长时间才能将所有东西清理干净Javascript IE中的慢速页面卸载,javascript,internet-explorer,dhtml,Javascript,Internet Explorer,Dhtml,我正在开发一个动态创建许多表行的站点。现在行的总数是187。创建行时一切都正常,但在IE中,当我离开页面时,有大量的延迟。我不知道这是否与我在页面中所做的大量DOM操作有什么关系?在构建动态内容的事件处理程序时,我没有创建任何函数闭包,因此我不认为这个问题与内存泄漏有关。非常感谢您的任何见解。您是手动创建元素节点,还是使用innerHTML?虽然我不确定,但我怀疑IE有自己的与HTML节点相关的内存泄漏 我制作了一个演示页面,通过jQuery将187行添加到一个表中。我相信jQuery.appe
Apace还有一个优点:innerHTML会给您带来麻烦,让您陷入DOM怪圈。听起来JQuery已经解决了这个问题。试着利用它,用一个事件处理程序替换所有事件处理程序。我同意porneL。将一个事件处理程序附加到,让冒泡发挥其魔力。大多数框架都提供了一种方法来查找导致原始事件的元素(通常称为“目标”)
如果您使用document.createElement()生成大量元素,则可以将它们添加到DOM片段中。将片段附加到页面时,它会附加附加到该页面的所有子节点。此操作比一次附加一个节点要快。John Resig对DOM文档片段有很好的描述:关闭选项卡时是否也会出现延迟?您使用的是什么javascript库?我最初创建了一个锚定标记,然后将该锚定标记的单击句柄设置为函数闭包,但我现在重新意识到IEs垃圾收集器不知道循环引用,所以我改变了它,所以现在我创建了一个span,并将其innerHTML设置为锚定标记,我以前使用document.createElement创建的锚定标记,我喜欢你的示例,但你的页面是简单的文本,我在处理的页面上有许多图像等,所以我觉得你的示例与我的实现不可比。