加载速度优化专刊>体积优化分享说到加载速度优化,我们能想到什么?网上能查到什么?加速网络?压缩包?启用缓存?HTTP2?摇树?这些内容是否正确?不太对!接下来,我们来详细分析一下。网络、加载速度优化为什么我说CDN可以加速是不正确的?不加剂量就谈毒性,都是耍流氓(在这里,脱离环境谈种马是不现实的)CDN是什么意思?CDN的全称是ContentDeliveryNetwork,即内容分发网络。CDN是建立在现有网络基础上的智能虚拟网络。依托部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,用户就近获取所需内容,减少网络拥塞。提高用户访问响应速度和命中率。CDN的关键技术主要包括内容存储和分发技术。如果你的CDN本身节点比较少,覆盖不全面,是提不上速度的。(比如你买的CDN没有海外节点,但是你想提高海外节点的访问速度。)如果你的CDN在外网,你的项目在内网,速度反而会慢.(内网距离比较近,所以速度快,内网带宽足够,所以速度快)你的CDN能承载你请求的量级吗?(比如目前各大厂都在开发自己的云服务,阿里云,腾讯云)开启GZIP真的会提速吗?是的,它确实加快了速度。但是通用服务器已经开启了。没有损失吗?有损计算每个文件的gzip,无缓存。可以手动生成对应的gz文件。启用缓存?无脑缓存?看来你还没有被ios支配。一般来说,缓存也是开启的。我们目前通用的方案是对html文件不缓存,对js和css强缓存hash控制。HTTP2真的是救星吗?总的来说,是的,它支持多路复用(打破6个链接的限制,比如接口慢,文件大),以及头压缩。但是在高延迟的情况下,HTTP2会比较慢。有线vs无线(WIFI、4G),服务提供商对网络有影响吗?只有外网项目受影响吗?外联网。服务提供商对网络有影响。比如我家是移动的,ping部分的ip丢包严重,光纤和4G都是这样。联通4G没问题。内联网。这里推荐使用有线,更稳定。这里有两种场景:公司,一般是AP面板。但有时AP节点就是无法更换,网络时有波动。看P90的数据特别难看。在家里,通常只有一个路由器。可以参考比较信号强和信号弱时的加载速度。体积优化Tree-shaking。好像有了Tree-shaking,一切就都结束了。但是webpack4之后默认是开启的。(yarnserve没有优化,yarnbuild有优化,内部受环境变量控制)tree-shaking只对ESModule有效,对commonjs无效,对umd也无效。如果你的第三方包不支持,那就不支持。所以这里你需要更新你的包的版本以支持按需和tree-shaking依赖共享。比如我们写了一个Request库,它使用了axios。然后我们还有一个消息中心库,也是用的axios。这时候输出包中会有两个axios。这里我们使用(monorepoLernayarn)+(config.externals)实现依赖共享,只加载一份axios。还有一种情况是我们使用按需组件库。但是主工程没有按需,而是全量导入,导致两次加载element-ui。解决办法就是把主项目改成完全按需。['component',{"libraryName":"element-ui","styleLibraryName":"theme-chalk"},'element-ui',]分包。延迟加载和异步加载不必要的资源。比如有一个流程中心,在你审批的时候,同时加载上千个流程。但是你只需要使用其中之一。Vue组件支持异步加载。当组件真正被渲染时,它会被加载。Vue.component('async-example',function(resolve,reject){setTimeout(function(){//将组件定义传递给`resolve`回调resolve({template:'
