【发布时间】:2016-12-27 00:08:59
【问题描述】:
当我在阅读一本关于 Angular2 的书时,我发现了一段说我们可以通过 Angular2 的伴侣来创建 SPA。据我了解,单页应用程序就是这样一个网站,它主要在客户端运行,只在需要时对服务器进行一些异步调用。
问题是,然后我阅读了关于 Angular2 中路由的一章,我想出了一个想法,当我们有很多路由时,浏览器必须加载所有组件以及所有不同路由的静态资产,当我们去一个根路径,所以它必须真的减慢页面加载,对吗?
如果我的猜测不正确,请解释一下。
【问题讨论】:
-
第一个页面加载会更慢(因为它需要加载代码以使其表现得像 SPA),但第二/第三/等页面加载应该更快,因为它不应该需要从服务器获取尽可能多的(如果有的话)信息。您可以使用服务器端渲染来帮助加快第一个页面的加载速度。
-
@therobinkim 怎么可能在几次之后加载速度更快? Angular2 是否强制加载的代码保留在缓存中?
-
不,我的意思是:在 SPA 中,加载
index.html将比多页应用程序花费更长的时间......但从index.html到about.html将花费更少的时间, bc 只有一些新代码需要从服务器获取,只有一些浏览器需要重新渲染,等等。我不是指一遍又一遍地刷新index.html。 -
因此,当用户转到根路径时,Angular2 会加载所有静态资产以及所有不同路由的所有组件代码,还是会在需要时异步获取数据?
-
我认为 Webpack 可以处理这个问题(我相信这是
angular-cli的一部分)angular.io/docs/ts/latest/guide/webpack.html