Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Internet Explorer 7/主干中可能存在内存泄漏?_Javascript_Internet Explorer 7_Backbone.js - Fatal编程技术网

Javascript Internet Explorer 7/主干中可能存在内存泄漏?

Javascript Internet Explorer 7/主干中可能存在内存泄漏?,javascript,internet-explorer-7,backbone.js,Javascript,Internet Explorer 7,Backbone.js,我一直在研究主干网,看看这个框架是否是从现在开始在我们的应用程序中构建的一个好选择。一个要求是我们必须支持InternetExplorer7+,另一个要求是每页至少显示200个项目 为了测试这个框架,我构建了一个非常简单的列表,它在除InternetExplorer7之外的所有主流浏览器中都能完美地工作。似乎存在一些内存泄漏,因为每次我重置数据时,总渲染时间都会增加 我已经设置了一些测试场景: 宣布事件后: 在未宣布事件的情况下: 我的一个想法是,当元素被删除并添加到DOM中时,声明的事件从未被

我一直在研究主干网,看看这个框架是否是从现在开始在我们的应用程序中构建的一个好选择。一个要求是我们必须支持InternetExplorer7+,另一个要求是每页至少显示200个项目

为了测试这个框架,我构建了一个非常简单的列表,它在除InternetExplorer7之外的所有主流浏览器中都能完美地工作。似乎存在一些内存泄漏,因为每次我重置数据时,总渲染时间都会增加

我已经设置了一些测试场景:

宣布事件后:

在未宣布事件的情况下:

我的一个想法是,当元素被删除并添加到DOM中时,声明的事件从未被清除。当我运行测试场景“未声明事件”时,频繁单击“重新加载数据”,渲染时间相当稳定,但运行“声明事件”时,渲染时间会迅速增加,IE7使用的内存量也会增加。这就是为什么我认为某个地方有内存泄漏

  • 有没有人有使用主干网渲染如此大量数据的经验
  • 是否有人在使用主干网时遇到过内存泄漏问题
  • 在使用主干网处理如此大量的数据时,您是否推荐另一种方法?使用一个视图代替大量的子视图,并在模板中迭代数据可能是一个可行的解决方案,但这样做会让您感觉无法充分利用主干网
  • 你的观点是什么,你认为这与事件的声明有关,还是主干的实现导致内存泄漏

提前感谢

内存泄漏通常是Javascript应用程序中的常见问题。我认为有一些框架试图为您处理这个问题,但主干网却没有。您正在使用的浏览器确实会对这些漏洞的注意方式及其造成的问题产生一些影响,但它们也存在于其他浏览器中。通常不是浏览器出了问题,而是Javascript中使用回调函数处理事件绑定的方式

我写了一篇文章对此进行了讨论,并提出了处理方法的建议,特别是观点:


请务必阅读评论。还有其他一些处理内存泄漏的好建议。

我基本上已经以类似的方式处理了视图删除,但是你提到的那篇文章很棒!非常感谢。现在我又挣扎了一段时间,最后从事件声明中删除了我的“高级”选择器,即从“单击td:first child input[type=checkbox]”:“check”,“单击td:first child:“checkSelect”,“单击td:gt(0)”:“select”,到“单击”:“select”这似乎解决了我在IE7中的内存泄漏问题。我想知道是否有一个标准的惯例,你的技术看起来很干净(我没有想到视图直接触发事件…)。谢谢