【】数据交互时数据量的合理安排 并不是收越少越好,而是按照数据量,流量和服务器性能计算出最合理的安排
【】console.time和console.timeEnd来测试代码性能
【】设置图片大小优化
【】测试包jsUnit,来做测试
【】测试包JSLint,优化代码
【】合并文件 包括js,css等这些脚本文件,尽量做文件合并,合并的目的是减少http请求,但是在合并和通用之间做合理安排
【】使用less来编写css,但是不适用css表达式技术
【】DNS优化
【】虽然gbk的网页打开速度>utf8,但是我们还是使用国际规范utf8来加强容错率
【】http请求文件,包括css,js,img,媒体,字体等等,能减少就尽量减少
【】ajax的Cache-Control设置,内存设置arr,objectlist,本地存储设置等
【】css和js制作成min压缩版本
【】gzip设置压缩打开
【】雪碧图
【】使用apache的mod_rewrite伪静态指令来做重定向跳转
【】浏览器渲染dom,尽量减少dom数量,就是减少浏览器渲染工作量
【】尽量减少dom的操作,一些操作,比如jq的html()代替append(),不过以业务逻辑为主
【】摒弃滤镜这些技术
【】@import摒弃
【】摒弃table,iframe等元素
【】如果是iis服务器,设置etags优化
【】使用预加载技术
【】使用延迟加载技术
【】cdn技术,但是不宜过多(因为dns的原因)
【】样式顶部,js尾部
【】使用事件捕获,事件冒泡技术来捕捉事件源,而不是盲目的添加事件
【】png>jpg>gif,使用上,尽量用png
【】get>post,在可以get和post的同时,选择get,因为get更快捷,post的请求需要两步(post->httpheader>data)
【】移动端的优化,移动端很多场景摒弃jquery的原因,不是因为jquery不够强,而是因为有部分移动互联网设备对缓存做过设置,所以,一般过大的组件,包等不建议采用。一般建议在0-20k之间为好
【】内存不在使用,要清空内存,闭包进行优化,全局变量尽量减少,使用文件依赖(传参)
【】数组push<arr[len+1]
【】数组unshift<[].concat
【】if-else if这种嵌套越少越好
【】if(true)这种写法>if(a=='string')
【】concat的效率高,容错率高,多用concat进行各种拼接
【】只使用一次的代码,可以链式写法
【】字符串转数字(不含有字符的情况下),使用+号代替number方法
【】===>==
【】三目运算符的效率最快,用三目运算符代替ifelse,在一些情况下
【】一些情况,用||代替if else
【】用catch捕获错误
【】用ifelse,做严谨逻辑,比如ajax的data,if(data...){}else(){}
【】封装命名空间的时候,可能会涉及到闭包,这里尽量做优化
【】filter方法
【】call和aplly方法影响性能,尽量选择性使用
【】模拟java的面向对象的时候,设置私有属性注意
【】模拟java面向对象的时候,尽量避免内存的多次申请,一些方法,添加到原型当中
【】尽量使用es6的class代替es5的模拟面向对象
【】对jquery对象和dom元素使用变量=起来
【】DocumentFragment代替循环dom操作
【】jquery查找,使用next(),eq(),find等过滤来代替$('.aaa>aaa')这样的写法
【】尽量减少嵌套,不论是循环,方法,判断,对象,数组等
【】当出现数据量大的数组的时候,尽量使用【快速排序算法】【希尔排序算法】来代替简单的插入排序和冒泡排序
【】性能上,原生js>jquery>=other
【】循环,减少循环
【】setInterval>setTimeout
【】尽量使用包代替命名空间
【】局部变量》全局变量!!!
【】eval摒弃
【】这种.aaa,.bb,.aaa.bb.cc这种,不要这样做,不清晰,也慢,尽量不要这么写,写好了的,再次使用,就用变量保存
【】a += 1 > a = a+1;
【】扩展的时候,用参数,对对象进行扩展,类似java的继承子对象的方式,多用这种方式对元对象进行扩展,方便维护。
【】Math>parseInt
【】不是做面向对象方式开发框架的时候,尽量不要用构造函数来创建对象,直接{}最好的
【】还是减少new(构造器)这个东西
【】正则>js逻辑
【】分号不要忘记
【】innerHTML比jquery的html和append都要好些
【】减少回流(这个参看浏览器解析原理)
【】摒弃with
【】适当使用常量
【】删除dom
【】事件代理
【】减少null值这种情况,也不要比较null值(null是人为造成的)
【】要么不创建dom对象,创建了就给它添加到页面里
【】注意内存的释放
【】解耦,解耦,解耦,重要的事情说三遍!!!!!!!!!!!!!!
【】自己写jquery插件,或者原生写一个js框架的时候,一定要注意两件事,一,判断类型!!!!typeof 二,释放内存和释放内存方法