您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > HTML5规范的本地存储
HTML5移动Web开发广州大学华软软件学院第3讲HTML5规范的本地存储HTML5移动Web开发第2页主要内容1.概述2.localStorage3.sessionStorage4.Storage事件监听5.练习与习题HTML5移动Web开发第4页1、概述HTML5移动Web开发第5页1、概述--WebStorage•WebStorage是HTML5中本地存储的解决方案之一。•在HTML5的WebStorage概念引入之前除去IEUserData、FlashCookie、GoogleGears等看名字就不靠谱的解决方案,浏览器兼容的本地存储方案只有使用cookie。•有同学可能会问,既然有了cookie本地存储,为什么还要引入WebStorage的概念?HTML5移动Web开发第6页Cookie(小饼干)•有时也用其复数形式Cookies,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。•Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie)。HTML5移动Web开发第7页主要用途•服务器可以利用Cookies包含信息的任意性来筛选并经常性维护这些信息,以判断在HTTP传输中的状态。•1、Cookies最典型的应用是判定注册用户是否已经登录网站。•2、“购物车”之类处理。用户可能会在一段时间内在同一家网站的不同页面中选择不同的商品,这些信息都会写入Cookies,以便在最后付款时提取信息。HTML5移动Web开发第8页Cookie肿么了•缺陷:1.数据大小:作为存储容器,cookie的大小限制在4KB左右,这是非常坑爹的,尤其对于现在复杂的业务逻辑需求,4KB的容量除了存储一些配置字段还简单单值信息,对于绝大部分开发者来说真的不知指望什么了。•2.安全性问题:由于在HTTP请求中的cookie是明文传递的(HTTPS不是),带来的安全性问题还是很大的。•3.网络负担:我们知道cookie会被附加在每个HTTP请求中,在HttpRequest和HttpResponse的header中都是要被传输的,所以无形中增加了一些不必要的流量损失。HTML5移动Web开发第9页WebStorage•WebStorage是HTML新增的本地存储解决方案之一,但并不是为了取代cookie而制定的标准。•cookie作为HTTP协议的一部分用来处理客户端和服务器通信是不可或缺的,session正是依赖于实现的客户端状态保持。•WebStorage的意图在于解决本来不应该cookie做,却不得不用cookie的本地存储。HTML5移动Web开发第10页WebStorage•WebStorage提供两种类型的API:localStorage和sessionStorage。•区别:•localStorage在本地永久性存储数据,除非显式将其删除或清空。•sessionStorage存储的数据只在会话期间有效,关闭浏览器则自动删除。两个对象都有共同的API。HTML5移动Web开发第11页浏览器的支持HTML5移动Web开发第12页检查浏览器是否支持WebStorage-请打开ex3_1.htmlHTML5移动Web开发第13页代码示例HTML5移动Web开发第14页主要内容1.移动设备的支持2.localStorage3.sessionStorage4.Storage事件监听5.练习与习题HTML5移动Web开发第15页Storage接口•interfaceStorage{Storage接口•readonlyattributeunsignedlonglength;•DOMString?key(unsignedlongindex);•getterDOMStringgetItem(DOMStringkey);•settercreatorvoidsetItem(DOMStringkey,DOMStringvalue);•deletervoidremoveItem(DOMStringkey);•voidclear();•};length:唯一的属性,只读,用来获取storage内的键值对数量。key:根据index获取storage的键名getItem:根据key获取storage内的对应valuesetItem:为storage内添加键值对removeItem:根据键名,删除键值对clear:清空storage对象HTML5移动Web开发第16页localStorage和sessionStorage操作•localStorage和sessionStorage都具有相同的操作方法,例如setItem、getItem和removeItem等•localStorage和sessionStorage的方法:•setItem存储value•用途:将value存储到key字段•用法:.setItem(key,value)•代码示例:–sessionStorage.setItem(key,value);–localStorage.setItem(site,js8.in);HTML5移动Web开发第17页•getItem获取value•用途:获取指定key本地存储的值•用法:.getItem(key)•代码如下:•varvalue=sessionStorage.getItem(key);•varsite=localStorage.getItem(site);HTML5移动Web开发第18页•removeItem删除key•用途:删除指定key本地存储的值•用法:.removeItem(key)•代码示例:•sessionStorage.removeItem(key);•localStorage.removeItem(site);HTML5移动Web开发第19页•clear清除所有的key/value•用途:清除所有的key/value•用法:.clear()•代码示例:•sessionStorage.clear();•localStorage.clear();HTML5移动Web开发第20页•webStorage不但可以用自身的setItem,getItem等方便存取,也可以像普通对象一样用点(.)操作符,及[]的方式进行数据存储,像如下的代码:•varstorage=window.localStorage;storage.key1=hello;•storage[key2]=world;•console.log(storage.key1);•console.log(storage[key2]);HTML5移动Web开发第21页2、localStorageHTML5移动Web开发第22页HTML5移动Web开发第23页例:填写数据单击刷新HTML5移动Web开发第24页例HTML5移动Web开发第25页HTML5移动Web开发第26页•关闭浏览器,重新打开ex3_3_local_next.html•数据还在。HTML5移动Web开发第27页在浏览器中,打开开发者模式(F12)HTML5移动Web开发第28页例HTML5移动Web开发第29页HTML5移动Web开发第30页3、sessionStorageHTML5移动Web开发第31页3、sessionStorage•以sessionStorage为例进行设置和获取数据。HTML5移动Web开发第32页HTML5移动Web开发第33页例:•运行方式和上一个例子一样。填写数据单击提交HTML5移动Web开发第34页•在浏览器中,打开开发者模式(F12)单击下一页HTML5移动Web开发第35页关闭浏览器,重新打开开发者模式•sessionStorage临时数据没有了•localStorage本地存储数据还在HTML5移动Web开发第36页运行ex3_clear.htmlHTML5移动Web开发第37页小结:为什么比cookie好•1.从容量上讲WebStorage一般浏览器提供5M的存储空间,用来存储视频、图片神马的不够,但对于绝大部分操作足矣•2.安全性上WebStorage并不作为HTTPheader发送的浏览器,所以相对安全•3.从流量上讲,因为WebStorage不传送到服务器,所以不必要的流量可以节省,这样对于高频次访问或者针对手机移动设备的网页还是很不错的。HTML5移动Web开发第39页主要内容1.移动设备的支持2.localStorage3.sessionStorage4.Storage事件监听(自修)5.练习与习题HTML5移动Web开发第40页5、练习与习题•完成如视频所示功能。HTML5移动Web开发第41页
本文标题:HTML5规范的本地存储
链接地址:https://www.777doc.com/doc-3386069 .html