30个提高Web程序执行效率的好经验分享_相关技巧

  1. 尽量避免使用DOM。当需要反复使用DOM时,先把对DOM的引用存到JavaScript本地变量里再使用。使用设置innerHTML的方法来替换document.createElement/appendChild()方 法。
  2. eval()有问题,new Fuction()构造函数也是,尽量避免使用它们。
  3. 拒绝使用with语句。 它会导致当你引用这个变量时去额外的搜索这样的一个命名空间,with里的代码在编译时期是完全未知的。
  4. 使用for()循环替代for…in循 环。因为for…in循环在开始循环之前需要Script引擎创建一个含有所有可循环属性的 List,需要多检查一次。
  5. try-catch语句放在循环外面,不要放在循环里面,因为异常是很少发生的,放在外面避免每次都要执行 它们。
  6. 甚至圣经里都提到过这个 – 不要全局的。全局变量的生命周期贯穿整个脚本的生命周期,而本地变量的存在范围随着本地命名空间的销毁而消失。当在函数或其它地方引用一个全局变量时,脚 本引擎需要搜索整个全局命名空间。
  7. fullName += 'John'; fullName += 'Holdings';执行速度快于fullName += 'John' + 'Holdings';
  8. 如果你需要把多个字符串连接起来,最好是把他们做成一个数组,然后调用join()方法实现这个操作。这种方式在生成HTML片段时尤其 有效。
  9. 对于简单的任务,最好使用基本操作方式来实现,而不是使用函数调用实现。例如val1 < val2 ? val1 : val2;执行速度快于Math.min(val1, val2);,类似的,myArr.push(newEle);慢于myArr[myArr.length] = newEle;
  10. 将函数的引用作为参数传递到setTimeout()和setInterval()里优于将函数名作为字符串参数传递(硬编码)。例如,setTimeout(“someFunc()”, 1000)执行效率慢于setTimeout(someFunc, 1000)
  11. 当进行遍历操作时避免使用DOM操作。通过像getElementsByTagName()这 种方法得到的DOM元素队列都是动态的;有可能在你还没有对它遍历完成时,它已经被改变。这有可能导致死循环。
  12. 当你对对象的成员(属性或方法)进行反复操作时,先存储对它们的引用。例如var getTags = document.getElementsByTagName; getTags(‘div');
  13. 在任何的代码段里,在局部变量范围外存放一个这个局部变量的引用。例如
    function foo(arr) {
    var a = ‘something';

    //变量 ‘a' 对于下面的一段就是范围外变量,这个变量的引用在很多情况下会有用处。
    for (var i = 0, j = a, loopLen = arr.length; i < loopLen; i++) {
    //do something
    }
    }

  14. for(var i=0; i < someArray.length; i++) {…}的执行效率慢于for (var i=0, loopLen=someArray.length; i<loopLen; i++) {…}。
  15. 在HTTP头信息里加入缓存控制过期和最大存活时间标记。
  16. 优化CSS。要使用<link>方式,而不要使用@import方式。请参考这个优秀的文档http://www.slideshare.net/stubbornella/object-oriented-css
  17. 使用CSS技术来优化图片资源
  18. 用GZip方式压缩 .js 和 .css 文件。如果你使用的是Apache,在 .htaccess 里设置压缩方式,你的HTML, XML 和 JSON 也同时会被压缩。
    AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/x-javascript application/json
  19. 使用JavaScript压缩工具。除了使用YUI和JSMin外,你还可以试一试Google Closure http://closure-compiler.appspot.com/home (感谢: James Westgate, 一位读者)
  20. 优化每个页面上的各种资源,把它们拆分到各个子域上,这么它们就能够并行下载。请参考http://yuiblog.com/blog/2007/04/11/performance-research-part-4/
  21. 将CSS样式表放在页面的最顶端,这样能方便包括IE在内的浏览器进行解析。
  22. 尽量将DOM结构保持的越简单越好。DOM的体积会影响相关的操作效率,像查找, 遍历,DOM改动都有影响。document.getElementsByTagName(‘*').length这 个值越小越好。
  23. 注意你使用的选择器。例如,如果你想获取一个ul下的直接子元素,使用jQuery(“ul > li”)而不要使用jQuery(“ul li”)
  24. 当切换元素的可见性时(display),请记住:element.css({display:none})的 速度快于element.hide() 和 element.addClass(‘myHiddenClass')。 除非在一个循环里,我选择element.addClass(‘myHiddenClass'), 这样会使代码更简洁 – 不要使用 inline CSS 和 JavaScript。
  25. 当你使用完对DOM的引用变量后,要把它置为NULL。
  26. 使用AJAX时,GET的执行效率高于POST。所以要尽量使用 GET 方式。只是要注意一点,IE只允许你用GET传送2K的数据。
  27. 小心使用脚本动画。没有硬件的支持,动画会执行的很慢。尽量避免使用那些没有实际价值的动画效果。
  28. 如果你的background-image对于这个图片的容器太小的话,请避免使 用background-repeat。如果你的背景图片需要来回填充很多次才能充满背景,那么将background-repeat属性设置成background-image 和repeat-x 或 repeat-y来 达到填充背景的效果的做法是不明智的,这种填充方式的效率特别的低。你应该尝试使用一个足够大的图片来做background-image并 且使用background-repeat: no-repeat。
  29. 布局时不要使用<table>。 <table>在浏览器完全把它画出来之前需要反复绘制好几次。因为DOM中<table>是很少见的一种之后输出的会影响之前输出的显示效果的元素。对于表格数据来说,你可 以使用table-layout:fixed; 这是一种更有效的现实算法,根据CSS 2.1技术说明,这种写法可以让表格一行一行的输出。
  30. 尽可能的使用原始JavaScript。限制JavaScript框架的使用。
时间: 2024-09-21 04:46:00

30个提高Web程序执行效率的好经验分享_相关技巧的相关文章

对《30个提高Web程序执行效率的好经验》的理解

阅读了博客园发布的IT文章<30个提高Web程序执行效率的好经验>,这30条准则对我们web开发是非常有用的,不过大家可能对其中的一些准则是知其然而不知其所以然. 下面是我对这些准则的理解和分析,有些有关JS性能的准则,我也测试了它们的差异,大家可以下载DEMO页面,如有理解不正确的地方,请大家指正.也非常欢迎大家补充. 测试环境: OS:Vista; Processor:3.40GHz; Memory: 2.00GB; System type: 32-bit Operating System

如何提高WEB程序的效率 (第一篇SQL篇)  (转)

web|程序 如何提高WEB程序的效率 (第一篇"SQL篇") 很多网友非常不喜欢用ASP来编程,他们总是抱怨说ASP程序太慢,效率太低.更希望用PHP,JSP等来写程序.其实不能从 "认为" 这个角度来看问题 ,而应该从实际中看问题,ASP真的很慢的吗,那么微软的站为何用ASP也不慢呢?PHP真的很快吗,其实它也仍然是解释性的语言.只不过在Linux下的结合比较好而以.JSP的开发也不会简单到何处,而且要通过JDBC-ODBC桥才能连接ACCESS库等,这种情况下

如何提高WEB程序的效率 (第一篇)

web|程序 很多网友非常不喜欢用ASP来编程,他们总是抱怨说ASP程序太慢,效率太低.更希望用PHP,JSP等来写程序.其实不能从 "认为" 这个角度来看问题 ,而应该从实际中看问题,ASP真的很慢的吗,那么微软的站为何用ASP也不慢呢?PHP真的很快吗,其实它也仍然是解释性的语言.只不过在Linux下的结合比较好而以.JSP的开发也不会简单到何处,而且要通过JDBC-ODBC桥才能连接ACCESS库等,这种情况下效率也不高. 其实,三种语言各有特点,就是优,缺点.作为一个程序员不应

如何提高WEB程序的效率

web|程序 很多网友非常不喜欢用ASP来编程,他们总是抱怨说ASP程序太慢,效率太低.更希望用PHP,JSP等来写程序.其实不能从 "认为" 这个角度来看问题 ,而应该从实际中看问题,ASP真的很慢的吗,那么微软的站为何用ASP也不慢呢?PHP真的很快吗,其实它也仍然是解释性的语言.只不过在Linux下的结合比较好而以.JSP的开发也不会简单到何处,而且要通过JDBC-ODBC桥才能连接ACCESS库等,这种情况下效率也不高. 其实,三种语言各有特点,就是优,缺点.作为一个程序员不应

ASP.NET Web API教程 创建Admin控制器实例分享_实用技巧

In this section, we'll add a Web API controller that supports CRUD (create, read, update, and delete) operations on products. The controller will use Entity Framework to communicate with the database layer. Only administrators will be able to use thi

微信小程序搭建及解决登录失败问题_相关技巧

等了好久的小程序,终于在近日曝光了.现在就带大家来尝尝鲜.以下是一张随便看看的图. 一.构建微信小程序的步骤 下载开发工具 考虑到微信0.9.092100的Web开发者工具对于登录做了限制,所以下载登录还是需要一点门路的,我在下面有介绍,希望大家耐心的往下面看~下载工具的地址:链接 密码: r3hc. 破解的步骤就是:将破解压缩包的两个文件,放到如下图路径: 这个是MAC路径: 应用程序->微信web开发者工具->显示包内容 /Resources/app.nw/app/dist/compone

提高代码可读性的十大注释技巧分享_相关技巧

本文讲述了提高代码可读性的十大注释技巧.分享给大家供大家参考,具体如下: 很多程序员在写代码的时候往往都不注意代码的可读性,让别人在阅读代码时花费更多的时间.其实,只要程序员在写代码的时候,注意为代码加注释,并以合理的格式为代码加注释,这样就方便别人查看代码,也方便自己以后查看了.下面分享十个加注释的技巧: 1. 逐层注释 为每个代码块添加注释,并在每一层使用统一的注释方法和风格.例如: 针对每个类:包括摘要信息.作者信息.以及最近修改日期等: 针对每个方法:包括用途.功能.参数和返回值等. 在

windows开发记事本程序纪实(一)界面篇_相关技巧

前言 从毕业开始学习windows UI编程,工作中总是和一些API打交道,但是从没有做过一个完整的界面程序.因此打算自己利用空余时间做一个小的项目来总结自己所学的东西.在网上看到许多人建议自己动手写完整的项目才能快速提高,因此打算从仿照windows的记事本开始,真正实现一个基本的windows界面程序.考虑到编写一个完整的windows 记事本程序需要大量的工作,因此打算将每一个阶段的成果记录下来,一方面能够帮助自己进行总结,回顾已学的知识,另一方面也能够与其他网友一起讨论,从而可以在讨论中

微信小程序下载工具及调试详解_相关技巧

昨天晚些时候微信团队发布了微信小程序开发者工具.微信小程序开发文档和微信小程序设计指南,全新的开发者工具,集成了开发调试.代码编辑及程序发布等功能,帮助开发者简单和高效地开发微信小程序.以下是官方文档,内含小程序开发者工具下载地址及调试指南. 下载地址:开发者工具0.9.092300版 windows 64版:windows 32版:mac版 为了帮助开发者简单和高效地开发微信小程序,我们推出了全新的开发者工具,集成了开发调试.代码编辑及程序发布等功能. devtools 扫码登录 启动工具时,