Backbone Js 中的Zombie Views

来源:互联网 发布:竹庆本乐仁波切 知乎 编辑:程序博客网 时间:2024/06/05 15:40

在backbonejs开发的时候,可能会遇到这种情况:
假设一个页面有一个点击便触发alert的事件,当离开这个页面在回来,再点击这个事件的时候发现它触发了两次alert事件,在离开在回来再点击,它触发了3次alert事件,每次离开在回来都会多触发一次事件。
这是由于backbone中view的事件是由el来delegate的,有时候如果在离开这个页面时,如果el所代理的事件仍然有可能被调用到,那么js便不会把老的view回收,当下一次再来到当前页面时,由于又新建了一个view,所以点击alert事件时会多触发一次。
而这些老的未被回收的view就是Zombie Views。
这里的文章很好的解释了这个事件,并提供了一些解决方法。
比如:

// 解除所有事件$(this.el).unbind()// 解除个别事件$(this.el).undelegate('.className','click');// 从DOM中删除el$(this.el).remove();
0 0
原创粉丝点击