前端优化

118 阅读1分钟

前端优化能做到多少

1.阅览器的渲染过程

a 阅览器解析html 形成dom tree

b 阅览器解析css cssom tree

c js 使用html DOM和 cssom 这样的API操作html和css 合成rendertree

d 布局 根据render tree 计算每个元素的占位大小等信息

e 绘制 根据rendertree 的回流计算元素的绝对信息

f 展示页面上

2. 减少DOM重排操作

3. css 方面

a 避免样式嵌套

b 避免使用 table 布局

c 动画元素使用绝对定位脱离文档流

d 避免使用 float 布局

4 节流 防抖 减少函数执行次数

throllet(fun, delay) {
    let last = 0
    return function() {
    	let context = this
        let args = arguments
    	let now = new Date()
        if(now - last > delay) {
        	fun.apply(context, args)
            last = now
        }
    }
}

debounce(fun, delay) {
	let timer = null 
    clearTimeOut(timer)
    return function() {
    	let context = this
        let args = arguments
        timer = setTimeout(()=>{
        	fun.apply(context, args)
        }, delay)
    ]
}

5 静态文件打包

使用雪碧图 打包js