store.js 是一个完成了浏览器的当地存储的 JavaScript 封装 API,不是经由过程 Cookie 和 Flash 手艺完成,而是运用 localStorage。小弟我主如果用于chrome,Safari,手机Web等先进浏览器内里跑。so….人人能够做兼容哦….
比较诡异的是竟然一切支撑的浏览器现在都采纳的5MB,只管有一些浏览器能够让用户设置,但关于网页制作者来讲,现在的情势就5MB来斟酌是比较稳健的。
装置
bower
$ bower install storejs
npm
$ npm install storejs
当地存储APIs
js
store(key, data); //单个存储字符串数据 store({key: data, key2: data2}); //批量存储多个字符串数据 store(key); //猎取key的字符串数据 store(); //猎取一切key/data //store(false);(弃用) //由于传入空值 或许报错很轻易清空库 store(key,false); //删除key包含key的字符串数据 store.set(key, data[, overwrite]);//=== store(key, data); store.setAll(data[, overwrite]); //=== store({key: data, key2: data}); store.get(key[, alt]); //=== store(key); store.getAll(); //=== store(); store.remove(key); //===store(key,false) store.clear(); //清空一切key/data store.keys(); //返回一切key的数组 store.forEach(callback); //轮回遍历,返回false完毕遍历 store.has(key); //⇒推断是不是存在返回true/false //⇒ 供应callback要领处置惩罚数据 store("test",function(arr){ console.log(arr)//这里处置惩罚 经由过程test猎取的数据 return [3,4,5]//返回数据并存储 }) store(["key","key2"],function(arr){ //猎取多个key的数据处置惩罚,return 并保留; console.log("arr:",arr) return "逐一变动数据" })
set
单个存储或删除字符串数据store.set(key, data[, overwrite]);
结果雷同store(key, data);
js
store.set("wcj","1") //⇒ 1 store.set("wcj") //⇒ 删除wcj及字符串数据
setAll
批量存储多个字符串数据store.setAll(data[, overwrite])
结果雷同store({key: data, key2: data});
js
store.setAll({ "wcj1":123, "wcj2":345 }) //存储两条字符串数据 store.setAll(["w1","w2","w3"]) //存储三条字符串数据 // 0⇒ "w1" // 1⇒ "w2" // 2⇒ "w3"
get
猎取key的字符串数据store.get(key[, alt])
结果雷同store(key)
js
store.get("wcj1") //猎取wcj1的字符串数据 store("wcj1") //功用同上
getAll
猎取一切key/datastore.getAll()
结果雷同store()
js
store.getAll() //⇒JSON store() //功用同上
clear
清空一切key/datastore.clear()
弃用 ~~store(false)~~ 由于传入空值 或许报错很轻易清空库
js
store.clear() //
keys
返回一切key的数组store.keys()
js
store.keys() //⇒["w1", "w2", "w3"]
has
推断是不是存在返回true/falsestore.has(key)
js
store.has("w1"); //⇒true
remove
删除key包含key的字符串数据store.remove(key)
js
store.remove("w1"); //删除w1 返回 w1的value store("w1",false) //如许也是 删除w1
forEach
轮回遍历,返回false完毕遍历
js
store.forEach(function(k,d){ console.log(k,d) if (k== 3) return false })
定时消灭
(做个笔记,将来将定时消灭封装起来,有思绪)
js
if (+new Date() > +new Date(2014, 11, 30)) { localStorage.removeItem("c"); //消灭c的值 // or localStorage.clear(); }
storage事宜
HTML5的当地存储,还供应了一个storage事宜,能够对键值对的转变举行监听,运用要领以下:
js
if(window.addEventListener){ window.addEventListener("storage",handle_storage,false); }else if(window.attachEvent){ window.attachEvent("onstorage",handle_storage); } function handle_storage(e){ if(!e){e=window.event;} //showStorage(); }
关于事宜变量e,是一个StorageEvent对象,供应了一些有用的属性,能够很好的视察键值对的变化,以下表:
Property | Type | Description |
---|---|---|
key | String | The named key that was added, removed, or moddified |
oldValue | Any | The previous value(now overwritten), or null if a new item was added |
newValue | Any | The new value, or null if an item was added |
url/uri | String | The page that called the method that triggered this change |
兼容
泉源:sessionStorage localStorage
特征 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) | iPhone(IOS) | Android | Opera Mobile | Window Phone |
---|---|---|---|---|---|---|---|---|---|
localStorage | 4+ | 3.5+ | 8+ | 10.50+ | 4+ | 3.2+ | 2.1+ | 11+ | 8+ |
sessionStorage | 5+ | 2+ | 8+ | 10.50+ | 4+ | 3.2+ | 2.1+ | 11+ | 8+ |
当地存储大小
JSON.stringify(localStorage).length
当前占用多大容量