如何优化javascript / jquery代码以加快其性能?

在我的一个Web项目中,我使用了大量的javascript / jQuery代码,这在浏览器(Windows 7 x64)上非常慢,尤其是在IE上。

我只在主页上同时使用3个Ajax请求。

在“搜索”页面上,我还使用了在滚动事件上触发的任何“搜索标记”(简单锚标记)点击事件等的ajax请求,这通常会使数据加载速度非常慢。

我使用jQuery插件,如Anythingslider,jquery coockies插件,Raty(评级插件),Tipsuy,jQuery coreUISelect,jScrollPane,鼠标滚轮等等。所有这些第三方插件我已经缩小并组合在jquery.plugins.js文件中,几乎是80KB。

我用jQuery选择了很多DOM元素。 例如,我使用以下代码:

$("#element") 

代替:

 document.getElementById('element'); 

我还有一个很大的CSS文件,超过5 000行,因为我将所有第三方jQuery插件的css文件合并到一个文件中,用于缓存和减少HTTP请求。

  1. 好吧,我想知道,我能做些什么来优化我的代码以获得更好的性能并加快网页加载?

  2. 我可以用什么样的工具来调试我的JS代码? 我忘了提到,当我使用firebug或Chrome本机开发人员工具刷新Google Chrome或Firefox中的页面时,该情况下的页面加载速度也非常慢。 有时Firefox甚至被粉碎了。

  3. 使用原始js选择DOM元素会给我一个更好,更快的解析文档的方法吗? 或者我应该离开,jQuery选择? 谈论约50个元素。

  4. 我应该分开并在那之后缩小外部插件,例如Anythingslider? 或者当我拥有’all in one’js文件时它会更好吗?

  5. 是否更好地将jQuery插件的css代码与main style.css分开? 因为即使hover在元素上并影响css文件中的:hover状态,也非常慢。

好吧,伙计们,我真的指望着你。

我一直在谷歌搜索我的问题的答案,真的希望在这里找到它。

谢谢。

1)缩小它

2)所有浏览器都带有内置的调试工具

3)通过在变量中存储引用来减少对dom的访问,不要两次查找相同的元素

4)分开并使用众所周知的cdn

5)单独使用它更容易管理

这里有更多jQuery技巧: jquery-performance-rules和这里: improve-your-jquery-25-excellent-tips 。

确保缓存所有静态资源而不进行磁盘查找

这个库非常酷

您可以在此处比较选择器性能: http : //jsperf.com/

只需设置您的HTML代码,包含jQuery lib并将您想要比较的每个选择器作为各种测试用例。

许多jquery-performance-rules仍然适用,

还可以看看jquery-proven-performance-tips-trick

由于有很多方法可以改进代码,特别是对于像你这样的大型网站,我认为发布外部链接会更有用,因为这些是非常精美的编写和简洁的教程和工具。 这里是其中的一些:

  • 雅虎的教程 ,我所知道的最完整的教程之一
  • W3Schools关于使用图像精灵的教程 ,当页面上有很多小图像时尤其有用
  • 有效的jQuery使用技巧
  • Firebug ,Firefox插件,用于调试javascript,html,css
  • HTMLvalidation器对于快速查找标记中的错误非常有用
  • 用于缩小HTML代码的HTML压缩器 (为此目的,Web上有很多工具,只需找到最好的工具)
  • CSS压缩器 ,与HTML相同

我还建议使用IDE来构建名为JetBrains的PHPStorm的 Web应用程序/网站。 它是商业软件,但绝对值得每一分钱,因为它提供了在打字时改进的提示和技巧。

原始性能可能不是您的问题。 如果你发现页面加载性能不佳,请参阅这篇文章,我特意写了关于在页面初始化时最小化javascript执行的问题。

http://blog.lavoie.sl/2013/12/optimizing-page-loads-by-reducing-javascript.html