• 利用H5本地存储localStorage、sessionStorage


      最近的业务处理上,要使用cookie缓存储一下数据,公司的cookie还搞出点问题。而用户的浏览器都是利用微信的内置,普遍支持h5的本地存储。于是利用了这个...

      现代浏览器普遍开始支持H5本地存储,localStorage、sessionStorage。可以用来代替cookie的一部分存储功能,他比cookie存储量更大。比较实用。

      两者用法类似。localStorage存储,如果不清除那么一直存在;sessionStorage是在一个会话级别上存在,如果会话关闭,那么就没了。顾名思义吧。

      他们存值都是以键值对形式存在,值也是存入字符串类型(如果是对象,就序列化以后再存入)。几乎和memcached,redis这种一样。很好理解。

      以下简单演示下增删改查的用法:  

    <script type="text/javascript">
    
        if(window.sessionStorage){
            alert('ok');
        }else{
            alert('fail');
        }
    
        // 设置值
        sessionStorage.setItem('key_a', 1);
        // 取值
        var key_a = sessionStorage.getItem('key_a');
        console.log(key_a);
        // 删除
        sessionStorage.removeItem('key_a');
        console.log(sessionStorage.getItem('key_a'));// null
    
        sessionStorage.setItem('key_b', 1);
        sessionStorage.setItem('key_c', 2);
    
        // 清除所有键值
        sessionStorage.clear();
        console.log(sessionStorage.key_b);
        console.log(sessionStorage.key_c);
    
        console.log('==================');
    
        // 设置值和取值也可以使用.符号,类似于取对象属性
        // 设置值
        sessionStorage.key_d = 12;
        // 取值
        var key_d = sessionStorage.key_d;
        console.log(key_d);
    
        // 有个小区别,如果这个key没有了。一个返回值undefined,一个是null
        console.log(sessionStorage.key_null);// undefined
        console.log(sessionStorage.getItem('key_null'));// null
    
    
    
        console.log('==========简单演示一个存放对象的例子========');
    
        var obj = {
            a : 12,
            b : [1,2,3,4,5],
            c : {
                x : 'a',
                y : ['bb', 12, 'cc', {a:1,b:2}],
                z : 1333
            }
        };
    
        sessionStorage.setItem('page', JSON.stringify(obj));
    
        // 取值
        var page = JSON.parse(sessionStorage.getItem('page'));
        console.log(page);
    
        // 遍历下数组
        for(var i=0;i< page.b.length;i++){
            console.log(page.b[i]);
        }
        // 遍历对象,通常用in
        for(var j in page.c){
            console.log(page.c[j])
        }
    
        // 删除key
        sessionStorage.removeItem('page');
    
    
    </script>
  • 相关阅读:
    Java之IO(一)InputStream和OutputStream
    bitset库
    assert
    C++ 与 Python 混合编程
    C++多线程
    C++11新特性
    C++性能优化指南
    C++随机数
    C++中struct与class的区别
    C++杂记
  • 原文地址:https://www.cnblogs.com/firstForEver/p/5301830.html
Copyright © 2020-2023  润新知