将jQuery重写为普通的旧JavaScript - 性能增益值得吗?

时间:2011-03-15 07:47:03

标签: javascript ajax performance jquery

由于jQuery是一个非常容易和平庸的库,我用它很快就开发了一个相当复杂的项目。整个界面基于jQuery,并定期清理内存以保持最佳性能。一切都在Firefox中运行良好,在Chrome中也是如此(其他浏览器对我来说并不重要,因为这不是商业或公共产品)。

我现在想知道的是 - 因为纯粹的平原旧平庸JavaScript实际上并不是一个复杂的语言,如果用简单的旧JavaScript重写整个内容会增强性能吗?如果是这样,那么有多大的提升你希望得到它吗?

如果答案证明足够积极,我会继续这样做,运行基准并报告准确的结果。

编辑:谢谢大家,有价值的见解。目的不是“重新发明轮子” - 它只是为了经验和个人改进。仅仅因为某些东西存在,并不意味着你不应该更详细地探索它,知道它是如何工作的或尝试重新创建它。这与我很少使用框架的原因相同,我宁愿使用我自己的代码并解决它并获得大量的经验,而不是开始使用其他人的代码,无论它是如何解决的。无论如何,我不会这样做,谢谢你省下了我的努力:)。

4 个答案:

答案 0 :(得分:7)

你说该网站从“非常好”到“异常” - 然后不打扰。它不值得付出努力,并且无法保证您的最终结果甚至比使用jQuery更优化,因为jQuery团队已经花费了数年时间来解决许多问题。

你还说普通的旧JS“真的不是一种复杂的语言” - 这不是主要问题。这不是JS难以掌握,以及jQuery弥补了什么,而是所有各种浏览器怪癖。

最后,即使你创建的网站在没有jQuery的情况下速度稍快,你也有一个难以维护的网站。

简而言之,执行此类练习时 次是有价值的,但当您的网站已经“非常好”地工作时,并且它不一定像你想。

答案 1 :(得分:4)

不要打扰。

当然你可以通过使用vanilla js获得一些性能,并且在一些edgecase中它是值得的,但总的来说,就像你使用jQuery一样,你从vanilla js中获得的收益是微不足道的,而且crossbrowser支持的损失不是。

为什么重新发明轮子?

如果您希望优化实现,请查找可以存储和重用DOM元素引用的地方,这样您就不必在每次需要时都遍历DOM。

答案 2 :(得分:4)

没有

对不起,除非你像jQuery开发人员那样熟练,否则这可能不是一个好主意

是的,可能会删除一些未被使用的代码,而可能甚至可能获得一些性能。但是,如果你不熟练,你可能最终缺少很多改进团队实施,甚至不会加快速度。

人们更喜欢jQuery而不是JavaScript的最大原因是开发速度可维护性跨浏览器互操作性。你可能会错过所有这些。

  • 更高级别的代码意味着更快的开发速度,但未来也会提供更快的支持。在高级代码中查找和修复错误更容易。
  • 当发现新问题或新浏览器到达时,jQuery代码将由团队更新。您必须在自己的代码中复制所有这些更改。
  • 如果您在自己的代码中遇到错误,您自己。如果您遇到jQuery脚本的困难,那么有一个庞大的用户群可以帮助您。
  • 不要让我开始使用现有的所有插件。如果明天您的客户希望您将小部件X添加到您的网站,并且您没有jQuery,该怎么办?你会重新发明这个插件吗?

答案 3 :(得分:3)