AngularJS 应用程序在经过多次查看后速度更快,并且不会在点击查看时冻结

AngularJS app quicker after having gone through multiple views and does not freeze on click to view

我很难理解为什么我的 AngularJS 应用在查看一个或多个页面后表现不同。

当我部署我的网站,清除我的缓存,然后转到该页面时,第一个团队发生的情况是,该页面有一点反应 "slow"新页面,没有任何反应,然后在一两秒后显示该页面。

在我访问受影响的页面并重试后,这种情况并没有发生。然后它更光滑。如果我在一天后访问该网站,也是如此。

我能做些什么来防止这种行为?

我使用 angular ui-路由器,$state.go 和最新的 AngularJS 版本。

这似乎提供了部分答案。稍作测试后,如果将其添加到 app.js,它将预加载所有模板:

angular
.module('app')
.run(['$state', '$templateCache', '$http',
    function ($state, $templateCache, $http) {
        angular.forEach($state.get(), function (state, key) {
            if (state.templateUrl !== undefined && state.preload !== false) {
                $http.get(state.templateUrl, {cache: $templateCache});
            }
        });
    }
]);

答案基于对类似问题的回答: