【发布时间】:2015-12-09 08:55:46
【问题描述】:
我正在进行一个新项目,我们的工作是重写一个在移动设备上存在性能问题的电子商务网站。
我们正在重写基于更面向对象/模块化架构的 javascript,我认为这很棒!但是我的团队负责人说我们应该删除所有 jQuery 调用并用像 domElem.querySelectorAll(query) 这样的 javascript 替换,这样更好表现。我知道 jQuery 会在后台进行某种缓存,这会造成内存问题。
我对此有点怀疑,首先因为它看起来像是一个“过早优化”的案例,也就是说,我们应该先找到瓶颈,然后再重新编写任何东西。其次,我在互联网上没有发现任何说 jQuery 存在严重性能问题的信息。
当前网站确实有很多重叠的 dom 分支查询,我认为这会造成很多冗余。那就是发生了太多的查询,在我们新的架构方法中,我们将对象/模块限制为更少的 dom 查询和更有针对性的 dom 查询,这很棒。这确实需要重写。
但是无论我们是使用 domElem.querySelector(query) 还是 $(domElem).find(query),我都看不出有太多一个区别。我的想法对吗?
【问题讨论】:
-
这取决于您想要多少功能。 programmers.stackexchange.com/questions/166273/…
-
jQuery 比
querySelector()慢得多:jsperf.com/queryselector-vs-jquery-2 和 jsperf.com/jquery-vs-document-queryselector 在我的浏览器中慢了 85 到 95%,这是巨大的。 -
所以慢了两倍。但那是 2 毫秒而不是 1 毫秒吗?我正在寻找视角
-
您应该比较使用 jQuery 开发网站/应用程序的“性能”(处理跨浏览器一致性和包装有用的方法)和不使用它并且不必重写轮子的相同。大多数时候,比较 CPU 性能对于 javascript 来说是没有意义的。
I understand jQuery does some kind of caching in the background which can create memory issues哪个??? -
好吧,也许我错了
标签: javascript jquery performance design-patterns