我一直在试用Backbone框架,看它是否是从现在开始和未来构建我们应用程序的好选择。其中一个要求是我们必须支持Internet Explorer 7+,另一个要求是每页至少显示200个项目。
为了测试这个框架,我构建了一个非常简单的列表,在所有主流浏览器中都可以无缝运行,除了Internet Explorer 7。似乎存在一些内存泄漏问题,因为每次我重置数据时,总渲染时间都会增加。
我设置了一些测试场景:
有事件声明:http://jsfiddle.net/mefraimsson/a2YMF/ 没有事件声明:http://jsfiddle.net/mefraimsson/u6byQ/ 我想到的一个想法是,当元素被添加到DOM中或从DOM中移除时,声明的事件永远不会被清除。当我运行“没有事件声明”的测试场景并频繁点击“重新加载数据”时,渲染时间相当稳定,但是运行“有事件声明”的测试场景时,渲染时间迅速增加,IE7使用的内存量也增加了。这就是我认为存在某种内存泄漏的原因。
以下是一些问题:
- 有没有人有使用Backbone渲染如此大量数据的经验? - 有没有人在使用Backbone时遇到过内存泄漏问题? - 当使用Backbone处理如此大量的数据时,您是否建议采用另一种方法?使用一个视图并在模板中迭代数据可能是一种可行的解决方案,但这样做感觉不会充分利用Backbone。 - 您认为这与事件声明有关还是与Backbone的实现有关?
谢谢!
为了测试这个框架,我构建了一个非常简单的列表,在所有主流浏览器中都可以无缝运行,除了Internet Explorer 7。似乎存在一些内存泄漏问题,因为每次我重置数据时,总渲染时间都会增加。
我设置了一些测试场景:
有事件声明:http://jsfiddle.net/mefraimsson/a2YMF/ 没有事件声明:http://jsfiddle.net/mefraimsson/u6byQ/ 我想到的一个想法是,当元素被添加到DOM中或从DOM中移除时,声明的事件永远不会被清除。当我运行“没有事件声明”的测试场景并频繁点击“重新加载数据”时,渲染时间相当稳定,但是运行“有事件声明”的测试场景时,渲染时间迅速增加,IE7使用的内存量也增加了。这就是我认为存在某种内存泄漏的原因。
以下是一些问题:
- 有没有人有使用Backbone渲染如此大量数据的经验? - 有没有人在使用Backbone时遇到过内存泄漏问题? - 当使用Backbone处理如此大量的数据时,您是否建议采用另一种方法?使用一个视图并在模板中迭代数据可能是一种可行的解决方案,但这样做感觉不会充分利用Backbone。 - 您认为这与事件声明有关还是与Backbone的实现有关?
谢谢!
"click td:first-child input[type=checkbox]": "check", "click td:first-child": "checkSelect", "click td:gt(0)": "select",
到"click": "select"
这似乎解决了IE7中的内存泄漏问题。 - marefr