AngularJS:维持html刷新数据

时间:2012-09-27 08:28:09

标签: javascript html angularjs

有什么方法可以将少量数据加载到角度js中的某些缓存中,并且页面的onrefresh从缓存中加载这些数据并再次显示它?

现在问题是每当我刷新页面时,sharedServices应用程序共享的详细信息都会重新启动,因为刷新页面时会重新加载所有JS。

我有一个登录页面和一个主页。登录成功后,使用$ route我将路由到主页并将loginID广播到主页控制器。现在当我刷新这个主页或复制网址并粘贴到另一个标签时,我希望存在相同的数据。但是在我的情况下,因为htmls / javascripts被重新加载,它被初始化为null。

这里有角度技术吗?

1 个答案:

答案 0 :(得分:34)

看看this discussion

对于少量数据(< = 4k),您可以使用$cookieStore,但之后您需要查看localStorage,请注意localStorage将您的应用与HTML5兼容浏览器。

如果你不介意你的后端有一点状态,那也是一个选择。

编辑基于第一条评论

听起来你的目标是,当用户点击刷新时,页面应该看起来好像从未点过它。您必须将整个应用程序状态持久保存到localStorage(范围,DOM属性,有状态服务),这些都会随时更改。不确定这是否可取。

你可以近距离接触功能,但是:

扩展上面的答案:

  • 使用URL来描述应用程序状态,使用Angular的$ route服务。我总是喜欢this article来解释网址和状态,尽管这篇文章非常适合Ember。

  • 至于停止客户端在刷新时重新加载脚本无法做到这一点 - 最接近的就是让服务器为这些脚本返回304(未修改)代码。

  • 如上所述,范围数据和服务状态必须保留在本地存储中。

虽然刷新问题很烦人,但它实际上会迫使你认为尽可能无状态,无状态代码更容易维护和测试。如果您正在寻找好处:)