Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 预加载ng视图以实现更平滑的导航_Angularjs - Fatal编程技术网

Angularjs 预加载ng视图以实现更平滑的导航

Angularjs 预加载ng视图以实现更平滑的导航,angularjs,Angularjs,我正在使用$location.path()在我的angular网站中加载新视图。 我的页面看起来像: <html> <head> </head> <body> <div data-ng-view="" ></div> </body> </html> 您可以使用更高级的库来管理状态和视图,例如 它支持在呈现嵌套状态之前(通过属性)预加载所需的每个资源,以避免界面闪烁,但您也可以在呈现视图后单独加载所需

我正在使用$location.path()在我的angular网站中加载新视图。 我的页面看起来像:

<html>
<head>
</head>
<body>
<div data-ng-view="" ></div>
</body>
</html>

您可以使用更高级的库来管理状态和视图,例如

它支持在呈现嵌套状态之前(通过属性)预加载所需的每个资源,以避免界面闪烁,但您也可以在呈现视图后单独加载所需的每个资源。如果您不想重构应用程序以使用ui路由器(imo使每个应用程序都更易于管理),那么您将不得不使用$templateCache并手动管理视图的资源


您可以尝试的一个技巧是让视图的控制器在渲染后加载所需的资源。此外,也许你的应用程序视图中有重复的部分,试着在单独的模板中提取它们,如果可以的话,可以重用它们。如果您可以拆分应用程序,使其不会在每次更改视图时重新渲染所有内容,则可能会对渲染速度产生有益影响。

多亏了Baba。但是我找到了一个解决方案,它不需要改变我的路径(并且使用另一个库,比如Angular UI Router(顺便说一下,它是超级的!))


我的解决方案:使用$templateCache预加载我的模板并添加动画(漂亮的tuto:+)

我找到了关于它的信息()。但它不能说明angular ui router是否比ngRouteIt更快,它更具可配置性,总体性能更好(事情做起来更容易,也更易于管理)。它不一定更快,但更易于管理,通常会产生更好的结构化代码。在结构更好的代码中,更容易发现渲染问题。然而,这并不是一个能自动加速你的应用程序的灵丹妙药。这只是ngRoute的一个稍好的替代方案。
myApp.run(function ($templateCache, $http) {
        $http.get('Template1.html', { cache: $templateCache });
    });