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

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

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

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

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

优点

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

缺点

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

备择方案

  • PersistJS – http://pablotron.org/?cid=1557
  • dojox.storage – http://docs.dojocampus.org/dojox/storage

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

阿贾克斯的这篇文章详细阐述了它。

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

但是,如果这种技术起飞,我会打赌浏览器最终会因为它inheritanceXSS的漏洞而打击它。

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