加入收藏 | 设为首页 | 会员中心 | 我要投稿 晋中站长网 (https://www.0354zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

Web性能优化: 使用Webpack分离数据的正确方法

发布时间:2019-03-06 17:39:00 所属栏目:优化 来源:前端小智
导读:制定向用户提供文件的最佳方式可能是一项棘手的工作。 有很多不同的场景,不同的技术,不同的术语。 在这篇文章中,我希望给你所有你需要的东西,这样你就可以: 了解哪种文件分割策略最适合你的网站和用户 知道怎么做 根据 Webpack glossary,有两种不同类

因此,你注意到你的结帐页面完全独特的代码是 7KB。 该网站的其余部分是 300 KB。 我会看着这个,然后说,我不打算把它拆分,原因如下:

  •  提前加载不会变慢。记住,你是在并行加载所有这些文件。查看是否可以记录 300KB 和 307KB 之间的加载时间差异。

* 如果你稍后加载此代码,则用户必须在单击“TAKE MY MONEY”之后等待该文件 - 你希望延迟的最小的时间。

  •  Code splitting 需要更改应用程序代码。 它引入了异步逻辑,以前只有同步逻辑。 这不是火箭科学,但我认为应该通过可感知的用户体验改进来证明其复杂性。

让我们看两个 code splitting 的例子。

Polyfills

我将从这个开始,因为它适用于大多数站点,并且是一个很好的简单介绍。

我在我的网站上使用了一些奇特的功能,所以我有一个文件可以导入我需要的所有polyfill, 它包括以下八行:

  1. // polyfills.js   
  2. require('whatwg-fetch');  
  3. require('intl');  
  4. require('url-polyfill');  
  5. require('core-js/web/dom-collections');  
  6. require('core-js/es6/map');  
  7. require('core-js/es6/string');  
  8. require('core-js/es6/array');  
  9. require('core-js/es6/object'); 

在 index.js 中导入这个文件。

  1. // index-always-poly.js  
  2. import './polyfills';  
  3. import React from 'react';  
  4. import ReactDOM from 'react-dom';  
  5. import App from './App/App';  
  6. import './index.css';  
  7. const render = () => {  
  8.   ReactDOM.render(<App />, document.getElementById('root'));  
  9. }  
  10. render(); // yes I am pointless, for now 

使用 bundle splitting 的 Webpack 配置,我的 polyfills 将自动拆分为四个不同的文件,因为这里有四个 npm 包。 它们总共大约 25 KB,并且 90% 的浏览器不需要它们,因此值得动态加载它们。

(编辑:晋中站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读