面试之性能优化

面试之性能优化

css性能优化方面

首屏内联样式

因为内联样式的时候,浏览器再加载html的时候,也一并加载了内联样式,这样就会减少首页白屏的效果。

减少使用@import引入css

  • 尽量减少使用@import引入css
    • 因为浏览器再引入这个 css的 时候,会阻塞进程,先加载 @import引入的css,加载完毕后,再继续后续的进程

优化重排和重绘

  • 减少重排
    • 减少通过dom节点去操作 css样式等
      • 内外边距
      • JS获取DOM元素的位置相关属性(如width/height/left等)
      • 使用Flex时,比使用inline-block和float时重排更快,
        所以在布局时可以优先考虑Flex
  • 减少重绘
    • 元素的外观(如color,background,visibility等属性)发生改变时,会触发重绘,尽量减少这类操作

减少使用高性属性:浮动、定位,推荐使用flex布局

动画方面

  • 尽量使用 transform 转化属性去实现相关动画,而不是使用定位 left right等形式

js性能优化方面

使用cdn的方式引入 console.log (h5方面)

对数据进行缓存

  • http相关请求的缓存,同一个接口查询的数据一致时,使用缓存的数据(后端处理)
  • 使用浏览器缓存,使用localStorage sessionStorage cookie相关存储,去缓存数据,避免再一次加载页面时候,重新请求数据

防抖

节流

路由的懒加载

component: () => import("../views/profile/Profile.vue")

首屏加载显示白屏优化

  • 可假如屏保,就是在一开始加载整个程序的时候,添加一个屏保,模拟出正在加载过程
  • 可假如骨架屏
  • 首页的直接引入,其他路由进行路由懒加载形式导入

webpack相关配置

图片转化为base64 (url-loader)

图片的压缩 (image-webpack-loader)

把es6语法转化为es5语法等(babel-loader)

gzip压缩 打包的文件大小 - compression-webpack-plugin

js代码的压缩 (uglifyjs-webpack-plugin)

  • 设置清除log,去掉注释,去掉debugger

配置别名 (chainWebpack里面 config.resolve.alias)

设置生产环境,不生成map文件追踪错误 ( productionSourceMap: false )

使用CDN加速优化 ( vue路由等)

猜你喜欢

转载自blog.csdn.net/weixin_43845137/article/details/123701622