差异加载是一种策略,在部署的应用程序中,CLI构建两个单独的包。
默认情况下,角度CLI的版本8及更高版本支持差速加载。对于工作区中的每个应用程序项目,您可以配置如何基于应用程序项目中的浏览器列表和tsconfig.json文件生成构建。
如果我们有两个具有差异加载特性的单独包,它会导致构建大小问题和应用程序性能吗?
请分享您的建议,以便我可以选择这个功能与我的当前项目。
发布于 2019-12-04 15:19:07
差异加载是浏览器根据自身功能在现代JavaScript还是遗留JavaScript之间进行选择的过程。在默认情况下,我们通过执行应用程序的现代构建(es2015)和遗留构建(es5)来利用这一点。当用户加载应用程序时,他们将自动获得所需的包。
简而言之,它将使较新的浏览器与更新的功能捆绑在一起,而旧的浏览器将获得一个传输版本。因此,是的,它将增加服务器上应用程序的大小,但不会增加将要下载的包(您不会同时下载两个包等等)。
例如,如果您查看生成的index.html:
<script src="runtime-es2015.33c6d44d6f111520cede.js" type="module"></script>
<script src="runtime-es5.33c6d44d6f111520cede.js" nomodule defer></script>带有type="module的type="module标记将由较新的浏览器下载,它们将忽略带有nomodule属性的<script>:
-- nomodule属性是一个布尔属性,它阻止在支持模块脚本的用户代理中执行脚本。
https://stackoverflow.com/questions/59178721
复制相似问题