基本上我正在尝试做的是找到管理我所有视图的最佳方式。所以我的所有视图都在必要时关闭并创建。因此,我在我的内部创建了一个单独的管理器Backbone.Router
实例,负责处理我的所有观点,如下所示。
router.js
AppRouter.prototype.initialize = function () {
.......
var eMgr = _.extend({}, Backbone.Events);
var vMgr = new ViewManager();
vMgr.add(new vTopMenu({eMgr: eMgr}));
vMgr.add(new vTooltip({eMgr: eMgr}));
app_router.on('route:MainMenu', function () {
vMgr.close_all_views(function(){
vMgr.add(new vmainMenu({eMgr: eMgr}));
vMgr.render_all_views();
});
});
app_router.on('route:showMap', function () {
vMgr.close_all_views(function(){
vMgr.add(new vMapMenu());
vMgr.render_all_views();
});
});
...
}
正如您所看到的, TopMenu 和工具提示视图仅创建一次,因为我不希望有任何更改其内容的需要。而且我还想在加载视图时避免使用空格......
我不确定这是不是一个好主意,因为一旦我从一条路线导航到另一条路线,所有其他视图都被关闭并重新启动。
所以问题是,将这些观点设置为这样是一种好习惯吗?或者我应该在触发任何路线时始终重新创建视图吗?
答案 0 :(得分:0)
如果需要,可以缓存某些视图。缓存优势取决于您在视图中显示的内容。在决定将视图放入缓存时,您必须考虑几个方面:
此外,对于缓存和未缓存的情况,您必须记住: