Github:https://github.com/SolitudeRA/CSGO.exchange-Autoretrieve
经过了一次大的迭代更新,插件的版本号来到了2.0(上版本日志在这里),代码主体全部重构,并且将语言规范升级到了ECMAScripts 6,之前的点击动作触发全部是通过主动监听来完成的,比如这样:
var IntervalHandler1 = window.setInterval(function () { if ($(".msgNotif") !== null) { $(".msgNotif").detach(); $(".widw-close").click(); setTimeout(function () { $widw.css("display", "none"); $bgwidw.css("display", "none"); currentNode.append("<div class='show-rawext'>success</div>"); window.clearInterval(IntervalHandler1); controller(node, reloadFlag); }, 100); } }, 300);
在实际运行过程中,主动监听器浪费了大量系统资源,并且会造成不可预知的运行错误,并且隐藏无关项的功能使用了大量DOM操作,监听器的初始化代码也放在了循环主体内,jq对象也没有经过缓存,这些缺点造成了脚本运行的卡顿。在2.0版本更新中,通过代码重构,将以上问题都解决了,监听器全面更换成了被动的,也就是之前提到的Mutationoberver对象。
这些努力在最后证明是值得的,代码重构后,插件的运行稳定度得到了质的提升,并且相较之前并没有牺牲多少运行速度,算得上是一次比较成功的版本迭代,以上。