web前端性能优化一
作为一个前端会允许自己的作品,在非硬性条件下出现卡顿? 肯定是不会,所以给大家梳理一下前端性能的优化.
一:文件操作
html文件压缩:
删除无用的空格和换行符等其他无意义字符
css文件压缩:
删除无用的空格和换行符等其他无意义字符,样式的合并
js文件压缩
删除无用的空格和换行符等其他无意义字符(好处除了减少文件的大小,还可以对自己的代码进行保护 也就是js代码混合)
文件合并
针对js文件的合并:可以把多个无依赖关系的js文件合并在一个文件里面,减少http请求.
操作方式:
1.在线网站压缩
2.使用构建工具在项目构建层压缩(如webpack,node中的一些模块)
带来的问题:
1.首屏渲染问题(合并之后文件可能很大,渲染时间变长)
2.缓存失效问题(合并之后,之前的单独文件一改变,合并的文件也要改变,导致缓存失效)
tips:看自己的需求进行处理
二:图片操作
常见图片类型:jpg,png,webp(谷歌公司推出)
jpg应用场景:不需要透明的图片使用
png应用场景:需要透明的图片使用
webp应用场景:不失真,安卓移动端(推荐使用,有在线工具可以转换成webp格式的图片 智图) ios(存在兼容性)
图片方面的优化:
1.使用雪碧图(精灵图)把icon图标等一些图片集成在一张图片上 (注意:图片不能过大 会出现失真和请求过慢的情况,导致页面不能及时渲染)
2.image-inline:在有些场景中,我们完全可以把一些图片转成base64编码,作为html代码,减少http请求.
三:预加载和懒加载
相比这两个词大家听说的很多,实际应用还是很少的.
1.预加载应用场景:电商网站或者页面较长有需要加载很多图片的应用中

在图片容器没有出现在可视区域内之前不去请求图片资源,当图片容器出现在可视区域内的时候再去请求资源.(可大量优化性能)
2.懒加载应用场景:典型应用抽奖(抽奖的时候,是不是选中那个奖品,图片就立即变化了,所以要提前获取到图片资源)
四:重绘与回流
这两个问题是老生常谈的问题,那我们就解决吧.
概念
重绘:元素的外观,风格 不影响布局 和几何大小
回流:页面布局和几何属性(尺寸大小等)改变
常见引起重绘的原因:

常见引起回流的原因:

解决办法:
1.用translate替代top改变
2.用opactiy替代visibility(注意要把目标元素单独设置在一个图层上 如何设置图层:目标元素 1.will-change:transform 2.transform:translateZ(0) 其它的方式自行百度)
3.不要一条一条地修改DOM的样式,预先定义好calss,然后修改DOM的class名称
4.把DOM离线修改(先把元素display:none,修改之后在显示出来)
5.不要把DOM结点的属性值放在一个循环里当成循环里的变脸(用一个中间变量保存,不然会破坏浏览器的重绘缓存机制,导致代码健壮性不够)
6.不建议使用table布局
7.动画实现的速度的选择
8.对于动画新建图层
9.启用GPU硬件加速(transform:translate3d(0,0,0),合理使用,物极必反)
图层解释:类似于ps中的图层,浏览器的渲染是多个图层决定的

上图就是一个页面的图层
如何计算浏览器的重绘和回流时间

使用这个工具(使用方法自行百度)
我们下期见
web前端性能优化一的更多相关文章
- web前端性能优化指南(转)
web前端性能优化指南 概述 1. PC优化手段在Mobile侧同样适用2. 在Mobile侧我们提出三秒种渲染完成首屏指标3. 基于第二点,首屏加载3秒完成或使用Loading4. 基于联通3G网络 ...
- Web前端性能优化教程09:图像和Cookie优化
本文是Web前端性能优化系列文章中的第九篇,主要讲述内容:图像和Cookie优化.完整教程可查看: 一. 图像优化 图像基础知识 gif: 适用于动画效果,例如提示的滚动条图案 jpg: 是一种使用 ...
- Web前端性能优化教程06:减少DNS查找、避免重定向
本文是Web前端性能优化系列文章中的第六篇,主要讲述内容:减少DNS查找.避免重定向.完整教程可查看: 一.减少DNS查找 基础知识 DNS(Domain Name System): 负责将域名UR ...
- Web前端性能优化教程08:配置ETag
本文是Web前端性能优化系列文章中的第五篇,主要讲述内容:配置ETag.完整教程可查看:Web前端性能优化 什么是ETag? 实体标签(EntityTag)是唯一标识了一个组件的一个特定版本的字符串, ...
- Web前端性能优化教程05:网站样式和脚本
本文是Web前端性能优化系列文章中的第五篇,主要讲述内容:网站样式和脚本代码的放置位置.使用外部javascript和css.完整教程可查看:Web前端性能优化 一.将样式表放在顶部 可视性回馈的重要 ...
- Web前端性能优化教程03:添加Expires头
本文是Web前端性能优化系列文章中的第三篇,主要讲述添内容:加Expires头.完整教程可查看:Web前端性能优化 什么是Expires头? Expires存储的是一个用来控制缓存失效的日期.当浏览器 ...
- Web前端性能优化教程04:压缩组件
本文是Web前端性能优化系列文章中的第四篇,主要讲述内容:压缩组件.完整教程可查看:Web前端性能优化 基础知识 gzip编码:gzip是GUNzip的缩写,是使用无损压缩算法的一种,最早是用于Uni ...
- Web前端性能优化教程07:精简JS 移除重复脚本
本文是Web前端性能优化系列文章中的第七篇,主要讲述内容:精简Javascript代码,以及移出重复脚本.完整教程可查看: 一.精简javascript 基础知识 精简:从javascript代码中 ...
- WEB前端性能优化:HTML,CSS,JS和服务器端优化
对前端开发工程师来说,前端性能优化的重要性是不言而喻的,最为大家所知的是YSLOW的23条优化规则,在我的理解中,性能优化不纯粹是指用户访问网站的速度,也包括开发的效率,这里我总结下我理解中的WEB前 ...
- Web前端性能优化的9大问题
1.请减少HTTP请求基本原理:在浏览器(客户端)和服务器发生通信时,就已经消耗了大量的时间,尤其是在网络情况比较糟糕的时候,这个问题尤其的突出.一个正常HTTP请求的流程简述:如在浏览器中输入&qu ...
随机推荐
- 视觉SLAM算法框架解析(1) PTAM
版权声明:本文为博主原创文章,未经博主允许不得转载. 本系列文章旨在总结主流视觉SLAM算法的框架,对比各个算法在子模块的差异,最终提炼出融合各个算法优点的架构. PTAM[1]是视觉SLAM领域里程 ...
- hdu2876 Connections between cities(LCA倍增)
图不一定联通,所以用并查集找各个联通块的祖先分别建图,之后就和LCA的步骤差不多了 #include<iostream> #include<cstring> #include& ...
- Codeforces1301D Time to Run
(搬运一下部分官方题解) Description link 或者洛谷link 到时候就有中文翻译了,不过这个题机翻没毛病 Solution 首先这是一道模拟题-- 不要管题目中的循环移动的问题,直接按 ...
- Winform下编译Dev控件时提示license.licx文件错误
有时候,用vs2005或2008,用到第3方控件的时候会自动生成licenses.licx.我用的是devexpress.在程序运行的时候总是出现dev的画面,很烦.在网上找了找,找到去掉画面的方法: ...
- python学习笔记(22)-os文件操作模块
疑问: 如果打开操作一个文件,是用绝对路径好还是相对路径好? os模块,在lib下面,可以直接引入的,直接使用import. 一.新建一个目录,新建一个文件夹 import os #新建一个文件夹 o ...
- Kali-tools
title date tags layout Ubuntu Update Kali-Tools 2018-09-01 Linux post 创建shell文件 vim update-kali-sour ...
- 实战_1:在Eclipse中新建RCP项目
(1)file => New => Plug-in Project (2) 指定项目名称 => next source folder: 源码路径 Output folder:编译后 ...
- Create Collection Type with Class Type Constraints
Create Collection Type with Class Type Constraints: new TypeToken<ArrayList<ClassType>>( ...
- 用Excel做数据分析常用函数(数据清理、关联匹配……)
本文总结在使用Excel进行数据分析时,最常用的功能和函数. Excel的功能和函数非常多,用进废退,除了学习基本的函数和功能,最重要的是遇到问题可以快速的搜索并解决. 首先Excel可以处理的数据量 ...
- confessed to doing|conform|confined|entitle|
to admit that you have done something wrong or something that you feel guilty or bad about 坦白:供认,招认: ...