首页 > 其他分享 >前端优化总结

前端优化总结

时间:2023-03-21 10:35:01浏览次数:50  
标签:总结 存储 缓存 浏览器 前端 离线 使用 优化 图片

基本规则
  • css放到中
  • js 放到底部 前面
  • 内联加载快
  • 外置可以被复用,可以被缓存
浏览器并发数

Browser

HTTP1.0

HTTP1.1

IE6,7

2

4

IE8

6

6

Firebox

6

6

Safari

4

4

Chrome

6

6

Opera

4

4

图片
  1. css 雪碧图
    优点
  • 减少加载网页图片时对服务器的请求次数
  • 能减少图片的字节,比多张图片字节更小。

缺点

  • 维护比较麻烦
  • 自适应屏幕下,容易出现背景断裂
  • 元素的位置,需要计算
  1. 图片质量优化
  • 如果是颜色丰富的图片,一般选择jpg
  • 如果是动画图片,一般选择gif
  • 如果需要清晰图片或透明图片,一般选择png 并尽量使用png 8
  1. 图片压缩(tinypng)
  2. 使用更小更快更强,新一代图片格式 WebP
    WebP是谷歌在10年推出一种新型图片格式,最早也是应用在谷歌产品中,谷歌发布的Android Studio 2.3正式版中就包括对WebP支持的更新,在实测中,webp 格式比 jpg 格式减小约 20%。这对优化用户体验,减少CDN带宽消耗有很好的效果,但并不是所有浏览器都支持 webp ,所以为了使用 webp,需要做一点兼容性的工作。
  3. base64: 减少http请求,字节小图可使用。
  4. iconfont: 优点太多,适用小图标,大小颜色可变。常用icon无需设计。iconfont库资源丰富
  5. 图片延迟加载(懒加载)
CSS
  1. css选择器: 从右到左匹配
  2. 尽量少使用计算属性,如calc()、expression等
  3. 不要使用@import
  4. 重绘和重排 重绘(repaint)、重排(reflow)
    repaint:屏幕的一部分进行了重画,比如某个 css 中改变背景色,元素尺寸没有变。
    reflow:任何一个元素的尺寸发生了变化,需要重新验证并计算 render tree,就会造成重排。

常见引起重排的操作:

  • js添加或删除元素
  • 元素大小发生改变 (border、padding、width)
  • 浏览器窗口大小改变
  • 元素位置改变
  • 设置style属性
  • 页面首次渲染

常见引起重绘的操作:

color、background、background-position、box-shadow、border-radius等。

优化重排和重绘

  • 减少DOM操作
  • 利用添加class 修改样式
  • 动画使用CSS动画,开启GPU加速
  • 不要使用table
  • 可以让其脱离文档流,position:absolute,fixed
JavaScript
  1. 压缩、合并、混淆
  2. 使用async 或 defer
  3. 减少全局变量使用,慎用闭包
  4. 使用事件委托
  5. 避免使用for in 循环
  6. 服务器端渲染
  7. 减少DOM操作

可以参考----雅虎35条军规

浏览器缓存
  1. 浏览器缓存机制
    浏览器缓存机制是指通过 HTTP 协议头里的 Cache-Control(或 Expires)和 Last-Modified(或 Etag)等字段来控制文件缓存的机制。
    Cache-Control 用于控制文件在本地缓存有效时长
    Last-Modified 是标识文件在服务器上的最新更新时间。
  2. Web Storage
    分为 sessionStorage 和 localStorage
    通过存储字符串的 Key/Value ,存储大小为5MB(Cookies 4KB)
  3. Web SQL Database
    又名html5本地数据库,用户可以像访问本地文件那样轻松地对本地数据库进行直接访问
    目前基本已经被放弃, 新一代的前端存储方案--indexedDB
  4. Application Cache
    离线缓存,可在没有因特网连接时进行访问
    HTML5的离线存储是基于一个manifest文件(缓存清单文件,后缀为.appcache)的缓存机制(不是存储技术),通过这个文件上的清单解析离线存储资源,这些资源就会像cookie一样被存储了下来。之后当网络在处于离线状态时,浏览器会通过被离线存储的数据进行页面展示。
其它
  1. 静态文件存储到CDN上
  2. 避免重写向
  3. 少用iframe,阻塞onload,占用并发
  4. 升级http为http2.0

下次面试官问你时,不要只说表面的那几个了~

标签:总结,存储,缓存,浏览器,前端,离线,使用,优化,图片
From: https://blog.51cto.com/u_15907730/6139651

相关文章

  • 前端设计模式——桥接模式
    桥接模式(BridgePattern)是一种结构型设计模式,用于将一个大类或一系列紧密相关的类拆分为抽象和实现两个独立的层次结构,从而能够更好地组合和扩展这些类。在前端开发中,桥接......
  • 朴素系统优化思维的实践
    作者:京东物流严孝男一、问题去年年中时候,我有个好朋友(可以叫他华哥)顶着当时还很严重的疫情形式激情创业,斥巨资承包了他原公司食堂的几个摊位,摇身一变成了老板。当了老板......
  • 2万字70道Java经典面试题总结(附答案)
    本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校......
  • 15_SpringBoot_模板引擎总结_了解
    jsp优点:1、功能强大,可以写java代码2、支持jsp标签(jsptag)3、支持表达式语言(el)4、官方标准,用户群广,丰富的第三方jsp标签库缺点:性能问题。不支持前后端分离freemarker......
  • 15_SpringBoot_模板引擎总结_了解
    jsp优点:1、功能强大,可以写java代码2、支持jsp标签(jsptag)3、支持表达式语言(el)4、官方标准,用户群广,丰富的第三方jsp标签库缺点:性能问题。不支持前后端分离freemarker......
  • 每日总结 3.20
    今天进行了android对mysql数据库的链接。课上演示加分 importandroid.util.Log;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.R......
  • 15_SpringBoot_模板引擎总结_了解
    jsp优点:1、功能强大,可以写java代码2、支持jsp标签(jsptag)3、支持表达式语言(el)4、官方标准,用户群广,丰富的第三方jsp标签库缺点:性能问题。不支持前后端分离freemarkerFreeMa......
  • 15_SpringBoot_模板引擎总结_了解
    jsp优点:1、功能强大,可以写java代码2、支持jsp标签(jsptag)3、支持表达式语言(el)4、官方标准,用户群广,丰富的第三方jsp标签库缺点:性能问题。不支持前后端分离freemarkerFreeMa......
  • Java学习路线总结,逆袭Java架构师
    本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校......
  • 3.20 做题总结
    AGC019f思考这样一种策略:我们每次选择剩余的多的那个选项,这样最优。这种方法成立的基础是我们的猜测不会对之后的各个题的答案产生影响。于是我们把\(0\)的个数和\(1......