`
zhouyrt
  • 浏览: 1125624 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

30个提高Web程序执行效率的好经验

    博客分类:
  • Tool
阅读更多

  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-imagerepeat-xrepeat-y 来 达到填充背景的效果的做法是不明智的,这种填充方式的效率特别的低。你应该尝试使用一个足够大的图片来做background-image 并 且使用background-repeat: no-repeat
  29. 布局时不要使用<table><table> 在浏览器完全把 它画出来之前需要反复绘制好几次。因为DOM中<table> 是很少见的一种之后输出的会影响之前输出的显示效果 的元素。对于表格数据来说,你可 以使用table-layout:fixed ; 这是一种更有效的现实算法,根据CSS 2.1技术说明,这种写法可以让表格一行一行的输出。
  30. 尽可能的使用原始JavaScript。限制JavaScript框架的使用。
分享到:
评论
2 楼 mgh2008 2010-07-05  
支持+1~~~
1 楼 leijing 2010-06-29  
总结的不错,支持一下。

相关推荐

    30个提高Web程序执行效率的好经验分享

    30个提高Web程序执行效率的好经验分享,需要的朋友可以参考下。

    Java-Web程序设计实战-第8章-JDBC详解.pptx

    而且它在执行效率和可升级性方面是比较好的,因为大部分功能实现都在Server端,所以这种驱动可以设计的很小,可以非常快速的加载到内存中。但是这种驱动在中间件中仍然需要有配置数据库的驱动程序,并且由于多了一个...

    Spring Web Flow权威指南.pdf

    即用户界面导航的控制、状态管理和模块化,极大地提高了生产效率,尤其适合需要复杂用户交互界面的Web应用程序。此外,它还借鉴了UML状态图思想的流定义方式,使得Web流的开发更加自然。 书中重点讲解Web流、流定义...

    asp程序执行数据库的效率提升建议

    很多网友非常不喜欢用ASP来编程,他们总是抱怨说ASP程序太慢,效率太低。更希望用PHP,JSP等来写程序。其实不能从 “认为” 这个角度来看...所以今天我们不会比较这三种WEB语言到底谁好,谁坏,而是讲解如何提高程

    提高ASP页面执行效率的方法分析

    改善程序性能是一件很微妙的事情。尤其是和INTERNET相关的程序,像ASP程序,制约其性能的因素很多,像 WEB服务器、TCP/IP网络和数据库服务器等。

    可靠高效的Web测试系统-研究论文

    为了提高Web软件的可靠性和效率,测试团队应该富有创造力和... 本文介绍了一些基本的Web测试技术,策略,方法和工具,在对多个Web应用程序执行Web测试时,需要重点关注这些技术,策略,方法和工具,以获得更好的结果。

    iejoyswebos for .net 桌面级WEB开发框架程序V1.08

    6.纯粹的JS源代码,无任何封装,我们也曾想将JS封装成net类,这样用起来很方便,但会成为一种傻瓜式应用,另一方面执行效率会受到一些影响,我们还是希望能够通过读懂源代码来应用,这样可以提高你的技术。...

    spinginsight操作简介

    在新版本的Insight中包含了一些重量级的改进,让你能够提高应用程序的开发效率,以及应用程序的执行效率。SpringInsight是tc服务器开发版和SpringSource工具套件的一部分。 spring insight回答了这个问题:“刚才...

    Alfred_4.0.9_1144.dmg 通过热键,关键字,文本扩展等功能提高您的效率

    Alfred是一款屡获殊荣的macOS应用程序,可通过热键,关键字,文本扩展等功能提高您的效率。搜索Mac和网络,并通过自定义操作来控制Mac来提高生产力。 启动应用程序并在Mac或Web上查找文件。阿尔弗雷德(Alfred)...

    基于WEB学生成绩管理系统

    一直以来学生的成绩管理都要靠人工的方式来完成,是一个非常繁重的工作,使用人工计算和管理效率低、保密性差,而且历年的数据很不利于保存。使用计算机的数据处理功能对学生成绩进行信息化管理,可以实现数据的长期...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    SSH 为 Struts+Spring+Hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久...

    一个致力于微信小程序和 Web 端同构的解决方案.zip

    通过明智的资源分配,方案可以在有限的资源条件下实现最大的效益,提高效率并减少浪费。 风险管理: 方案通常会对潜在的风险进行评估,并制定相应的风险管理策略。这有助于减轻潜在问题的影响,提高方案的可行性和...

    基于Spark的新闻推荐系统,包含爬虫项目、web网站以及spark推荐系统.zip

    最终,我能够独立地使用Spring Boot开发Web应用程序,并运用其优秀的特性提高了开发效率。 总结来说,本学期我在Spark和Spring Boot方面取得了一定的进展。通过学习Spark,我掌握了分布式数据处理的基本原理和技巧...

    学校.net的课程,从入门到精通,,,

    ASP.net的执行效率已经大大提高,并且它强大且适应性强,因为ASP.NET是一种通用的操作方法。所以它的规模可以适应几乎所有平台上的Web应用程序开发,消息机制,数据接口和通用语言的基本语言可以完整地集成到 Net的 ...

    基于Spark的电影推荐系统,包含爬虫项目、web网站、后台管理系统以及spark推荐系统.zip

    最终,我能够独立地使用Spring Boot开发Web应用程序,并运用其优秀的特性提高了开发效率。 总结来说,本学期我在Spark和Spring Boot方面取得了一定的进展。通过学习Spark,我掌握了分布式数据处理的基本原理和技巧...

    Web自动化测试框架的设计与实现 (2013年)

    Web应用程序的测试效率是影响测试成本的主要因素.通过对传统自动化测试框架的理论研究,在开源工具的基础上设计了Web自动化测试框架(Web ...实践表明,wATF能有效地指导Web应用程序自动化测试的实施,提高测试效率.

    php程序设计课程大作业——基于PHP、MySQL的web端借还书系统.zip

    PHP内置丰富的数据类型(如整型、浮点型、字符串、数组、对象等),并提供了大量的预定义函数,涵盖了字符串操作、数学运算、文件系统处理、日期时间处理、数据库连接等常见功能,极大提高了开发效率。 在Web开发中...

    IBM Security AppScan安装包

    总之,IBM Security AppScan是一款功能强大的应用安全测试工具,可以通过自动化测试和高级漏洞扫描技术,帮助开发人员和测试人员识别和修复Web应用程序中的安全漏洞,提高Web应用程序的安全性。

    ASP.NET基于WEB的工作计划流程管理系统的设计与实现(源代码+论文).rar

    本资源提供了一个全面且功能强大的ASP.NET Web应用程序,专为简化和自动化工作计划流程而设计。该系统采用最新的ASP.NET技术和SQL Server数据库,确保了系统的稳定性、安全性和可扩展性。它非常适合各种规模的企业和...

Global site tag (gtag.js) - Google Analytics