当我下次访问同一个视图时,如何使用AngularJS重用浏览器中呈现的视图



我一直在试图理解这一点,在许多网站搜索。这是我想要实现的目标。在AngularJS中,我已经实现了路由、视图和控制器。一切都很好。但是我想重用视图,一旦加载,即存储和从客户端检索,当我第二次访问它。

象下面这样

步骤1:

view1——从web服务器获取到客户端

ctrl1——从web服务器获取到客户端

步骤2

view2——从web服务器获取到客户端

ctrl2——从web服务器获取到客户端

step3(返回到view1)

view1——从浏览器本身获得。(这应该不会击中web服务器)

ctrl1——从浏览器本身获得。(这应该不会击中web服务器)

我们需要在angularjs中使用存储空间吗?如果有,怎么做?

你不需要这样做,angular默认实现了$templateCache(见这里)。模板仅在第一次从服务器请求,后续调用来自$templateCache

您可以使用$templateCache来存储从服务器加载后的模板。然后,当导航到视图时,您可以检查缓存以查看它是否存在。如果有,从那里加载。如果没有,则从服务器加载。这是$templateCache的文件。https://docs.angularjs.org/api/ng/service/美元templateCache

这也是一个关于$templateCache及其用法的很好的教程。https://thinkster.io/templatecache-tutorial

可以像下面的代码一样简单来存储你的模板

.run(function ($templateCache){
  $templateCache.put('test.html', 'Hello {{ test.user.name }}!');
});

可以通过

访问
$templateCache.get('test.html')

至于控制器,它们应该被浏览器缓存,除非你明确地告诉它不要缓存你的脚本文件。

最新更新