`
javamore
  • 浏览: 63847 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

提高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方式。

  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。

  20.优化每个页面上的各种资源,把它们拆分到各个子域上,这么它们就能够并行下载。

  21.将CSS样式表放在页面的最顶端,这样能方便包括IE在内的浏览器进行解析。

  22.尽量将DOM结构保持的越简单越好。DOM的体积会影响相关的操作效率,像查找, 遍历,DOM改动都有影响。document.getElementsByTagName(’*').length这 个值越小越好。

  23.注意你使用的选择器。例如,如果你想获取一个ul下的直接子元素,使用jQuery(”ul > li”)而不要使用jQuery(”ul li”)

  24.当切换元素的可见性时(display),请记住:element.css()的 速度快于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框架的使用。

1
0
分享到:
评论

相关推荐

    Asp.Net性能优化技巧汇总

    文章中介绍了多种实用的性能优化技巧,这些技巧涉及到会话状态存储方式的选择、页面回发的处理、服务器控件的使用、数据控件的选择以及字符串操作的效率优化等方面。 首先,在选择会话状态存储方式上,***提供了三...

    myeclise使用技巧集锦

    标题“myeclise使用技巧集锦”指的是一系列关于如何高效使用MyEclipse这一集成开发环境(IDE)的技巧汇总。MyEclipse是一款非常受欢迎的Java EE开发工具,它基于Eclipse平台并提供了丰富的功能来帮助开发者更高效地...

    优秀数据库工程师之路—MySQL数据库经验及技巧大汇总

    ⑵ServerMachine(服务器),服务器类型适合与其他应用程序共存,如FTP、email和web服务器,需要配置MySQL以使用适当比例的系统资源;⑶DedicatedMySQLServerMachine(专用MySQL服务器),此类型仅运行MySQL服务,...

    PB技巧100例

    - 调整脚本执行效率,避免不必要的循环和内存浪费。 9. **发布与部署** - 学习打包应用程序为可执行文件(.exe)或部署为Web服务,以及如何处理依赖库和设置文件。 - 理解如何在不同操作系统和硬件环境中部署PB...

    PB的一些使用技巧.zip

    在"PB的一些使用技巧.zip"这个压缩包中,包含了一份名为"PB的一些使用技巧.chm"的帮助文档,这很可能是对PowerBuilder使用技巧的汇总。以下是一些可能涵盖的知识点: 1. **数据窗口设计**:数据窗口是PowerBuilder...

    ASP.NET程序中常用代码汇总

    ASP.NET 是一种由微软开发的Web应用程序框架...理解并熟练运用这些技巧能够提升开发效率,使得ASP.NET应用程序更加用户友好和功能完备。在实际项目中,应根据具体需求进行适当的调整和优化,确保代码的健壮性和安全性。

    TOOLS技术文章 总汇

    4. **数据库管理**:MySQL、MongoDB、PostgreSQL等数据库工具的使用和优化技巧,包括SQL查询、数据备份和恢复策略。 5. **容器化技术**:Docker和Kubernetes是目前非常流行的容器化和容器编排工具,文章可能涉及...

    软件工程中的软件测试评估与优化.pptx

    - **控制流图**:可视化表示程序执行路径,帮助发现未被测试的路径。 - **数据流分析**:追踪数据在程序中的流向,确保数据处理正确无误。 - **黑盒测试**:侧重于软件的功能性和接口测试。 - **等价类划分**:将...

    Yii使用技巧大汇总

    这篇文章将深入探讨在使用Yii框架时的一些实用技巧,帮助开发者提高开发效率和优化应用性能。 1. **配置DB组件**: - `'schemaCachingDuration'` 设置为3600秒表示启用数据库模式缓存,但只有在开启缓存服务(如...

    ASP基于BS结构的仓储物流管理系统(源代码+论文).zip

    总之,这个ASP开发的仓储物流管理系统结合了Web技术与企业管理实践,旨在提高物流效率,优化库存控制,同时展示了ASP在构建Web应用中的实际应用。通过对源代码的研究,开发者可以学习到ASP编程技巧以及如何构建类似...

    QTP

    【QTP常用技巧展示】:在QTP测试过程中,有许多提高效率的技巧,如使用`Sync`确保对象就绪再进行操作,使用`Smart identification`优化对象识别,以及利用`Test Run Settings`定制测试运行参数等。 【QTP对象识别...

    java面试笔试题分类汇总

    12. **常见笔试代码**:可能包括算法题、性能优化、内存管理、错误排查等方面的问题,这些都需要扎实的编程能力和解决问题的技巧。 通过深入学习以上各个领域的知识点,并结合实际的编程练习和面试经验,你可以更好...

    Visual Studio .NET 使用技巧手册

    ### Visual Studio .NET 使用技巧手册知识点汇总 #### 一、编写代码 **1. 添加XML注释** - **功能**: 在代码中添加XML注释,有助于生成文档和提高代码可读性。 - **使用场景**: 当需要为类、方法、属性等添加...

    QTP 相关资料汇总

    同时,懂得如何在QTP中设置断点、单步执行、查看变量值等调试技巧也是必要的。 5. **函数库与对象模型**:QTP提供了丰富的内置函数库,如Action、Browser、Window、Object等,理解这些函数的作用以及如何正确使用,...

    oracle数据库应用与开发讲义

    - 根据键值范围、列表、散列等方式对表进行分区,提高查询效率和管理便利性。 #### 专题三:SQL语句和SQL函数 ##### 教学目标 1. **理解DDL、DML和DCL的区别**:学习数据定义语言(DDL)、数据操纵语言(DML)和...

    完整的工作票统计程序C#版ACCESS数据库

    添加操作涉及向数据库中插入新的工作票记录,删除操作则用于移除不再需要的记录,而联合查询是数据库操作中的高级技巧,它允许程序合并来自多个表的数据,以获取更复杂、更全面的报告。 “包含了完整的添加 删除 ...

    loadrunner和QTP视频教程汇总

    通过学习QTP的视频教程,测试人员可以提升自动化测试的能力,提高测试效率和准确性。 总结来说,"loadrunner和QTP视频教程汇总"提供了丰富的学习资源,涵盖了这两个强大的测试工具的各个方面,对于想深入理解并掌握...

Global site tag (gtag.js) - Google Analytics