繁体   English   中英

我的jQuery明显比本地JS慢

[英]My jQuery is noticeably slower than native JS

我已经用jquery重写了菜单处理,突然之间所有菜单似乎都需要花费更长的时间才能打开。 使用本机JS时,按下触发器后立即播放开始幻灯片动画,而使用jQ则需要一整秒钟才能打开菜单。 此后,我将所有代码都移回了本机,但这是我在开始时使用的基本功能。

jQuery版本:

$("#apis_trigger").click(function() {

    $("#apis_menu").switchClass(dstart, dend);
    $("#apis_trigger .down_arrow").css("transform", "scaleY(-1)");

});

本机JavaScript:

document.getElementById("apis_trigger").onclick = function() {

    document.getElementById("apis_menu").classList.remove(dstart);
    document.getElementById("apis_menu").classList.add(dend);

    document.querySelector("#apis_trigger .down_arrow").style.transform="scaleY(-1)";
}

我只是查询选择器和切换类,所以我没想到这种性能会受到影响。

阅读此线程后,我知道性能下降

这是当我们使用简单的$('selector')时jquery经历的代码量

http://james.padolsey.com/jquery/#v=1.10.2&fn=init

但是通过阅读其他线程,我认为这只会在较大的脚本中才显而易见。

仅供参考,我正在i7 2.3ghz w / 9gb ram的Chrome中运行此程序。

switchClass默认情况下对所有属性进行动画处理,持续400 ms。 您应该使用$(“#apis_menu”)。removeClass(dstart).addClass(dend)进行“公平”比较。

– Yury Tarabanko 5分钟前

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM