【问题标题】:Store Javascript variable client side存储 Javascript 变量客户端
【发布时间】:2011-04-21 17:05:23
【问题描述】:

不重复:我读过很多这样的问题,但最后总是“使用 PHP 或服务器端的东西,并注意注入/数据操作”。

我想在客户端存储简单的东西(保存和加载),例如 Google 地图位置,并希望它在页面刷新之间保持不变。

我不想使用 PHP 或任何服务器端的东西。

我该如何继续?

谢谢

【问题讨论】:

    标签: javascript


    【解决方案1】:

    您可以使用cookieslocalStorage

    【讨论】:

    【解决方案2】:

    如果 html5 不是问题,我会说 localstorage 是要走的路:

    
    //set value
     localStorage.setItem('todoData', this.innerHTML);
    
    

    //read value if ( localStorage.getItem('todoData') ) { edit.innerHTML = localStorage.getItem('todoData'); }

    http://net.tutsplus.com/tutorials/html-css-techniques/quick-tip-learning-about-html5-local-storage/ :-)

    【讨论】:

      【解决方案3】:

      在客户端存储数据有多种选择 - IndexedDB、localstorage、webSQL、SessionStorage、Cookies 等。

      索引数据库

      • 可以高效地查询数据。大小没有限制(但体积或 磁盘驱动程序限制大小)
      • 它将以 Key-Object 格式存储
      • safari 浏览器不支持此功能
      • 支持查询
      • 异步

      本地存储

      • 它将以键值格式存储值(值应始终 字符串)
      • 同步
      • 在需要存储少量数据时很有帮助
      • 大小有限(取决于浏览器)

      会话存储

      • 如果用户关闭选项卡,则会清除数据

      您可以查看YDN-DB here

      【讨论】:

        【解决方案4】:

        您必须牢记的关键问题是您不能信任客户。如果客户端可以请求任何位置,那么您可以将位置存储在客户端。但是您无法确认您从客户端返回的值是您给予该客户端的值。

        这就是“数据操作”的含义[注入是一种特殊类型的数据操作,因为如果您将其用作 SQL 查询或其他脚本的一部分,则可以对其进行操作以包含结束引号之类的内容。 ]

        【讨论】:

        • 当然可以,但我再也找不到位置了!那只是一个静态网页……他们可以用脚本及其变量为所欲为。
        • 我同意你的观点,Matthieu,你想存储的数据可以存储。我不确定为什么人们对在本地存储数据如此紧张。除非它像密码或银行密码或 5MBs+(由于目前的技术限制),否则真的没关系。无论如何可能发生的最坏情况是什么?
        【解决方案5】:

        出于以下几个原因,我强烈建议使用 localStorage:

        1. 现代浏览器支持, 包括 IE。
        2. 您最多可以存储 5MB 的数据(在 IE 中为 10 个),而 cookie 仅为 4KB
        3. 有很多库可以让这变得简单。其中最受欢迎的是 LawnChair:http://westcoastlogic.com/lawnchair/ 这实际上会写入多个位置,包括 cookie,因此数据不会轻易丢失。

        另外,请注意,您不能使用 localStorage 存储对象,就像您不能使用 cookie 一样,但是您可以转换它们。例如,如果您想存储Date(),请不要将其存储为new Date(),将其存储为:'\'+Date().getTime()+'\'。其他对象也一样。

        【讨论】:

          【解决方案6】:

          【讨论】:

            【解决方案7】:

            如何将其存储在 cookie 中? 对于 JavaScript,我推荐使用 jQuery,它可以简化很多工作。

            例如http://plugins.jquery.com/project/Cookie

            【讨论】:

              【解决方案8】:

              【讨论】:

                猜你喜欢
                • 2014-10-13
                • 1970-01-01
                • 1970-01-01
                • 2011-12-25
                • 2016-03-30
                • 1970-01-01
                • 1970-01-01
                • 2016-10-27
                • 2013-09-30
                相关资源
                最近更新 更多