范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

前端性能优化总结

  gzip压缩
  gzip压缩效率很高,可以达到70%的压缩率
  //npm i -D compression-webpack-plugin 安装插件依赖
  configureWebpack: config => {
  const CompressionPlugin = require("compression-webpack-plugin")
  config.plugins.push(new CompressionPlugin())
  }
  去掉console.log
  生产环境中,不需要打印日志。通过对webpack进行配置,打包时自动去掉console.log
  //npm i -D terser-webpack-plugin
  configureWebpack:config =>{
  const TerserPlugin = require("terser-webpack-pulugin")
  config.optimzation.minimizer.push(
  new TerserPlugin({
  extractComments:false,
  terserOptions:{compress:{drop_console:true}} //插件配置项 移除console
  })
  )
  }
  去除SourceMap
  代码压缩后进行调bug定位将非常困难,于是引入sourcemap记录压缩前后的位置信息记录,当产生错误时直接定位到未压缩前的位置,将大大的方便我们调试。
  sourcemap附带了很多信息,如果build需要生成sourcemap,将会大大降低build的速度,还会增加包的体积。
  //vue 中
  module.exports = {
  productionSourceMap: false,
  }
  //react中
  //打开webpack.config.prod.js
  const shouldUseSourceMap = false
  CDN
  内容分发网络,它能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。所以可以通过将资源部署在CDN上来提高响应速度,提高用户体验
  预渲染
  简单来说,就是将浏览器解析JavaScript动态渲染的工作,在打包阶段完成了(只构建了静态数据)。换个说法,在构建过程中,webpack通过使用prerender-spa-plugin插件生成静态结构的html
  // 1、安装prerender-spa-plugin
  npm install prerender-spa-plugin --save-dev
  // 2、安装vue-meta-info
  npm install vue-meta-info --save-dev
  // 3、相关配置
  // 预渲染配置:在webpack.prod.conf文件中加入
  const PrerenderSPAPlugin = require("prerender-spa-plugin")
  const Renderer = PrerenderSPAPlugin.PuppeteerRenderer
  // 在 plugins 中加入
  new PrerenderSPAPlugin({
  // 生成文件的路径,也可以与webpakc打包的一致。
  // 下面这句话非常重要!!!
  // 这个目录只能有一级,如果目录层次大于一级,在生成的时候不会有任何错误提示,在预渲染的时候只会卡着不动。
  staticDir: path.join(__dirname, "../dist"),
  // 对应自己的路由文件,比如a有参数,就需要写成 /a/param1。
  routes: ["/", "/first", "/second", "/third", "/fourth", "/userCenter/userFirst","/userCenter/userSecond","/userCenter/userThird"],
  // 这个很重要,如果没有配置这段,也不会进行预编译
  renderer: new Renderer({
  inject: {
  foo: "bar"
  },
  // headless: false,
  renderAfterDocumentEvent: "render-event", // 在 main.js 中 document.dispatchEvent(new Event("render-event")),两者的事件名称要对应上。
  args: ["--no-sandbox", "--disable-setuid-sandbox"]
  })
  })
  // 4、在main.js中
  import MetaInfo from "vue-meta-info"
  new Vue({
  el: "#app",
  router,
  components: { App },
  template: "",
  // 添加mounted,不然不会执行预编译
  mounted () {
  document.dispatchEvent(new Event("render-event"))
  }
  })
  注意:路由模式必须为 history ,如果不设置 history 模式,也能运行和生成文件,每个 index.html 文件的内容都会是一样的
  Service Worker
  ServiceWorker 是运行在浏览器后台进程里的一段 JS,它可以做许多事情,比如拦截客户端的请求、向客户端发送消息、向服务器发起请求等等,其中最重要的作用之一就是离线资源缓存。
  ServiceWorker 拥有对缓存流程丰富灵活的控制能力,当页面请求到 ServiceWorker 时,ServiceWorker 同时请求缓存和网络,把缓存的内容直接给用户,而后覆盖缓存
  注意:需要HTTPS才能使用ServiceWorker
  HTTP缓存
  HTTP缓存一般分为两类:强缓存(本地缓存)、协商缓存(304缓存)
  普通刷新会启用协商缓存
  在地址栏输入网址、通过链接引入资源等情况下,浏览器才启用强缓存
  强缓存(200)。本地缓存是最快速的一种缓存方式,只要资源还在缓存有效期内,浏览器就会直接在本地读取,不会请求服务端。在chrome控制台的Network选项中可以看到该请求返回200的状态码,并且Size显示from disk cache或from memory cache。强缓存可以通过设置两种 HTTP Header 实现:Expires 和 Cache-Control。
  协商缓存(304)。协商缓存,顾名思义是经过浏览器与服务器之间协商过之后,在决定是否读取本地缓存,如果服务器通知浏览器可以读取本地缓存,会返回304状态码,并且协商过程很简单,只会发送头信息,不会发送响应体。
  协商缓存可以通过设置两种 HTTP Header 实现:Last-Modified 和 ETag
  首先在精确度上,Etag要优于Last-Modified
  第二在性能上,Etag要逊于Last-Modified,毕竟Last-Modified只需要记录时间,而Etag需要服务器通过算法来计算出一个hash值
  第三在优先级上,服务器校验优先考虑Etag
  缓存优先级:Service Worker -> Memory Cache(内存缓存) -> Disk Cache(硬盘缓存) -> Push Cache(推送缓存)
  Push Cache 只在会话(session)中存在,会话结束就被释放,而且缓存时间很短
  HTTP2
  HTTP2 四个新特性:
  多路复用,无需多个TCP连接,因为其允许在单一的HTTP2连接上发起多重请求,因此可以不用依赖建立多个TCP连接。
  二进制分帧,将所有要传输的消息采用二进制编码,并且会将信息分割为更小的消息块。
  头部压缩,用HPACK技术压缩头部,减小报文大小
  服务端推送,服务端可以在客户端发起请求前发送数据,换句话说,服务端可以对客户端的一个请求发送多个相应,并且资源可以正常缓存。
  …
  作者:MonkeySoft
  篇幅有限更多请见扩展链接:http://www.mark-to-win.com/tutorial/50671.html

你会支持国货吗,为什么?因为我是中国人,支持国货义不容辞。我是支持。烂了好修。国货是国家当重视质量。监督要严格,少了假的。才有威信。如果说国货仍然不思进取,而且还通过爱国情怀来坑害消费者的话绝对不能支持!华为Mate20Pro这款旧的旗舰手机还能入手吗?我想买个30过来玩玩鸿蒙,40全系曲面屏不太适应。20应该不能刷鸿蒙吧?手持mate20Pro,日常还是不错的,打游戏也可以。我用的是20x,开始是两天一冲,一年后是一天一冲,今年小区门禁卡通过手机NFC复制成功,为什么刷着没反应?你拿着手机再到物业公司去激活一下就好了,把手机当做门禁卡放在刷卡机上重新读取再激活。门禁卡本身有自己的硬编码,门禁卡激活的时候刷卡机给门禁卡植入一个软编码,这样门禁系统就能认可你的电视机65寸的超高清的推荐下?老牌子TCL电视啊,家里大部分人用的都是这个牌子的。推荐TCLT6电视机,具备4K超高清分辨率全场景AI人工智能圆角全面屏这个三个显著特点,再加上2000多一点的价格,消费者口碑与买手机的时候大家是不是很纠结?感谢您的阅读!我发现一个非常有趣的问题,我们在购买手机的时候,很可能会出现纠结的情况。我们纠结的问题主要是购买什么样的机器?是性价比更高的手机,还是性能更强的手机,或者是影像能力表有哪些好的手机app推荐?手机里面装的APP应该是因人而异,每个人的需求不同那么需要的工具就不同,我还发现每个年龄阶段所装的APP也有所区别,像我的习惯就是咨询类软件有今日头条悟空问答,社交软件有微信QQ,华为折叠屏手机华为MateX2,对市场产生重大影响从确认的消息来看,三星将在春节第二周发布最新的s20系列旗舰产品,华为MateX2折叠旗舰将于2月22日发布,除备用系统计划外,华为消费者业务首席执行官余承东随后在微博上表示,余承传来华为好消息,马来西亚做出正确选择,为华为5G开绿灯华为5G的实力在3G以及4G时代,由于国外企业掌握了大量的通讯技术,导致我们国内一直处于比较被动的局面,国产手机公司甚至为此付出了很多专利费。其中最典型的例子就是高通税,凡是需要用华为海思之后的国产之光!诺基亚的芯片供应商!能赢在5G时代吗?因为华为芯片被限制,我国半导体行业受到了前所未有的关注。在手机芯片领域,除了华为海思,其实还有一家芯片厂商实力不俗。这家公司就是紫光展睿,被看做是全村希望的紫光展睿,实力如何?能否vivoS9一部颜才兼备的轻薄自拍旗舰在手机影像的长赛道上,逐渐分化出各种不同侧重点的机型,有的主打全能有的主打视频录制,有的则发力自拍。vivoS9的定位十分清晰,便是为那些喜欢自拍的女性用户所打造,在前置硬件上采用关于华为5G,三大国集体变卦?任正非开始收割本文原创,请勿抄袭和搬运,违者必究对华为5G,三大国做出决定5G成为当下各国都在加紧发展的网络技术,中国已经建立起超73万座的5G基站,包括在其余的用户数量,5G设备出货以及取得的