饼干的替代品

时间:2010-01-04 15:59:43

标签: javascript internet-explorer cookies browser

我构建了可移植的HTML / Javscript原型,这些原型旨在通过电子邮件/ sharepoint进行压缩和共享。这里的关键词是“便携式” - 运行这些原型不需要服务器 - 只需一个支持JavaScript的浏览器。而且没有数据库。

一些原型要求我保留数据(只是为了展示潜在的功能)。我目前通过使用cookie来做到这一点。这似乎适用于Firefox,Chrome等,但Internet Explorer似乎工作方式不同。

一旦在IE6和7中检测到来自域的所有cookie的最大大小为4096字节(我还没有测试过8),cookie就会停止工作。一旦达到此限制,那么即使从cookie中读取也会停止发生并且原型会中断。

有没有其他方法可以在不使用服务器和数据库的情况下保留数据?

非常感谢任何想法。

5 个答案:

答案 0 :(得分:6)

将数据存储在隐藏字段中(如果需要,甚至可以存储多个字段)。

将用于从cookie中读取的代码包装到单独文件中的类/函数中,然后您可以轻松地将文件交换为实时/样本实例 - 可能与注释掉一行一样容易,并且没有评论对方。

根据评论请求编辑: 只要您在多个页面中的隐藏字段中推送数据,这将适用于多个页面。如果您不希望从一个页面到下一个页面执行POSTS,那么您可以将页面包装到一个框架中,然后将隐藏字段放在未显示的框架元素中(在此场景中,字段在技术上不需要隐藏)。

这是什么,访问的页面是否有一个FRAME标记,指向两个不同的页面。第一页是您的应用程序本身,它占用了所有可见的空间。第二页只是一个页面,它将保存一个或多个将保留数据的控件,而第二页根本不可见(对用户而言)。由于这些页面都是同一个“域”的一部分,因此框架子项与其中一个兄弟姐妹交谈并将数据读/写到隐藏页面的字段是一件容易的事。

这就是围绕cookie限制的方式,文本输入字段在技术上仅受计算机内存和网络吞吐量超时的限制。例如,我之前看过一个隐藏的字段,其中包含20MB的数据(想想最恶毒的ViewStates)。

答案 1 :(得分:5)

虽然目前还没有广泛使用,但有HTML5 webstorage / localstorage。

答案 2 :(得分:5)

查看YUI Storage

答案 3 :(得分:3)

Dojo Storage可让您节省高达100k

答案 4 :(得分:0)

关于HTML5存储API的情况已经取得了进展,因为这被提出并且最初由jldupont here回答。

目前,Opera Mini是唯一不支持它的主流浏览器。

Source,访问时间为2013年8月22日。