KnockoutJS IE8性能问题和内存泄漏

时间:2012-11-05 07:06:23

标签: performance internet-explorer-8 knockout.js memory-leaks

我们使用KnockoutJS构建复杂的企业应用程序,并且在IE8中表现不佳。应用程序可能需要超过1GB的RAM并且永远不会释放内存。在调查期间,我们发现KnockoutJS保留对DOM节点的引用,并且永远不会删除它。这可以使用IESieve针对任何公开的KnockoutJS示例进行复制,只需在播放添加和删除DOM节点的示例时观察DOM利用率。

有没有人遇到过这个问题,并且对如何解决这个问题有任何想法?

2 个答案:

答案 0 :(得分:2)

我们在IE 8上遇到了与淘汰JS类似的问题。其中一个问题是拥有一个可观察的数组(有500多个元素)并构建一个UI(想象一个类似于表的列表或列出类似结构)以及所有这些。 对我们有用的唯一工作是更改视图模型,使其只包含很少可以放在屏幕上的项目。此外,我们必须为滚动事件添加处理程序,以便可观察的数组将不断刷新。而且(对此并不太自豪),我们不得不在显示的记录顶部添加一个空div,以显示滚动视图的错觉。

答案 1 :(得分:1)

可能与在DOM元素被删除时未发布的事件绑定有关。如果它是在淘汰赛中发生的事情,你将不得不修补并提交拉取请求。

我也曾经发生过很多关于backbonejs的事情。 JavascriptMVC对自己清理起来要好一些。