backbone出现重复绑定,el上绑定数据没有及时解除

昨天项目中出现了一个奇怪的现象,当从一个小页面(router路由跳转)到其他小页面,然后再跳转回来的时候,该页面上的事件被重复绑定了两次,例如绑定在button上面的submit事件触发两次,导致数据提交了两次,而跳转的次数越多,重复的次数也就越多,当遇到这个问题的时候,就想到了事件的重复绑定,但是因为每次该页面的VIEW都是

重新渲染的,HTML也是动态插入的,故而纠结了一会,最后老大出马,找到了根源所在,就是el,每次的操作虽然模板是手动插入的,但是el都是没有变动,而backbone的所有

事件都是通过事件监听绑定在el上的,events调用的是jq的on方法,ON则是通过事件委托实现,可以绑定重复的事件,当el中子节点重新渲染时,实际上绑定在el中的事件还存在

虽然backbone中有默认方法undelegate,每次intilizei的时候手动清除了el的事件,但是他清除的只是当前的cid事件,而不能清除上一个cid事件(看源码)....

最后解决的办法很简单,手动$el.off(),每次初始化的时候,手动清除el上的所有事件即可。因为新的事件绑定是在initilize之后执行的,故而不用担心被清空.

新人新帖,有错请指正

backbone出现重复绑定,el上绑定数据没有及时解除

时间: 2024-11-09 09:28:04

backbone出现重复绑定,el上绑定数据没有及时解除的相关文章

VS+SqlServe 在引用了webservice后刷新数据时提示:已超过传入消息(65536)的最大消息大小配额若要增加配额请使用相应绑定元素上 MaxReceivedMessageSize 属性

使用了VS建立了webservice 后,在VS项目中添加了引用,可是在今天从sqlserve中取数据时, 突然提示:已超过传入消息(65536)的最大消息大小配额若要增加配额请使用相应绑定元素上 MaxReceivedMessageSize 属性 这让我那叫一个郁闷啊,之前都是一直好用,为什么突然就不好用了????????? 后来根据提示分析和上网查资料分析,猜测可能是数据量问题,再去找如何绑定元素上 MaxReceivedMessageSize属性,经过了几个小时的处理终于找到解决方案了:

springmvc-高级参数绑定-映射-异常-json数据交互-拦截器

1.1. 高级参数绑定 1.1.1. 复制工程 把昨天的springmvc-web工程复制一份,作为今天开发的工程 复制工程,如下图: 粘贴并修改工程名为web2,如下图: 工程右键点击,如下图: 修改工程名,如下图: 1.1.2. 绑定数组 需求 在商品列表页面选中多个商品,然后删除. 需求分析 功能要求商品列表页面中的每个商品前有一个checkbok,选中多个商品后点击删除按钮把商品id传递给Controller,根据商品id删除商品信息. 我们演示可以获取id的数组即可 Jsp修改 修改i

vs 2015 rdlc报表绑定datagridview中的数据

这几天一直想要实现rdlc报表绑定datagridview中的数据,始终在虚拟表向rdlc报表绑定这一步上出错.今天从下午4点到七点四十一直在尝试.最终还是实现了,最然并不知所以然,这个问题还是以后在考虑吧,目前的项目要紧. 首先是  datagridview中的数据传到虚拟表中. for (int i = 0; i < dgvscan.Columns.Count - 1; i++) { dtout.Columns.Add(dgvscan.Columns[i].Name); } //添加行 fo

sharepoint 2013 webservice 已超过传入消息(65536)的最大消息大小配额。若要增加配额,请使用相应绑定元素上的 MaxReceivedMessageSize 属性

在调用webservice返回数据的时候,?出现以下错误: 已超过传入消息(65536)的最大消息大小配额.若要增加配额,请使用相应绑定元素上的 MaxReceivedMessageSize 属性 这个就需要在调用webservice的解决方案中,在web.config或者app.config中配置一下: <?xml version="1.0" encoding="utf-8" ?> <configuration> <startup&g

WCF 已超过传入消息(65536)的最大消息大小配额。若要增加配额,请使用相应绑定元素上的 MaxReceivedMessageSize 属性。

在做图片查询的时候,报错 已超过传入消息(65536)的最大消息大小配额.若要增加配额,请使用相应绑定元素上的 MaxReceivedMessageSize 属性. 因为图片保存在数据库里,所以数据量比较大. WCF默认传输值是65536字节(64KB),这也太小了,我直接改成50M(52428800字节),网上说最大是支持2147483647字节,但是maxReceivedMessageSize属性是Long类型的,应该比这个还要大. 注意,只有TCP.IPC和基本的HTTP绑定才支持流操作,

WebService 之 已超过传入消息(65536)的最大消息大小配额。若要增加配额,请使用相应绑定元素上的 MaxReceivedMessageSize 属性。

在使用 WCF 中,遇到如下问题: 已超过传入消息(65536)的最大消息大小配额.若要增加配额,请使用相应绑定元素上的 MaxReceivedMessageSize 属性. 问题说明: 客户端调用 WCF 返回数据量大时,局域网没有问题(客户现场发现一台机器有问题,具体原因不详.),发布到外网有问题. VS2012 Debug 捕获到的异常信息为:在 HTTP 通道上传输数据时发生错误(无法从传输连接中读取数据: 连接已关闭). WCFStorm 工具返回的异常为:已超过传入消息(65536)

jQuery源码分析--event事件绑定(上)

上文提到,jquery的事件绑定有bind(),delegate()和one()以及live()方式.我用的jQuery2.1.3版本,live()已经被废弃了. bind(),delegate()和one()的内部源码. //7491行 bind: function( types, data, fn ) { return this.on( types, null, data, fn ); }, //7498行 delegate: function( selector, types, data,

已超过传入消息(65536)的最大消息大小配额。若要增加配额,请使用相应绑定元素上的 MaxReceivedMessageSize 属性。

错误:已超过传入消息(65536)的最大消息大小配额.若要增加配额,请使用相应绑定元素上的 MaxReceivedMessageSize 属性. 或者 错误:反序列化操作“GetAllUserData”的响应消息的正文时出现错误.读取 XML 数据时,超出最大字符串内容长度配额 (8192).通过更改在创建 XML 读取器时所使用的 XmlDictionaryReaderQuotas 对象的 MaxStringContentLength 属性,可增加此配额. 行 1,位置 8834. 解决方案

WPF TreeView IsExpanded 绑定不上的问题

最近项目上需要通过MVVM来控制TreeView,其中需要需要控制通过搜索来定位某个节点,正常逻辑下,首先通过需要在树上面找到该节点,然后选中该节点,并将该节点的父节点展开,这个时候需要通过MVVM来控制,需要绑定起来,只是一直没有binding上,代码如下: MVVM示例代码: 1 using System; 2 using System.Collections.Generic; 3 using System.Collections.ObjectModel; 4 using System.Li