• 前端性能优化及其原理


    前端性能优化的那些事!

    ① 减少请求资源大小和次数

    ② 代码优化

    ③ 存储相关

    一、减少请求资源大小和请求次数

    1、压缩与合并cssjs

    原因:较少请求次数以及资源的大小

    方法:gulp webpackgrunt

    2、多用SVG或字体图标代替 png

    原因:二者矢量图,代码编写出来的,放大不会变形,渲染速度更快

    3、图片懒加载

    原因:减少一次请求过多,降低http请求次数

    ①:通过滚动计算实现懒加载,当滚动到页面最后位置时进行请求

    ②:幻灯片相册等,可以使用图片预加载,将当前图片的前一张和后一张优先下载。

    ③:css图片(CSSscriptSVGscripticonfontBase64

    ④:图片过大--缩略图(vue-lazyload

    4、能用css,尽量不用js。能用原生js,尽量不用插件

    原因:避免dom操作,避免引入大量的第三方库

    5、使用雪碧图 精灵图

    6、少用cookie

    原因:cookie总是在客户端与服务端传递,使用不当,会造成发送时携带cookie

    7、前后端交互,数据尽量json格式

    原因:数据才处理方便,体积小

    8、前后端协商合理使用keep-alive

    使用了keep-alive就不会调用beforeDestroy(组件销毁前钩子)destroyed(组件销毁),因为组件没被销毁,被缓存起来了。

    9、前端与服务器协商,使用响应资源的压缩

    10、避免使用iframe

    11、在基于ajaxget请求进行数据交互的时候,根据需求可以让其产生缓存

    二、代码相关优化

    1、减少闭包使用

    原因:闭包所在上下文不会被释放

    2、减少dom操作

    原因:降低回流和重绘的此时

    3、避免循环嵌套和死循环

    4、减少css表达式的使用

    5、css放在body上边加载,js放在body下面加载

    6、css选择器解析规则所示从右往左解析的。减少元素标签作为对后一个选择对象

    7、尽量将一个动画元素单独设置为一个图层(图层不要过多)

    8、低耦合高内聚

    9、最好使用z-index 让每一层不在同一平面上

    10、减少递归的使用

    11、script标签下载js四,使用deferasync异步加载

    12、尽可能使用事件委托 绑定事件

    13、减少flash使用

    三、存储相关

    1、结合后端,利用浏览器的缓存技术,做一些缓存(让后端返回304,告诉浏览器去本地拉取数据)。(注意:也有弊端)可以让一些不太会改变的静态资源做缓存。比如:一些图片,jscs

    2利用h5的新特性(localStoragesessionStorage)做一些简单数据的存储,
      避免向后台请求数据或者说在离线状态下做一些数据展示。

  • 相关阅读:
    安卓虚拟机AVD启动报错:Running an x86 based Android Virtual Device (AVD) is 10x faster
    Android ADT 下载 ( ADT23.0.7 )
    安卓APP_android_params.gravity无法解析gravity
    电容麦与其他麦克风有什么不同?
    理解Kubernetes编排架构
    k8s(四)—service服务(暴露方式:ClusterIP、NodePort、LoadBalancer、ExternalName、ingress)
    k8s基础概念
    k8s 查看ip地址属于哪个pod_k8s之PodIP、ClusterIP和ExternalIP
    Helm 是 Kubernetes 的包管理器
    定义统一响应对象
  • 原文地址:https://www.cnblogs.com/cyp926/p/13754610.html
Copyright © 2020-2023  润新知