除了 cookie,我还能使用哪些其他方式来存储小块信息?
我正在构建一个使用 iframe 加载某些内容的小部件。在该 iframe 中,我想保存应用程序的不同状态,但是当小部件与 iframe 内的内容不在同一个域中时(99% 的时间),我遇到了问题。
有任何想法吗?
哦,这是 jQuery。
other than Jquery you can use
1. hashtags to save the state
2.HTML5 History API
3.HTML5 localstorage
如果您想为特定用户保存持久数据,则 Cookie 是一种可行的方法,但是您可以使用 HTML5,不同之处在于,除非您使用 HTML5,否则使用 HTML 存储的数据不会与服务器明确共享sessionStorage
。(会话存储使用相同的 API,但专门针对用户会话存储数据,并且在会话关闭后不持久);
使用 HTML5 API 保存状态实际上非常简单,它也是事件驱动的,这意味着每当数据被修改时都会触发一个事件,从而允许您在 javascript / jQuery 中侦听更改并采取相应的行动。
localStorage.name = 'David';
将在 localStorage 中创建一个名为 name 的变量,其值为 David。关闭浏览器,重新打开并 console.log 变量,你会发现它仍然存在。
请注意 localStorage,尽管以前的文档只会存储数据字符串,并且如果您想存储/检索它们,则必须对对象进行序列化和反序列化。
实际规格要大得多,您可以在此处阅读更多信息:
如果您不是在寻找持久数据,您可以使用 jQuery 的.data()
方法来存储针对 DOM 节点的任意数据以供以后使用。这非常有用,当然如果您正在开发小部件并且需要针对 DOM 节点存储非持久状态。
额外的:
缺少 ie7 和 ie8 支持,但您可以使用诸如 modernizr.js 之类的框架来强制旧版浏览器与 HTML 5 兼容。
我不知道为什么每个人都告诉你只使用 HTML5 本地存储。您的问题是安全问题之一。
请参阅我上面的评论,以获取社区 wiki 链接。另请参阅https://www.owasp.org/index.php/HTML5_Security_Cheat_Sheet和http://dev.w3.org/html5/webstorage/#security-localStorage