有什么方法可以将少量数据加载到angular js的某些缓存中,页面的onrefresh从缓存中加载这些数据并再次显示?
现在的问题是,每当我刷新页面时,由于所有JS都会在刷新页面时重新加载,因此将重新启动sharedServices应用共享的详细信息。
我有一个登录页面和一个主页。登录成功后,我使用$ route路由到主页,并将loginID广播到Homepage控制器。现在,当我刷新此主页或复制url并粘贴到另一个选项卡中时,我希望存在相同的数据。但就我而言,由于htmls / javascripts已重新加载,因此将其初始化为null。
这里有可用的角度技术吗?
看一下这个讨论。
对于少量数据(<= 4k),可以使用$ cookieStore,但是在那之后,您需要研究localStorage,请记住,localStorage将您的应用程序与HTML5兼容的浏览器相关联。
如果您不介意后端有一点状态,那也是一种选择。
*根据第一个评论进行 *编辑
听起来您的目标是,当用户单击刷新时,页面看起来应该好像他们从未点击过页面一样。每当这些更改发生时,您就必须将整个应用程序状态持久化到localStorage(范围,DOM属性,有状态服务)。不确定是否建议这样做。
但是,您可以足够接近地起作用:
扩展上面的答案:
使用URL通过Angular的$ route服务描述应用程序状态。我一直喜欢这篇文章来解释URL和状态,尽管该文章是Ember特有的。
至于阻止客户端在刷新时重新加载脚本,则无法执行此操作-最接近的是让服务器为这些脚本返回304(未修改)代码。
如上所述,范围数据和服务状态必须保留在本地存储中。
尽管刷新问题很烦人,但实际上迫使您进行尽可能无状态的思考,并且无状态代码更易于维护和测试。如果您正在寻找上行空间:)