在Web浏览器中使用window.name作为本地数据缓存

时间:2010-01-09 21:44:11

标签: jquery json browser javascript

我正在阅读有关cookie和其他相关客户端存储选项的内容,并阅读有关使用window.name作为各种数据缓存的信息:

http://en.wikipedia.org/wiki/HTTP_cookie#window.name

虽然它肯定会让事情变得不那么令人满意 - 而且我不会给它涂上糖衣,它绝对是最真实意义上的黑客 - 看起来很有希望。我需要存储大约10K的JSON作为客户端缓存,现在我将其与页面一起发送,当我读到它时,它似乎真的符合我的需求并减少流量。

我很想知道是否有人实施了这一点,以及您可能给出的建议。陷阱?建议?浏览器之间的差异?某种用例非常糟糕?

赞成

  • 本地存储
  • 基本上每个支持javascript的浏览器都可用

缺点

  • 仅支持字符串
  • XSS问题
  • window.name中毒
  • 泄露给其他网站的信息

替代

2 个答案:

答案 0 :(得分:5)

有许多方法可以存储本地数据,Flash LSO,HTML 5本地存储,Cookie。谷歌齿轮。 看看PersistJS,一个js客户端库就可以了。

Ajaxian中的这篇文章详细阐述了它。

答案 1 :(得分:2)

这似乎首先在这里实施:http://www.thomasfrank.se/sessionvars.html

然而,如果这种技术起飞,我会打赌浏览器最终会因为它继承了XSS的漏洞而对其进行打击。

更长期的解决方案可能是:http://en.wikipedia.org/wiki/DOM_storage源于HTML 5规范(最大的缺点是IE 8之前的浏览器缺乏向后兼容性)。