在客户端存储Javascript变量

Store Javascript variable client side

本文关键字:变量 Javascript 存储 客户端      更新时间:2023-09-26

不重复:我读过很多这样的问题,它总是以"使用PHP或服务器端东西,并注意注入/数据操作"结束。

我想在客户端存储简单的东西(保存和加载),像谷歌地图的位置,并希望它停留在刷新页面之间。

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

我该怎么做?

谢谢

您可以使用cookies或localStorage

如果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/: -)

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

IndexedDB

  • 数据查询效率高。尺寸不限(但体积或尺寸不限)磁盘驱动程序限制大小)
  • 将以Key-Object格式存储
  • safari浏览器不支持
  • <
  • 支持查询/gh>异步>
本地文件

  • 它将以键值格式存储值(值应该总是)字符串)
  • 同步>
  • 如果您需要存储少量数据,可以使用
  • 限制大小(取决于浏览器)

会话存储
  • 如果用户关闭选项卡,它将清除数据

您可以在这里查看YDN-DB

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

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

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

  1. 它被现代浏览器支持,包括IE。
  2. 您可以存储多达5MB的数据(在IE中为10),而作为cookie仅为4kb
  3. 有很多库可以使这变得容易。其中最受欢迎的是LawnChair: http://westcoastlogic.com/lawnchair/这实际上会写入多个地方,包括cookie,这样数据就不会轻易丢失。

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

使用Cookie

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

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

看看HTML5本地存储