js本地存储解决方案(localStorage与userData)
WEB应用的快速发展,是的本地存储一些数据也成为一种重要的需求,实现的方案也有很多,最普通的就是cookie了,大家也经常都用,但是cookie的缺点是显而易见的,其他的方案比如:IE6以上的userData,Firefox下面的globalStorage,以及Flash的本地存储,除了Flash之外,其他的几个都有一些兼容性的问题。
sessionStorage与localStorage
Web Storage实际上由两部分组成:sessionStorage与localStorage。
sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。因此sessionStorage不是一种持久化的本地存储,仅仅是会话级别的存储。
localStorage用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。
userData
语法:
XML <Prefix: CustomTag ID=sID STYLE="behavior:url('#default#userData')" />
HTML <ELEMENT STYLE="behavior:url('#default#userData')" ID=sID>
Scripting object .style.behavior = "url('#default#userData')"
object .addBehavior ("#default#userData")
属性:
expires 设置或者获取 userData behavior 保存数据的失效日期。
XMLDocument 获取 XML 的引用。
方法:
getAttribute() 获取指定的属性值。
load(object) 从 userData 存储区载入存储的对象数据。
removeAttribute() 移除对象的指定属性。
save(object) 将对象数据存储到一个 userData 存储区。
setAttribute() 设置指定的属性值。
localStorage
方法:
localStorage.getItem(key):获取指定key本地存储的值
localStorage.setItem(key,value):将value存储到key字段
localStorage.removeItem(key):删除指定key本地存储的值
封装
1 localData = { 2 hname:location.hostname?location.hostname:'localStatus', 3 isLocalStorage:window.localStorage?true:false, 4 dataDom:null, 5 6 initDom:function(){ //初始化userData 7 if(!this.dataDom){ 8 try{ 9 this.dataDom = document.createElement('input');//这里使用hidden的input元素10 this.dataDom.type = 'hidden';11 this.dataDom.style.display = "none";12 this.dataDom.addBehavior('#default#userData');//这是userData的语法13 document.body.appendChild(this.dataDom);14 var exDate = new Date();15 exDate = exDate.getDate()+30;16 this.dataDom.expires = exDate.toUTCString();//设定过期时间17 }catch(ex){18 return false;19 }20 }21 return true;22 },23 set:function(key,value){24 if(this.isLocalStorage){25 window.localStorage.setItem(key,value);26 }else{27 if(this.initDom()){28 this.dataDom.load(this.hname);29 this.dataDom.setAttribute(key,value);30 this.dataDom.save(this.hname)31 }32 }33 },34 get:function(key){35 if(this.isLocalStorage){36 return window.localStorage.getItem(key);37 }else{38 if(this.initDom()){39 this.dataDom.load(this.hname);40 return this.dataDom.getAttribute(key);41 }42 }43 },44 remove:function(key){45 if(this.isLocalStorage){46 localStorage.removeItem(key);47 }else{48 if(this.initDom()){49 this.dataDom.load(this.hname);50 this.dataDom.removeAttribute(key);51 this.dataDom.save(this.hname)52 }53 }54 }55 }
使用方法就很简单了,这节set,get,remove就好了。
下面这个例子,在你输入之后,然后刷新页面,也会保留相应的值。
转载于:https://www.cnblogs.com/Code-Engineering/p/5745438.html
js本地存储解决方案(localStorage与userData)相关推荐
- store.js - 轻松实现本地存储(LocalStorage)
store.js 是一个兼容所有浏览器的 LocalStorage 包装器,不需要借助 Cookie 或者 Flash.store.js 会根据浏览器自动选择使用 localStorage.globa ...
- JS本地存储方式,结合案例一看就懂
前端本地存储,即数据存储在浏览器中. 常用的方法有cookie.localStorage.sessionStorage 一.Cookie(常用于获取储存登录的用户信息) 作用:用于浏览器和服务器端进行 ...
- js本地存储函数封装基于localStorage本地存储
函数封装 //基于localStorage本地存储 var store={set:function(name, value, day) { // 设置let d = new Date()let tim ...
- JS本地存储localStorage封装
// 本地存储封装函数 function getListDate(key, data = null, isPush = false) { // 如果本地存储有就获取 没有就返回空[] ...
- 本地存储-cookie|localStorage|sessionStorage|indexedDB
本地存储 本地存储 cookie 如何工作 问题 cookie标准限制 属性 expires|max-age domain&path secure HttpOnly 设置cookie 服务端设 ...
- 本地存储(cookie/localStorage)
cookie 一.初识cookie 1.cookie是什么: cookie全程HTTP Cookie,是浏览器存储数据的一种方式. 因为存储在用户本地,而不是存储在服务器上,所以是本地存储 一般会自动 ...
- 【前端知识之JS】JS本地存储
前言 本系列主要整理前端面试中需要掌握的知识点.本节介绍本地存储的四种方式,以及他们的比较和应用. 文章目录 前言 一.本地存储的方式 1.cookie 2.localStorage 3.sessio ...
- JS本地存储和会话存储的区别
1.localStorage本地存储 localStorage生命周期是永久,这意味着除非用户显示在浏览器提供的UI上清除localStorage信息,否则这些信息将永远存在.存放数据大小为一般为5M ...
- JS本地存储加载渲染页面信息、动态更新本地存储数据
本地存储数据加载到页面: 从本地存储中获取数据,并由字符串基础类型转换为对象类型(存储至堆内存中) 初始化变量data 为空数组(变量data存储在栈内存中) 将获取的数据赋值给变量data (实质为 ...
- JS本地存储(附实例)
localStorage 1.生命周期永久生效,除非手动删除,否则关闭页面也会存在 2.可以多窗口(页面)共享(同一浏览器可以共享) 3.以键值对的形式存储使用 1.存储数据:localStorage ...
最新文章
- mfc 弹框只出现一次_只出现一次的数字
- php连接到mysql数据库,PHP MySQL:连接到MySQL数据库
- why在重写equals时还必须重写hashcode方法
- scala 字符串转换数组_如何在Scala中将十六进制字符串转换为字节数组?
- WORD如何使得公式居中,公式自动编号且编号右对齐,如何交叉引用公式?
- java p=x,Java-Tutorial/20、javac和javap.md at master · allenchenx/Java-Tutorial · GitHub
- 在Eclipse里面引入dtd文件
- Apache+tomcat集群
- JS鼠标捕获DIV内选中的坐标和宽高
- 在网站添加客服QQ,打开临时回话框(不用加为好友)
- VMware卸载不干净导致安装VMware报错(无法安装服务vmware Authorization server请确保你有足够的权限)
- EDKII Build Process:EDKII项目源码的配置、编译流程[3]
- centos7 默认中文字体_centos7安装中文宋体
- 计算机毕业设计之 疫情防控志愿者管理系统
- 营收净利双双超市场预期,微盟财报给我们带来哪些启示?
- 测试用例设计方法(转)
- vmware上ubuntu虚拟机调整分辨率
- 光剑读书思想录 2014.5.7
- seo外链建设(如何正确做好seo网站外链建设)
- macbook修改账户名称