1

AngularJS 中的任何特殊功能都可以在页面刷新后记住变量,我有几件事需要记住,即选项卡位置。

我在这里考虑 cookie,但我注意到 jquery-ui 过去也这样做,但他们不赞成使用它,可能不是要走的路?

还有一个 cookie 会一直存在,直到它被删除或过期,而不仅仅是当前会话?

然后我想到了 Html 5 本地存储,但这让我想到如果浏览器不支持 html 5 本地存储怎么办?有什么可以说“使用 html 5 本地存储(如果可用)”或者“使用 cookie”吗?

谢谢

4

3 回答 3

3

有一项服务可以满足您的需求:使用 cookie 作为备份的本地存储

https://github.com/grevory/angular-local-storage

于 2013-07-29T16:38:33.187 回答
1

Modernizr是您所需要的,这里有一个与您类似的问题:

确定是否支持 Web Storage

于 2013-07-29T16:40:27.950 回答
0

根据您要存储的内容,您有多种选择:

如果它与 UI 状态相关,如您所说,我会选择 hashbang,就像 Rob Di Marco 建议的那样。hashbang 实际上甚至最初设计为指向某个 UI 状态,即文档中的一个位置,因此它非常适合此目的,而且更好的是,它留下了历史记录,因此后退按钮可以工作。

如果它与会话相关,例如来自服务器的缓存访问令牌,cookie 是一种方式,是的,但是考虑到围绕它们的法律数量,这些天使用 cookie 充其量是复杂的。你最好使用本地存储,例如 John Tseng 建议的 angular-local-storage 适配器,但我个人会避免使用 cookie 作为后备,除非你想聘请律师来弄清楚你需要做什么。如果它不会以任何方式阻止应用程序运行,而只是稍微降低了体验,那么为改善这种体验付出额外的努力可能是不值得的。你会有更好的事情需要改进。

于 2013-07-29T16:48:01.850 回答