web前端性能优化总结

155 阅读3分钟

性能优化是一个很大的概念,我们可以从多个方面入手进行优化,我总结了以下几个方面以及如何进行优化。

一、服务器优化

  1. 服务器端开启gzip压缩

二、图片优化

  1. 减少像素点
  2. 减少每个像素点能够显示的颜⾊

三、打包优化(webpack优化)

  1. 减少 Webpack 打包时间(构建速度)
  1. 分离配置文件

  2. 减少查找内容

  3. 缩小构建目标

  4. 开启多线程

  5. 预编译模块

  6. 开启缓存

  7. 合理的使用source-map

a.  优化 `Loader`
b.  `HappyPack`
c.  `DllPlugin`
d.  代码压缩

2. 减少 Webpack 打包后的⽂件体积

1. 压缩css、js、图片资源,删除无用的css代码,使用gzip压缩。

2. 使用Tree Shaking(树摇)机制,对代码进行拆分。

3. 一些大的模块使用cdn方式引入

CDN中文名字叫内容分发网络,字面理解呢,就是用来做内容分发的一套网络体系,它是用来提升文件下载速度的一种机制,让用户能够从离自己最近的CDN服务器进行下载,减少路由次数、提升下载速度、缩短传输时间、提升用户的使用体验。

    1. 资源按需加载
    2. Scope Hoisting
    3. Tree Shaking

四、使用CDN

  1. 静态资源尽量使⽤ CDN 加载

五、代码优化

  1. css优化
  2. 减少回流与重绘
  3. js优化
  4. 减少http请求数,设置http缓存
  5. 资源按需加载
  6. 压缩前端代码,样式置于页面顶部header中,脚本置于页面底部,减少DOM操作
  7. 防抖和节流
  8. 前端SEO

前端SEO需要注意哪些?

1、在header中设置合理的title(标题)、description(描述)和keyWords(关键词)

2、语义化html代码,符合w3c规范,让搜索引擎更容易理解咱们的网页

3、重要的html代码放在最前面,因为搜索引擎获取内容是从上到下进行获取的。

4、重要内容不要用js输出,因为爬虫不会读取js里面的内容

5、少用iframe,因为搜索引擎不会抓取iframe内的内容

6、非装饰性图片加上alt属性

7、提升网站的速度,因为网站响应的速度也是搜索引擎排序的一个重要指标。

六、前端安全

对于前端来讲,所有的输入都是不安全的。

前端安全问题主要分为两种:xsscsrf

第一种:xss

xss(跨站脚本攻击):目的是想尽一切办法,将可执行代码注入到前端页面当中。

xss攻击主要分为两类:持久型、非持久型

如何防御XSS:

  1. 转义字符:对于引号、尖括号、斜杠进⾏转义

  2. CSP(本质是建立白名单):开发者明确告诉浏览器哪些外部资源可以加载 和执⾏。我们只需要配置规则,如何拦截是由浏览器⾃⼰实现的。

如何开启CSP:

  1. 设置 HTTP Header 中的 Content-Security-Policy

  2. 设置 meta 标签的⽅式

image.png

第二种:csrf

csrf(跨站请求伪造):攻击者构造出一个后台请求地址,诱导用户点击或者通过某些途径自动发起请求,利用受害者在被攻击网站以及获取的登录凭证信息,绕过后台的用户验证,达到冒充用户对被攻击网站进行某些操作的目的。

如何防御csrf:

Get 请求不对数据进⾏修改

不让第三⽅⽹站访问到⽤户 Cookie

阻⽌第三⽅⽹站请求接⼝

请求时附带验证信息,⽐如验证码或者 Token

三种CSRF防御方式:

  1. SameSite:可以对 Cookie 设置 SameSite 属性

  2. Referer:通过验证 Referer 来判断该请求是否为第三⽅⽹站发起的。

  3. Token:服务器下发⼀个随机 Token ,每次发起请求时将 Token 携带上,服务器验 证 Token 是否有效