Javascript 在浏览器中存储持久数据

Javascript 在浏览器中存储持久数据,javascript,cookies,Javascript,Cookies,对于我的web应用程序,我需要存储跨越多个页面的表单输入,直到我最终处理/操作它们以产生一些结果(主要是格式化输入的数据并以某种布局显示)。我想我的选择是- 继续将用户输入发送到服务器,将其存储在某个数据库中,仅在那里执行最终操作,并显示结果 当用户填写表单时,将输入存储在浏览器的存储器中,最后使用存储的数据来操作和显示结果 我非常想使用第二种方法,也许一种可能的方法是使用cookie,但我担心我可能会达到cookie数据存储的上限。我也愿意理解第一种方法或任何第三种方法的优点 谢谢 达到coo

对于我的web应用程序,我需要存储跨越多个页面的表单输入,直到我最终处理/操作它们以产生一些结果(主要是格式化输入的数据并以某种布局显示)。我想我的选择是-

  • 继续将用户输入发送到服务器,将其存储在某个数据库中,仅在那里执行最终操作,并显示结果

  • 当用户填写表单时,将输入存储在浏览器的存储器中,最后使用存储的数据来操作和显示结果

  • 我非常想使用第二种方法,也许一种可能的方法是使用cookie,但我担心我可能会达到cookie数据存储的上限。我也愿意理解第一种方法或任何第三种方法的优点


    谢谢

    达到cookie的存储限制可能表示您试图在客户端存储太多。将其存储在服务器端(如会话)可能是明智的。然后,会话的密钥可以存储在cookie中


    另一种方法是不让请求跨越多个页面,只将数据存储在客户端,而不是作为cookie,而是作为不同的表单字段和/或文本字段(它们可能被隐藏)。这种方法的优点是它不会像你所做的那样达到cookie限制。它还使您的服务器端代码更容易/更干净,因为它不必跟踪状态(如果跨越页面,您总是必须这样做,这也是您首先达到cookie限制的原因)。

    通常cookie的最大大小为4k,因此您可以在其中存储相当多的数据

    在验证cookie中的所有信息时要小心—所有信息都驻留在客户端浏览器中,并且站点用户可以随时轻松地对其进行操作

    你没有说你使用哪个平台。Spring Webflow正是您想要的表单处理类型:

    即使您不使用Java,也可以使用一些原则


    编辑:大型/复杂持久性cookie的另一个缺点是,您必须确保部署的任何新代码都向后兼容所有已发布的cookie。

    我建议将数据存储在会话变量中,直到进入最后一步,而不是存储在cookie中。我认为这对您的数据更安全,因为用户没有直接访问数据的权限,所以您可以边走边验证。

    使用Web存储(您可以在客户端存储大约5MB的文本或二进制数据)

    Firefox演示:

    以下web浏览器支持DOM存储:

    • Internet Explorer 8
    • Firefox 2用于会话存储,3.5用于本地存储
    • 狩猎4
    只需谷歌搜索
    sessionStorage
    localStorage
    对象

    现代webkit浏览器也支持客户端sql

    编辑:

    我不确定您想做什么,但使用AJAX,您可以将所有内容存储在javascript变量中,服务器端数据库或会话是一个不错的选择。

    您可以使用一个小型Flash电影通过Flash的共享内存Api存储一些数据,或者查看一下。

    也可以考虑,当你的网站向服务器发出请求时,你在cookie中存储的每个字节都必须被发送。

    有点晚了,但是谷歌Goice已经被弃用。请参阅Google Gears博客。@jww您对一个5年的答案有何期待?:-D