美文网首页
localStorage的日常使用

localStorage的日常使用

作者: asimpleday | 来源:发表于2018-08-30 20:44 被阅读0次

    什么是localStorage

    在html5中,新加入了一个localStorage特性,这个特性主要用来作为本地存储来使用的,解决了cookie存储空间不足的问题(cookie中每条cookie的存储空间为4k),localStorage中一般浏览器支持的是5M大小,这个在不同的浏览器中localStorage会有所不同。


    localStorage的优势与局限

    优势
    • localStorage扩展了cookie的4k限制
    • localStorage会将第一次请求的数据直接存储到本地,这个相当于一个5M大小的针对前端页面的数据库,相比于cookie可以节约宽带
    局限
    • IE9以下不支持
    • 目前所有的浏览器中都会把localStorage的值类型限定为string类型,这个在我们对日常比较常见的JSON对象类型需要一些转换
    • localStorage在浏览器的隐私模式下是不可读取的
    • localStorage本质上是对字符串的读取,如果存储内容多的话会消耗内存空间,会导致页面变卡
    • localStorage不能被爬虫抓取到
    • localStorage属于永久性存储,会话关闭,键值对不会被清空

    具体的使用

    判断浏览器是否支持localStorage
    if( window.localStorage ){
        alert( '您的浏览器支持localStorage' );
    }else{
        alert( '您的不浏览器支持localStorage' );
    }
    
    localStorage的写入
    var storage = window.localStorage;
    storage.a = 111;   // 方式一
    storage['b'] = 222;   // 方式二
    storage.setItem( 'c', 333 );   // 方式三 推荐使用
    console.log( storage );   // {a: "111", b: "222", c: "333"}
    

    可以在浏览器中的检查模式Application菜单中的的Storage的localStorage中查看


    image.png
    localStorage的获取
    console.log( storage.a );   // 111   方式一
    console.log( storage['b'] );   // 222   方式二
    console.log( storage.getItem( 'c' ) );   // 333   方式三,推荐使用
    

    这里获取到的值类型都是string类型,尽管我们存进去的是number类型

    console.log( typeof storage.a );   // string
    console.log( typeof storage['b'] );   // string
    console.log( typeof storage.getItem( 'c' ) );   // string
    
    localStorage的更改
    storage.setItem( 'a', 111 );   // 写入一个a字段,值为 111
    storage.setItem( 'a', 222 );   // 更改字段a的值
    console.log( storage.getItem( 'a' ) );   // 222
    
    localStorage的删除
    1. 删除localStorage中的某个键值对
    storage.setItem( 'a', 111 );
    storage.setItem( 'b', 222 );
    storage.setItem( 'c', 333 );
    storage.removeItem( 'c' )   // 删除字段c
    console.log( storage );   // {a: "111", b: "222"}
    
    1. 将localStorage所有的记录删除
    storage.setItem( 'a', 111 );
    storage.setItem( 'b', 222 );
    storage.setItem( 'c', 333 );
    console.log( storage.length );   // 3
    storage.clear();   // 删除所有内容
    console.log( storage.length );   // 0
    
    localStorage的键获取
    storage.setItem( 'a', 111 );
    storage.setItem( 'b', 222 );
    storage.setItem( 'c', 333 );
    console.log( storage.key( 0 ) );   // a
    console.log( storage.key( 1 ) );   // b
    console.log( storage.key( 2 ) );   // c
    
    localStorage的注意事项

    一般的情况,我们会将json存入localStorage中,但是我们获取到之后的值却是字符串类型,我们可以使用JSON.stringify()这个方法,来将json对象转化为json字符串,进行存储。

    storage.clear();
    var user = {
        userName: 'tom',
        age: 24,
        likes: 'sing'
    }
    storage.setItem( 'user', JSON.stringify( user ) );
    

    读取的时候要将json字符串转化为json对象,使用JSON.parse()方法

    var obj = JSON.parse( storage.getItem( 'user' ) );
    for( var key in obj ){
        console.log( key + '---' + obj[key] );   // userName---tom age---24 likes---sing
    }
    

    来源:https://www.cnblogs.com/st-leslie/p/5617130.html

    相关文章

      网友评论

          本文标题:localStorage的日常使用

          本文链接:https://www.haomeiwen.com/subject/uxwdwftx.html