0

除了 cookie,我还能使用哪些其他方式来存储小块信息?

我正在构建一个使用 iframe 加载某些内容的小部件。在该 iframe 中,我想保存应用程序的不同状态,但是当小部件与 iframe 内的内容不在同一个域中时(99% 的时间),我遇到了问题。

有任何想法吗?

哦,这是 jQuery。

4

3 回答 3

0

other than Jquery you can use
1. hashtags to save the state
2.HTML5 History API
3.HTML5 localstorage

于 2013-02-05T07:56:44.503 回答
0

如果您想为特定用户保存持久数据,则 Cookie 是一种可行的方法,但是您可以使用 HTML5,不同之处在于,除非您使用 HTML5,否则使用 HTML 存储的数据不会与服务器明确共享sessionStorage。(会话存储使用相同的 API,但专门针对用户会话存储数据,并且在会话关闭后不持久);

使用 HTML5 API 保存状态实际上非常简单,它也是事件驱动的,这意味着每当数据被修改时都会触发一个事件,从而允许您在 javascript / jQuery 中侦听更改并采取相应的行动。

localStorage.name = 'David';

将在 localStorage 中创建一个名为 name 的变量,其值为 David。关闭浏览器,重新打开并 console.log 变量,你会发现它仍然存在。

请注意 localStorage,尽管以前的文档只会存储数据字符串,并且如果您想存储/检索它们,则必须对对象进行序列化和反序列化。

实际规格要大得多,您可以在此处阅读更多信息:

HTML5 存储 API

使用 HTML5 存储

使用 HTML5 存储的提示和技巧

如果您不是在寻找持久数据,您可以使用 jQuery 的.data()方法来存储针对 DOM 节点的任意数据以供以后使用。这非常有用,当然如果您正在开发小部件并且需要针对 DOM 节点存储非持久状态。

额外的:

缺少 ie7 和 ie8 支持,但您可以使用诸如 modernizr.js 之类的框架来强制旧版浏览器与 HTML 5 兼容。

于 2013-02-05T08:08:17.140 回答
0

我不知道为什么每个人都告诉你只使用 HTML5 本地存储。您的问题是安全问题之一。

请参阅我上面的评论,以获取社区 wiki 链接。另请参阅https://www.owasp.org/index.php/HTML5_Security_Cheat_Sheethttp://dev.w3.org/html5/webstorage/#security-localStorage

于 2013-02-05T08:50:12.047 回答