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

时间:2012-11-02 08:52:54

标签: javascript jquery performance

在我的一个网络项目中,我使用了大量的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. 从主style.css中分离jQuery插件的css代码会更好吗?因为即使悬停在元素上并影响css文件中的:悬停状态,也非常慢。

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

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

    感谢。

4 个答案:

答案 0 :(得分:6)

1)缩小它

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

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

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

5)将cos分开更容易管理

更多jQuery提示:jquery-performance-rules和此处:improve-your-jquery-25-excellent-tips

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

This library很酷

答案 1 :(得分:2)

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

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

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

另请查看jquery-proven-performance-tips-tricks

答案 2 :(得分:2)

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

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

答案 3 :(得分:0)

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

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