悲催bug大佬第二集点击事件的袭击

万里无云的一天,打开电脑,泡上一杯红茶,在秋天的抽风的天气中,舒缓一下心情。

突然收到前方,测试同志通知,验证码点击没有反应。

虎躯一震,开始搜寻记忆(找代码记录),查看是否是写丢了东西。
仔细看了看,貌似上午加了多次点击的过滤 throttle 节流方法
莫非是它除了啥问题吗?

然而此时 Androidstudio 居然罢工了,它连不上WiFi, 我无法针对真机获取请求,最后在我强硬的措施下(重启电脑),它选择了屈服,我连上了缥缈的WiFi,喜不自胜。(后来乱七八糟的查阅,我感觉应该是 服务接口被占用了,导致不能启用,重启后,所有的服务都被断了,所以能快速的链接WiFi,但是我这个前端bug小搬砖工,还没有研究到,暂且不表了)

连上WiFi,兴致冲冲的准备运行调试,突然发现 logcata 没有任何请求运行,奇怪啊,这个软件为啥这么对我😿,请求大佬支援。需要将配置的一个文件的 debug = true,syncDebug = true,吭哧吭哧的改,改完在重新运行,确实好了。(😊)

继续寻找出现的问题,哈哈哈,真棒,还是没有请求,果断放弃了真机,放弃了studio,这座高深的大佛,转向了 hBuilderX ,用ipad模拟调试。

终于终于终于,让我找到了,运行出来报错了,说 手机号值没有获取到,那咋个可能呢,一直都是好的呢。去源码看。都有定义,那为啥取不到呢,去看调用,明白了,因为点击事件时,先用了 throttle 公共方法过滤,在走点击后的逻辑,导致了 this 指向发生了改变,然后找到开篇定义的 page 变量,在 onload 中将this 赋值给了定义的page,然后果断的换掉了页面中的this 调用,改为了page,拿起ipad 重新运行测试。

可以了!!!!!

也是不容易啊,马虎大意导致出现很多基本的错误。所以代码是一个积累的过程,有了经验,才能得到千锤百炼的优质代码。

so please remeber,页面中点击事件有请求接口操作,或者需要较长时间的运行的时候,记得先给当前事件进行重复点击过滤操作,在使用重复点击过滤方法后,会改变this 指向,所以需要主要指向问题哦!

点击事件的问题,可能有多重原因得到不同的结果,小小总结,不成敬意!

成因:

  1. 网络原因
  2. 手速过快
  3. 点击事件触发错误
  4. 事件穿透
  5. 方法嵌套使用 this 指向改变 接口报错

解决:

  1. 首先解决穿透问题,一般的框架都会有防止事件穿透的参数,可以参考api进行设置。
  2. 书写一个公共方法,用在需要请求数据,或者事件加载的方法进行一层过滤
  3. 参照 throttle 节流防抖函数
  4. 对于框架来说,页面加载时,或者接口调用时,先将this赋值给一个参数,放置this 指向改变

未完 时不时补充!

throttle 参考:http://muyiy.cn/blog/7/7.1.html#%E5%BC%95%E8%A8%80

写在最后,点醒自己!!!

论规范的代码书写,是多么重要的一件事情。

如果你是一个自我研究的人呢,对项目、插件、框架等运用的完美程度,很大程度在于自己 bug 的产出量,因为你遇到了bug,解决了bug,也就为下一次避免 bug 打下了夯实的基础,但是回归本论,最基础的还是要认真的对待代码,仔细的阅读api,理解原理机制,规范的运用,这样不光可以减少 bug , 还可以增加开发效率。
开发中应该如何避免bug呢,这个是无法预料的,只能在自己的能力范围之内,规范的使用api。
没有一滴汗水是无效的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值