代码之家  ›  专栏  ›  技术社区  ›  ForYourOwnGood

IE中的慢速页面卸载

  •  3
  • ForYourOwnGood  · 技术社区  · 17 年前

    我正在开发一个动态创建许多表行的站点。现在的行总数是187行。创建行时,一切工作正常,但在IE中,当我离开页面时,会有很大的延迟。我不知道这是否与我在页面中进行的繁重的DOM操作有关?在构建动态内容的事件处理程序时,我不会创建任何函数闭包,因此我不认为这个问题与内存泄漏有关。任何洞察都是值得赞赏的。

    4 回复  |  直到 17 年前
        1
  •  1
  •   apeace    17 年前

    您是手工创建元素节点,还是使用innerHTML?虽然我不确定,但我怀疑IE有自己的与HTML节点相关的内存泄漏。

    http://www.andrewpeace.com/stackoverflow/rows/rows.html

    和平

        2
  •  0
  •   user121579    17 年前

    YUI(可能还有其他一些流行的javascript库)提供了 automatic listener cleanup ,因此,我强烈建议使用YUI或具有此功能的另一个库,以尽量减少IE的问题。但是,听起来您可能遇到了普通的缓慢问题,而不是任何类型的内存泄漏问题;您正在将事件处理程序附加到一大堆元素。众所周知,IE6的优化程度不高,所以它可能要花上很长时间来清理所有的东西。

    apeace还有一个很好的观点:innerHTML会给你带来麻烦,让你陷入DOM的怪圈。听起来JQuery已经解决了这个问题。

        3
  •  0
  •   Kornel    17 年前

    试着利用 event bubbling

        4
  •  0
  •   gscottolson    11 年前

    如果使用文档.createElement,可以将它们添加到DOM片段中。将片段附加到页面时,它将附加附加到该页面的所有子节点。此操作比一次附加每个节点快。John Resig对DOM文档片段有很好的描述: http://ejohn.org/blog/dom-documentfragments/