概述
Dom存储(Storage)API 是通过 sessionStorage 对象和 localStorage 对象来实现的。通过这些对象,WEB应用程序能够把信息存储到客户端,并再以后需要的时候进行获取。
其中:
DOM存储与cookie的相同点:
DOM存储与cookie的不同点:
代码示例
浏览器支持检查
通过以下代码可以事先检测浏览器是否支持本API。
if(window.Storage) {
//支持此API
} else {
//不支持此API
}
使用本地DOM存储
var loSt = window.localStorage;
loSt['username'] = 'hudao';
loSt.setItem('jobName', 'wrting');
console.log(loSt.length); //2
console.log(loSt.username + ' job is ' + loSt.jobName); //hudao job is wrting
loSt['jobName'] = 'singer';
console.log(loSt.username + ' job is ' +loSt.jobName); //hudao job is singer
delete loSt['jobName'];
sessionStorage.setItem('company', 'Hudao');
上面代码表示访问当前域名的会话DOM存储对象,并使用setItem()访问往里面添加一个数据条目。
//获得填充公司名称的文本输入框
var company = document.getElementByid('company');
//检测是否存在company键值
if(sessionStorage.getItem('company')) {
//将文本框中的值设置成sessionStorage中的company键值
company.value = sessionStorage.getItem('company'); }
//添加监听文本输入框的change事件
company.addEventListener("change", function(){
//将文本框的值保存到sessionStorage中的company键值
sessionStorage.setItem("company", company.value);
});
不同的浏览器,分配给本地存储的空间是不一样的,该存储的空间是整个子域共享的。
如果当本地存储满了,再进行写数据,将会触发error,因此有时需要捕捉调用setItem()时的错误。
try{
localStorage.setItem('name', 'hudao');
}catch(e){
console.log('It's cant't write!');
}
调用clear()方法将会清空整个域的数据,包括和当前页面共享一个存储空间的其他页面。
localStorage.clear();
sessionStorage.clear();