gpt4 book ai didi

javascript - 在大型 Backbone js 应用程序中切换 View 时禁用事件监听器

转载 作者:行者123 更新时间:2023-11-28 09:39:44 25 4
gpt4 key购买 nike

我正在开发一个大型单页 Backbone JS 应用程序。我有几个由大 div 组成的 View ,当用户导航到特定的哈希位置时,主干路由器加载 View ,这基本上会触发特定主干 View 上的事件“show”,并卸载所有其他 View 和 $( this.el) 变得可见。

基本上最后我会得到几个 View ,当它们之间切换时会执行相同的操作,隐藏事件 View div,并显示与您单击的链接相对应的下一个 View (链接都是主题标签位置) .

禁用或取消委派非事件/隐藏 View 的事件有什么好处吗?现在所有 View 都已经实例化并准备好触发“显示”或“隐藏”事件,但我认为在隐藏的 View 上禁用所有与 DOM 相关的事件可能会更有效地提高内存/性能,并取消绑定(bind)隐藏 View 正在使用的模型或集合。

我正在考虑有一个“清理”触发器,当用户从事件 View 切换到新 View 时触发,禁用所有事件,然后隐藏 div,但有必要吗,或者是否有更好的方法这样做可以减少内存使用并提高性能吗?

最佳答案

我为此使用的解决方案是在 DOM 中仅保留一种 View 。即:

假设我们有 3 次观看:

var MainView = Backbone.View.extend({
el: '#main-view',

events: {
"click .openView1": "openView1",
"click .openView2": "openView2"
},

render: function() {
//...
},

openView1: {
this.activeView = new View1();
},

openView2: {
this.activeView = new View2();
}
});

var View1 = Backbone.View.extend({
});

var View2 = Backbone.View.extend({
});

将事件 View 保存在一个变量中时,不应该出现内存问题。

关于javascript - 在大型 Backbone js 应用程序中切换 View 时禁用事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12545557/

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