html5知识点补充—客户端存储
sessionStorge和localStorage
会话存储(sessionStorage)和本地存储(localStorage)在实现方式上十分相似,而仅仅在作用域和数据持久化方面有所区别。浏览器为每种存储类型都提供了一种存储接口:sessionStorage
和localStorage
,它们都能使用键值对列表存储数据。你可以为一个键设置一个值,然后通过改建访问相应的值。两种存储对象都提供了用于设置值、获取值、删除键、获取键列表特定位置和清除所有键值对的方法。每种存储对象类型的方法和属性都是相同的。这是因为,它们都是从Web Storage规范定义的Storage接口继承而来。
setItem(key,value): 设置由参数定义的键值对。如果该键已经存在,那么对应值更新为参数中的值。
getItem(key): 获取参数中键对应的键值对
removeItem(key): 删除参数中对应的键值对
key(n): 返回索引对应的键名
clear: 删除所有的键值对
length: 提供存储列表中键值对的数量
PS:setItem中的value的类型为字符串,也就是说,如果你需要存储数字,必须在存储时将其视为字符串,然后在访问时将其转换回正确的数据格式。
使用示例如下所示:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>web storge</title></head><body><script> function init() { var divVisits = document.getElementById('divVisits'); if (window.sessionStorage) {var visits;if (sessionStorage.visits) { visits = parseInt(sessionStorage.getItem('visits')); visits++;} else { visits = 1;}sessionStorage.setItem('visits', visits);divVisits.innerHTML = 'Session page visits: ' + visits; } else {divVisits = 'Window sessiongStorage is not avaiable'; } } window.addEventListener('load', init, false); </script><div id="divVisits"></div></body></html>
捕获本地存储事件
事件可以是因为一个新键值对的插入、更新或者删除事件而触发。页面可以创建监听这些事件的相应函数,在接受到相应事件进行处理。storageEvent事件包含了帮助决定如何处理的属性。
属性 | 类型 | 目的 |
key | DOMString | 发生变化的键 |
oldValue | DOMString | 旧值 |
newValue | DOMString | 新值 |
url | DOMString | 发生变化的页面URL |
storageArea | Storage | 更新发生的存储区域 |