储存对象
localStorage.colorSetting = '#a4509b';
localStorage['colorSetting'] = '#a4509b';
localStorage.setItem('colorSetting', '#a4509b');
Web 存储中的两种机制如下所示:
sessionStorage 为每个给定的源维护一个单独的存储区域,该区域在页面会话期间可用(只要浏览器处于打开状态,包括页面重新加载和还原)。
localStorage 执行相同的操作,但即使关闭并重新打开浏览器,也会保留。
这些机制可通过 Window.sessionStorage 和 Window.localStorage 属性获得(更准确地说,在支持浏览器时,对象实现了 和 和 属性的成员)— 调用其中一个将创建存储的实例 对象,通过它可以设置、检索和删除数据项。每个源都使用不同的 Storage 对象 — 它们单独运行和控制。WindowWindowLocalStorageWindowSessionStoragelocalStoragesessionStoragesessionStoragelocalStorage
因此,例如,最初调用文档将返回存储对象;调用文档将返回不同的存储对象。这两者都可以以相同的方式操纵,但可以分开。localStoragesessionStorage
检测是否可用
function storageAvailable(type) {
var storage;
try {
storage = window[type];
var x = '__storage_test__';
storage.setItem(x, x);
storage.removeItem(x);
return true;
}
catch(e) {
return e instanceof DOMException && (
// everything except Firefox
e.code === 22 ||
// Firefox
e.code === 1014 ||
// test name field too, because code might not be present
// everything except Firefox
e.name === 'QuotaExceededError' ||
// Firefox
e.name === 'NS_ERROR_DOM_QUOTA_REACHED') &&
// acknowledge QuotaExceededError only if there's something already stored
(storage && storage.length !== 0);
}
}