gpt4 book ai didi

javascript - 主干 - 管理应用程序 View

转载 作者:搜寻专家 更新时间:2023-11-01 04:41:01 26 4
gpt4 key购买 nike

基本上我正在尝试做的是找到管理我所有 View 的最佳方法。所以我的所有 View 都会在必要时关闭和创建。因此,我在我的内部创建了一个单独的管理器Backbone.Router实例,它处理我的所有 View ,如下所示。

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();
});
});
...
}

如您所见,TopMenuTooltip View 仅创建一次,因为我认为不需要更改它们的内容。而且我还想在加载 View 时避免出现空白...

不过我不确定这是否是个好主意,因为一旦我从一条路线导航到另一条路线,所有其他 View 都会关闭并重新启动。

所以问题是,像这样设置这些 View 是一种好的做法吗?或者我应该在触发任何路由时始终重新创建 View 吗?

最佳答案

如果需要,可以缓存一些 View 。缓存的好处取决于您在 View 中显示的内容。在决定将 View 放入缓存时,您必须考虑几个方面:

  • 大缓存大小会影响性能,因此只选择经常用于缓存的缓存。
  • 缓存对于那些下载额外资源的 View 很重要。
  • 请注意,未使用的 View 会占用内存资源。

此外,对于缓存和未缓存的情况,您必须记住:

  • 重新渲染 View 也可能需要很长时间。那些难以呈现的 View 可以只是隐藏,而不是删除。
  • Zombie views .旧 View 应该安全关闭,事件解除绑定(bind)等。

关于javascript - 主干 - 管理应用程序 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30439056/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com