前端性能优化(一)-- 文件的压缩与合并
首先我们需要搞清楚,我们为什么需要进行文件的压缩与合并?压缩与合并的原因主要有两点
- 减少HTTP请求数
- 减小HTTP的请求大小
这里的主要优化方式有3点: - HTML/CSS/JS文件的压缩
- CSS/JS文件的合并
- 开启GZIP压缩
如何进行HTML压缩
- 使用在线网站压缩
- html-minifier工具
- 后端模板引擎渲染时压缩
如何进行CSS压缩
- 使用在线网站压缩
- 对于html中的css可以使用html-minifier压缩
- clean-css工具
为什么要进行js压缩与混乱
- 无效的字符删除
- 删除注释
- 代码语义的缩减和优化
- 代码保护
如何进行js的压缩
- 使用在线网站进行压缩
- 对于html中的css可以使用html-minifier压缩
- uglifyjs2工具
如何进行js的合并
- 手动进行合并
- 使用webpack,gulp等工具
文件合并带来的优势
- 假设我们未合并之前,有N个JS文件,文件的合并我们可以减少N-1上行的HTTP请求
- 减轻了丢包问题的影响
- 减少了经过代理服务器时断开的可能
文件合并存在的问题
- 由于文件全部被合并到一个js文件中,那么首屏渲染时就需要将完整的js文件下载下来,然后才能渲染首屏,这样增加了首屏渲染的时间
- 由于文件合并时,文件的md5戳会发生变化,从而导致缓存失效的问题
如何有效的规避文件合并带来的问题
- 可以将项目的第三方依赖打到一个common chunks中,这样不会每次打包都会改变这个文件的md5戳
转载于:https://www.cnblogs.com/guolizhi/p/10251265.html
前端性能优化(一)-- 文件的压缩与合并相关推荐
- 前端性能优化的一些技巧(90% chatGpt生成)
终于弄好了chatGpt的账号,赶紧来体验一波. 先来一波结论,这篇文章的主要内容来源,90%是用chatGpt生成的. 先上chatGpt的生成的结果: 作为一名懒惰的程序员,chatGpt会帮助我 ...
- 前端服务器获取js文件偶尔慢_我所认识的前端性能优化
现象: 用户体验差 网页太卡打不开(卡.慢) 服务器带宽流量(成本) 服务器压力 从哪处理:各处的缓存 地址缓存 减少DNS的解析请求.预解析DNS(不是"解析DNS") TCP缓 ...
- dll文件懒加载_前端性能优化
# 前端性能优化 写在最前面:下面都是我对webpack的一些性能优化,想系统的学习性能优化方面的知识 推荐大家看看这本书 很系统 感觉面试也能如鱼得水 ## 构建优化 ### webpack优化 ( ...
- 前端性能优化总结/懒加载、函数节流、优化dom操作、雪碧图、合并文件
1.减少 HTTP 请求数量 在浏览器与服务器进行通信时,主要是通过 HTTP 进行通信.浏览器与服务器需要经过三次握手,每次握手需要花费大量时间.而且不同浏览器对资源文件并发请求数量有限(不同浏览器 ...
- 【前端性能优化实践】手把手教你实现webpack图片压缩插件
前言 我想写一个系列:前端性能优化实践方案.网上虽然一搜一大把这样的文章,但大多缺乏体系化.也有很多讲性能优化的书籍,但其实想照着书上的知识进行实践,还是挺难的一件事. 这是该系列的第一篇文章 由于自 ...
- 深度讲解:web前端性能优化
一.课程简介: 1.课程大纲 涉及到的分类 网络层面 构建层面 浏览器渲染层面 服务端层面 涉及到的功能点 资源的合并与压缩 图片编解码原理和类型选择 浏览器渲染机制 懒加载预加载 浏览器存储 缓存机 ...
- 大型网站技术架构(3):WEB 前端性能优化
上次说到了性能优化策略,根据网站的分层架构,可以大致的分为 web 前端性能优化,应用服务器性能优化,存储服务器性能优化三大类 这次来说一下 web 前端性能优化,一般来说,web 前端就是应用服务器 ...
- 前端性能优化——从 10 多秒到 1.05 秒
https://lishaoy.net 关于 性能优化 是个大的面,这篇文章主要涉及到 前端 的几个点,如 前端性能优化 的流程.常见技术手段.工具等. 提及 前端性能优化 ,大家应该都会想到 雅虎军 ...
- 移动H5前端性能优化指南[转]
移动H5前端性能优化指南 米随随2015.01.23 移动H5前端性能优化指南 概述 1. PC优化手段在Mobile侧同样适用 2. 在Mobile侧我们提出三秒种渲染完成首屏指标 3. 基于第二点 ...
最新文章
- linux下字符串处理工具二:awk( 二),awk脚本
- bmaplib vue 调用_Vue-cli3/4中使用AMap、BMap
- mybatis delete返回值_从零开始学习在IntelliJ IDEA 中使用mybatis
- 结构体对齐原理【转】
- 中国人工智能学会通讯——人工智能如何造福人类 1.1 人工智能是中性技术
- 关于火狐中使用jquery的animate做动画效果的问题解决
- python中浮点数能用乘法吗_简单讲解Python中的数字类型及基本的数学计算
- Java实现蛇形矩阵
- Double 中的 NAN与INFINITY
- js生成二维码附带logo
- Vue 下载文件需要token设置
- ubuntu使用教程
- 如何在Github上建立自己的个人博客网站详细教程
- Excel模糊查找+数据透视
- 《没那么简单》-黄小琥
- JavaScript数字运算必备库——big.js源码解析
- MATLAB 2021a+ MAC
- windows服务器怎么查看网站,windows运行查看服务器
- 李开复成长中的10句格言:求知若饥 虚心若愚
- AES加密:PHP与Java互通,解密准确
热门文章
- mysql 5.6 emoji_让MySQL 5.6支持Emoji表情
- 如何控制if跳出_Wasm介绍之5:控制指令 | 火星技术帖
- mysql function select 赋值_数据分析面试之mysql的分组排序和变量赋值顺序
- Spring-cloud Config Server 3种配置方式
- Win10设置防火墙,使局域网能访问此电脑的Tomcat服务
- MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist
- Android开发笔记(三十七)按钮类控件
- 怎样在matlab q-q图上读出斜率,Q分解法潮流计算matlab小程序
- python 同步event对象
- django框架基础