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});
}
});
}
]);
答案基于对类似问题的回答:
我很难理解为什么我的 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});
}
});
}
]);
答案基于对类似问题的回答: