【发布时间】:2014-04-07 13:55:20
【问题描述】:
简而言之问题: 在 marionette 中使用大小为 ~500 的集合初始化复合视图会使应用程序停止大约一分钟。
我正在构建一个骨干木偶应用程序来维护项目列表。当使用 ~50 的集合大小进行测试时,一切都很好。当限制增加时,应用程序将无响应。
Store.ItemsListView = Marionette.CompositeView.extend({
tagName: "div",
template: "#items-list",
itemView: Store.ItemView,
itemViewContainer: "tbody",
emptyView: Store.NoDataView,
});
Store.ItemView = Marionette.ItemView.extend({
tagName: "tr",
template: "#store-item"
});
我知道这主要是由于 DOM 交互[应用页面中的 CPU 分析 javascript]。我尝试通过缓存已编译模板的源而不是 itemView 中的 DOM 引用来优化模板端。但没有明显改善。
我想到了使用 ItemView 本身来呈现集合,如提到的 here。因为它将最终的 html src 附加到 el.但是我在应用程序中的逻辑不允许这样做。
还有什么其他优雅的方法可以解决此类问题?分页显然是其中之一。但我有一种感觉,它可以以更好的方式处理。
【问题讨论】:
标签: javascript backbone.js marionette backbone-views