前端代码优化

【】数据交互时数据量的合理安排 并不是收越少越好,而是按照数据量,流量和服务器性能计算出最合理的安排

【】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 二,释放内存和释放内存方法

转载于:https://juejin.im/post/5b0a6c8b51882538b25928e3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值