AngualrJS:维持html刷新数据

Aki*_*Aki 28 html javascript angularjs

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

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

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

这里有角度技术吗?

Roy*_*ove 34

看看这个讨论.

对于少量数据(<= 4k),您可以使用$ cookieStore,但之后您需要查看localStorage,请记住localStorage将您的应用绑定到符合HTML5的浏览器.

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

根据第一条评论编辑

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

尽管如此,你可以近距离接触功能:

为了扩展上面的答案:

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

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

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

尽管刷新问题令人讨厌,但它实际上会迫使您尽可能无所畏惧地思考,而无状态代码更容易维护和测试.如果你正在寻找一个好处:)