1

我一直在阅读有关延迟加载代码的内容。

使用延迟加载,只会加载所需的代码,并且这样做,您的初始加载会更快(因为您将加载更少的代码)并且您的整体速度会根据需要更快。

这是我理解的。在单页应用程序中,最初将整个页面加载到浏览器上。我们使用 webpack 之类的模块捆绑器将应用程序捆绑到单个页面中。一切都很好。现在,如果应用程序大小很大,加载时间会增加。为了提高性能,我们可以将捆绑包分成单独的块,仅在需要时才加载。我的问题是,如果我们必须将页面分成块,它是否仍然是单页应用程序,因为浏览器必须在需要时向服务器请求这些块?我觉得我的知识存在差距,我不知道缺少什么。

4

1 回答 1

1

传统的 Web 应用程序过去使用回发到服务器来获取 HTML 以呈现新页面。然后 AJAX 出现了,应用程序能够异步呈现数据,从而确保用户无需等待浏览器在回发时刷新以呈现新页面。
现代 Javascript 库(如 Angular、React 等)带来了单页应用程序 (SPA) 模型,该模型在单个页面内运行,而无需在用户浏览网站时重新加载浏览器(即整个应用程序只有一个容器页面,例如index.html)。即使使用代码拆分和块的延迟加载,应用程序开发人员也可以确保用户获得愉快的体验,例如显示进度条或加载微调器(使用React Suspense)。这比每次都等待页面重新加载的令人沮丧的体验要好得多。
Webpack 确保 chunkhash 仅针对之前构建的源代码发生更改的块进行更改。这有助于利用浏览器缓存,以便块的请求不需要每次都去服务器。希望这有帮助!

于 2020-12-13T18:01:41.837 回答