参考《高性能网站建设进阶指南》

不仅仅关注页面加载时间,也要关注下页面操作时的相应速度。页面操作是我们写程序中 实实在在需要的

1、使用局部变量

任何非局部变量,在函数中使用次数超过一次时,就应该将其变成局部变量。

var setName = function (){
if(!$("#name").val()){
$("#name").val("ddd");
}
}
//下面应该变成一个局部变量
var setName = function (){
var $name= $("#name");
if(!$name.val()){
$name.val("ddd");
}
}

全局变量对象始终是作用域中的,最后一个;所以对全局变量的解析是最耗时的。

2、数据存储的位置

4种地方可以存储:字面量值、变量、数组元素、对象属性

字面量值和局部变量中读取值的开销差异很小,可以忽略不计。主要差别是数组和对象中读取值。

在循环,将函数中使用超过一次的对象属性或者数组元素,存储为一个局部变量

var a = ["a","b","c"]
for(var i =0 ;i<a.length){
console.log( a[i]) }
//减少读取数据的长度
var a = ["a","b","c"]
var b =a.length;
for(var i =0 ;i<b){
console.log( a[i]) }

3、流控制

流程的控制是提升性能的重要一环。条件判断,尽可能尽快结束。当仅判断一两个条件时,if语句通常比switch更快。当有2个以上条件判断且条件比较简单时(不是进行范围判断),switch语句更快。

4、减少dom操作

如果必须dom操作,在没显示之前,可以先隐藏再dom操作

最新文章

  1. 使用nmap工具查询局域网某个网段正在使用的ip地址
  2. 条款19:设计class犹如设计type
  3. 在Xcode中使用Git进行源码版本控制
  4. hdu 1203 概率+01背包
  5. BUG描述规范
  6. [WPF疑难]Hide me! not close
  7. AC自己主动机 总结
  8. 【转】sed 的参数
  9. 慢慢来写SpringMVC基本项目
  10. WebApi 的三种寄宿方式 (一)
  11. 3.认识Angular2组件之1
  12. nginx1.14.0版本高可用——keepalived双机热备
  13. MongoDB集群的搭建
  14. Ant和Maven
  15. python 优先队列
  16. tomcat7时遇到启动报错问题 SEVERE: ContainerBase.addChild: start:
  17. Codeforces Round #359 (Div. 2) B. Little Robber Girl&#39;s Zoo 水题
  18. [译]C语言实现一个简易的Hash table(2)
  19. fiddler的断点使用
  20. [LeetCode] Largest Rectangle in Histogram O(n) 解法详析, Maximal Rectangle

热门文章

  1. Bits Equalizer UVA - 12545
  2. Java对象的内存布局以及对象的访问定位
  3. B. Connecting Universities DFS,无向树
  4. C. Arpa&#39;s loud Owf and Mehrdad&#39;s evil plan DFS + LCM
  5. 前端编辑神器---sublime text2
  6. 外文翻译 《How we decide》被情感愚弄 第一节
  7. 使用原生javascript实现jquery的$(function(){ })
  8. AJPFX总结线程创建的两种方法
  9. Android Learning Note -- AsyncTask浅尝
  10. InvocationTargetException异常的深入研究-servlet的setAttribute与getAttribute