zoukankan      html  css  js  c++  java
  • 前端性能优化及其原理

    前端性能优化的那些事!

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

    ② 代码优化

    ③ 存储相关

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

    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)做一些简单数据的存储,
      避免向后台请求数据或者说在离线状态下做一些数据展示。

  • 相关阅读:
    23.什么是控制文件?
    路由器原理及路由协议
    大家帮忙看看,不会即使显示串口缓冲数据
    c# interface
    ip classless&no ip classless
    Visual Studio 2010 Visual C++ 确定要重新分发的 DLL
    fibonacci算法
    loopback端口作用
    疑惑的virtual method
    Read MBR via ReadFile function
  • 原文地址:https://www.cnblogs.com/cyp926/p/13754610.html
Copyright © 2011-2022 走看看