在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之前的浏览器缺乏向后兼容性)。