当地存储localStorage的封装,供应简朴的API

《当地存储localStorage的封装,供应简朴的API》 《当地存储localStorage的封装,供应简朴的API》 《当地存储localStorage的封装,供应简朴的API》 《当地存储localStorage的封装,供应简朴的API》

store.js 是一个完成了浏览器的当地存储的 JavaScript 封装 API,不是经由过程 Cookie 和 Flash 手艺完成,而是运用 localStorage。小弟我主如果用于chrome,Safari,手机Web等先进浏览器内里跑。so….人人能够做兼容哦….

比较诡异的是竟然一切支撑的浏览器现在都采纳的5MB,只管有一些浏览器能够让用户设置,但关于网页制作者来讲,现在的情势就5MB来斟酌是比较稳健的。

Github地点

装置

bower

$ bower install storejs

npm

$ npm install storejs

当地存储APIs

jsstore(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);

jsstore.set("wcj","1")   //⇒  1
store.set("wcj")       //⇒  删除wcj及字符串数据

setAll

批量存储多个字符串数据
store.setAll(data[, overwrite])
结果雷同store({key: data, key2: data});

jsstore.setAll({
    "wcj1":123,
    "wcj2":345
}) //存储两条字符串数据

store.setAll(["w1","w2","w3"]) 
//存储三条字符串数据 
//  0⇒ "w1"
//  1⇒ "w2"
//  2⇒ "w3"

get

猎取key的字符串数据
store.get(key[, alt])
结果雷同store(key)

jsstore.get("wcj1") //猎取wcj1的字符串数据
store("wcj1") //功用同上

getAll

猎取一切key/data
store.getAll()
结果雷同store()

jsstore.getAll() //⇒JSON
store() //功用同上

clear

清空一切key/data
store.clear()

弃用 ~~store(false)~~ 由于传入空值 或许报错很轻易清空库

jsstore.clear() //

keys

返回一切key的数组
store.keys()

jsstore.keys() //⇒["w1", "w2", "w3"]

has

推断是不是存在返回true/false
store.has(key)

jsstore.has("w1"); //⇒true

remove

删除key包含key的字符串数据
store.remove(key)

jsstore.remove("w1"); //删除w1 返回 w1的value

store("w1",false) //如许也是 删除w1

forEach

轮回遍历,返回false完毕遍历

jsstore.forEach(function(k,d){
    console.log(k,d)
    if (k== 3) return false
})

定时消灭

(做个笔记,将来将定时消灭封装起来,有思绪)

jsif (+new Date() > +new Date(2014, 11, 30)) {
    localStorage.removeItem("c");    //消灭c的值
    // or localStorage.clear();
}

storage事宜

HTML5的当地存储,还供应了一个storage事宜,能够对键值对的转变举行监听,运用要领以下:

jsif(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对象,供应了一些有用的属性,能够很好的视察键值对的变化,以下表:

PropertyTypeDescription
keyStringThe named key that was added, removed, or moddified
oldValueAnyThe previous value(now overwritten), or null if a new item was added
newValueAnyThe new value, or null if an item was added
url/uriStringThe page that called the method that triggered this change

兼容

泉源:sessionStorage localStorage

特征ChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)iPhone(IOS)AndroidOpera MobileWindow Phone
localStorage4+3.5+8+10.50+4+3.2+2.1+11+8+
sessionStorage5+2+8+10.50+4+3.2+2.1+11+8+

当地存储大小

JSON.stringify(localStorage).length 当前占用多大容量

检测localstore容量上限

    原文作者:小弟调调
    原文地址: https://segmentfault.com/a/1190000002458488
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞