前端性能优化-减少http请求,dns预解析,减少repaint和reflow
前端性能优化方法:
一 . 减少http请求
(1)通过合并图片,减少请求,俗称css sprites(css精灵)css sprites
(2)lazyload懒加载,在需要的时候再加载
1.定义:懒加载也称为延迟加载,图片需要用到的时候再去价值
2.用法:就是重写对象的get方法,当系统调用get方法再去加载对象
3.优点:(1)对象的实例化在getter方法中,各司其职,降低耦合性;(2)真正需要资源时,再去加载,系统的内存占用率会减小
(3)压缩/合并css和js
二 .减少repaint重绘和reflow重排
(1)repaint重绘: 元素的外观被改变,但没有改变布局(宽高)的情况下发生,如改变visibility,outline,背景色等
(2)Reflow(重排): dom的变化影响到元素的几何属性(宽高),浏览器会重新计算元素的几何属性,会使渲染树中受到影响的部分失效,每次重排都会产生计算消耗,改变窗口大小/改变文字大小/style属性的变化,如果reflow过于频繁,cpu的占用就会上涨
如何减少:
1. 尽量少用style属性,用class重绘比重排的效率高
2. 有动画效果的元素设置绝对定位和固定定位
3. 权衡速度的平滑。比如实现一个动画,以1个像素为单位移动这样最平滑,但reflow就会过于频繁,CPU很快就会被完全占用。如果以3个像素为单位移动就会好很多。
4. 减少不必要的dom层级,不要频繁操作dom
三 . dns预解析
让具有此属性的域名不需要用户点击链接就在后台解析,而域名解析和内容载入使串行的网络操作,这个操作能减少用户的等待时间,提升用户体验
用法:放在meta标签后面<link rel="dns-prefetch" href="//www.zhix.net">
最新文章
- 用CSS3写一个立方体
- React的井字过三关(1)
- Python>;>;>;使用Python和Pygame创建画板
- Android之设置横屏竖屏
- 翻译:打造基于Sublime Text 3的全能python开发环境
- script标签块的独立性与共享性
- 详解Java中ArrayList、Vector、LinkedList三者的异同点
- [SQL]SQL语言入门级教材_SQL语言快速入门(五)
- django的路由系统
- 转场动画1-Push 动画
- zzbank oneOpencloud Env linuxaix6.1 interactiveMaintain(nfs,aix genintall基于系统iso光盘,aix6.1 puppet-Agent,Cent6.4 puppetServer,agent time no syn case Er)
- JAVA jdbc(数据库连接池)学习笔记(转)
- libevent和libev的区别对比(二)
- 架构漫谈系列(2) 封装(Encapsulation)
- c++ -->; sizeof()使用小结
- 安装Leanote极客范的云笔记
- JQuery 获取select 的value值和文本值
- 【托业】【跨栏】TEST05
- Jvm类的加载机制
- Linq中比较字符串类型的日期
热门文章
- jdbc链接基础
- cocos2dx 3.3 异步加载纹理
- mount -o remount,rw / (这是个求命的命令)
- 每日英语:Vender Assault Shines Ugly Light on China&#39;s Urban Enforcers
- Java并发之彻底搞懂偏向锁升级为轻量级锁
- 0059 Spring MVC与浏览器间的JSON数据转换--@RequestBody--@ResponseBody--MappingJacson2HttpMessageConverter
- Error C2280
- spring中事务传播解读:PROPAGATION_REQUIRES_NEW
- Python操作Word【批量生成文章】
- 读取大csv文件数据插入到MySql或者Oracle数据库通用处理