存储Javascript变量客户端

时间:2011-04-21 17:05:23

标签: javascript

不重复:我已经阅读了很多像这样的问题,它总是“使用PHP或服务器端的东西,注意注入/数据操作”。

我想在客户端存储简单的内容(保存并加载),就像谷歌地图位置一样,并希望它在刷新页面之间保持不变。

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

我该怎么办?

由于

8 个答案:

答案 0 :(得分:4)

答案 1 :(得分: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/: - )

答案 2 :(得分:2)

在客户端存储多种数据选项 - IndexedDB,localstorage,webSQL,SessionStorage,Cookies等。

索引资料

  • 可以有效地查询数据。尺寸没有限制(但体积或 磁盘驱动程序限制大小)
  • 它将以密钥对象格式存储
  • 在safari浏览器中不支持
  • 支持查询
  • 异步

localStorage的

  • 它将以键值格式存储值(值应始终为 字符串)
  • 同步
  • 如果您需要存储少量数据,则会很有帮助
  • 尺寸有限(取决于浏览器)

会话存储

  • 如果用户关闭标签,则会清除数据

您可以查看YDN-DB here

答案 3 :(得分:1)

您必须牢记的关键问题是您无法信任客户。如果客户可以询问任何位置,那么您可以将该位置存储在客户端。但是你无法确认从客户端获得的价值是你给该客户的价值。

这就是“数据操作”的含义[注入是一种特殊类型的数据操作,因为如果你将它作为SQL查询或其他脚本的一部分使用它,它会被操作以包含诸如结束引号之类的东西。 ]

答案 4 :(得分:1)

我强烈建议使用localStorage,原因如下:

  1. 现代浏览器支持它, 包括IE。
  2. 您可以存储最多5MB的数据(IE中为10),其中cookie仅为4KB
  3. 有很多库可以让这很容易。其中最受欢迎的是LawnChair:http://westcoastlogic.com/lawnchair/这实际上会写入多个地方,包括cookie,这样数据就不会轻易丢失。
  4. 另外,作为注释,您不能使用localStorage存储对象,就像您不能使用cookie一样,但是您可以转换它们。例如,如果您要存储Date(),请不要将其存储为new Date(),将其存储为:'\'+Date().getTime()+'\'。其他对象也一样。

答案 5 :(得分:0)

答案 6 :(得分:0)

如何将其存储在cookie中? 对于JavaScript,我建议使用jQuery,这简化了大量工作。

e.g。 http://plugins.jquery.com/project/Cookie

答案 7 :(得分:0)