Protogalaxy

Planet #0

csgo.exchange磨损查询插件开发日志#2

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对象。

这些努力在最后证明是值得的,代码重构后,插件的运行稳定度得到了质的提升,并且相较之前并没有牺牲多少运行速度,算得上是一次比较成功的版本迭代,以上。

发表评论