在客户端存储Javascript变量
Store Javascript variable client side
不重复:我读过很多这样的问题,它总是以"使用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,原因如下:
- 它被现代浏览器支持,包括IE。
- 您可以存储多达5MB的数据(在IE中为10),而作为cookie仅为4kb 有很多库可以使这变得容易。其中最受欢迎的是LawnChair: http://westcoastlogic.com/lawnchair/这实际上会写入多个地方,包括cookie,这样数据就不会轻易丢失。
另外,需要注意的是,你不能用localStorage存储对象,就像你不能用cookie一样,但是你可以转换它们。例如,如果您想存储Date()
,不要将其存储为new Date()
,请将其存储为:'''+Date().getTime()+'''
。
使用Cookie
如何将其存储在cookie中?对于JavaScript,我推荐使用jQuery,它可以简化很多工作。
。http://plugins.jquery.com/project/Cookie
看看HTML5本地存储
- 调用类向后变量 (JavaScript)
- 初始化父类中的变量(JavaScript/CoffeeScript 习语)
- 可以'找不到变量javascript错误
- 输出数组变量javascript
- 自提交表单访问变量javascript
- 将变量 javascript 添加到用于旋转图像的链接中
- 在文本字段中显示保存的本地存储变量 - javascript
- 将变量添加到变量 JavaScript 中
- 获取要在变量 JavaScript 中使用的用户输入值
- 如何在变量 Javascript 中删除双引号
- 使用变量 javascript 从 json 文件中获取数据
- 读取输入和打印变量 - JavaScript 和 HTML 4.01
- 传递 PHP 变量 JavaScript 窗口位置
- 重置变量 JavaScript
- 变量 JavaScript 中的变量
- 尝试使用多个函数时无法使用全局变量 - JavaScript - 初学者
- 如何按值将数组分配给另一个变量 JavaScript
- setTimout 搞砸了变量 JavaScript
- 用内部函数变量更改外部函数变量?Javascript
- 根据变量 JavaScript 增加