Backbone Js 中的Zombie Views

本文探讨了Backbone.js应用中常见的ZombieView问题,即页面返回时事件重复触发的现象。文章深入剖析了背后的原因,并提供了几种可行的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在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();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值