We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
小部分页面依赖体积较大的js库,影响了首屏加载时间
可以对依赖库进行按需加载,
import('path/to/module') -> Promise
var paypalScript = document.createElement('script'); paypalScript.type = "text/javascript"; paypalScript.src = 'https://www.paypalobjects.com/api/checkout.js'; paypalScript.id = 'paypalScript'; document.body.appendChild(paypalScript); paypalScript.addEventListener('load', function () { // do something... });
当首屏是不需要依赖此库的页面,则不会加载此库。对于需要此依赖的页面,最终加载大小不变。
按需加载的库不论是被webpack打包成单独的chunk或是通过script标签加载,都会成为一个单独的文件,且在对应加载代码执行时开始才加载。整体加载速度会慢于正常将库引入。 从不需要依赖库的页面跳转至需要依赖库的页面,将会有较长一段加载此库的加载时间。
满足以下条件则建议使用按需加载:
本解决方案主要摘录于 Web 前端构建预渲染技术-孙凤鸣-美团
首屏加载时,加载至FCP(first contentful paint)的时间过长,页面加载过程有撕裂感
将FCP时间节点提前,改善页面加载时的用户体验
一些结构、逻辑极其简单,几乎不依赖其他js库的页面如广告页、展示页,在首屏加载时也一样加载了单页应用的所有依赖。
通过webpack的配置(主要是entry和html webpack plugin),将单页应用拆解为多个单页应用
参考文章:
大大加快了依赖少的页面的加载时间,使对应页面只加载自己需要的依赖库。
由于拆解成了多个单页应用,跳转至另一个单页应用时将需要重新加载。服务器也需要对路由进行额外的配置。
将逻辑简单的广告页,展示页、或者依赖库差距大的几部分页面剥离成新的单页应用,重新配置依赖和路由,加快他们的加载速度。此时它们在同一个工程中,方便依赖的共用和维护管理
The text was updated successfully, but these errors were encountered:
No branches or pull requests
场景一
面临问题:
小部分页面依赖体积较大的js库,影响了首屏加载时间
解决方案:
可以对依赖库进行按需加载,
import('path/to/module') -> Promise
按需加载;解决痛点:
当首屏是不需要依赖此库的页面,则不会加载此库。对于需要此依赖的页面,最终加载大小不变。
缺点:
按需加载的库不论是被webpack打包成单独的chunk或是通过script标签加载,都会成为一个单独的文件,且在对应加载代码执行时开始才加载。整体加载速度会慢于正常将库引入。
从不需要依赖库的页面跳转至需要依赖库的页面,将会有较长一段加载此库的加载时间。
使用建议:
满足以下条件则建议使用按需加载:
场景二
本解决方案主要摘录于 Web 前端构建预渲染技术-孙凤鸣-美团
面临问题:
首屏加载时,加载至FCP(first contentful paint)的时间过长,页面加载过程有撕裂感
解决方案:
解决痛点:
将FCP时间节点提前,改善页面加载时的用户体验
使用建议:
场景三
面临问题:
一些结构、逻辑极其简单,几乎不依赖其他js库的页面如广告页、展示页,在首屏加载时也一样加载了单页应用的所有依赖。
解决方案:
通过webpack的配置(主要是entry和html webpack plugin),将单页应用拆解为多个单页应用
参考文章:
解决痛点:
大大加快了依赖少的页面的加载时间,使对应页面只加载自己需要的依赖库。
缺点:
由于拆解成了多个单页应用,跳转至另一个单页应用时将需要重新加载。服务器也需要对路由进行额外的配置。
使用建议:
将逻辑简单的广告页,展示页、或者依赖库差距大的几部分页面剥离成新的单页应用,重新配置依赖和路由,加快他们的加载速度。此时它们在同一个工程中,方便依赖的共用和维护管理
The text was updated successfully, but these errors were encountered: