天天看点

JavaScript中级 ---- 本地存储

1. 本地存储方式

cookie – HTML4 在客户端保存诸如用户名等简单信息

cookie存在的问题

  1. 大小: 大小被限制在4K;
  2. 带宽: cookie是随http一起发送,会浪费一部分发送cookie时使用的带宽
  3. 复杂性: 正确操作cookie有难度
HTML5中的客户端本地保存数据
sessionStorage 保存从进入网站到浏览器关闭这段时间内的所有数据 — 临时保存
保存数据的方法(两种):
sessionStorage.setItem('key','value');
sessionStorage.key = 'value';
读取数据的方法(两种):
变量 = sessionStorage.getItem('key');
变量 = sessionStorage.key';
           

localStorage 保存在客户端本地硬件设备中 —– 永久保存

注意: localstorage中的数据关闭浏览器后也存在,但是数据保存是按不同浏览器分别进行保存的,也就是说打开一种浏览器读取不到另一种浏览器中保存的数据。

保存数据的方法(两种):
sessionStorage.setItem('key','value');
sessionStorage.key = 'value';
读取数据的方法(两种):
变量 = sessionStorage.getItem('key');
变量 = sessionStorage.key';
           

2. localstorage的应用

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>简易数据库</title>
    <link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstrap/3.2.0/css/bootstrap.min.css">
</head>
<body>
<div style="width: 80%; margin: 0 auto">
    <h1 class="navbar navbar-inverse" style="color: #fff;">WEB storage 做简易数据库</h1>
    <table>
        <tr>
            <td>姓名</td>
            <td><input type="text" id="name"/></td>
        </tr>
        <tr>
            <td>邮箱</td>
            <td><input type="text" id="email"/></td>
        </tr>
        <tr>
            <td>电话号码</td>
            <td><input type="text" id="tel"/></td>
        </tr>
        <tr>
            <td>备注</td>
            <td><input type="text" id="memo"/></td>
        </tr>
        <tr>
            <td></td>
            <td><button onclick="saveStorage()">保存</button></td>
        </tr>
    </table>
    <hr/>
    <p>检索:
        <input type="text" id="find"/>
        <button onclick="findStorage('msg')">检索</button>
    </p>
    <p id="msg">在这里添加检索内容</p>
</div>


<script>
    function saveStorage(){
        var data = new Object;
        data.name = document.getElementById('name').value;
        data.email = document.getElementById('email').value;
        data.tel = document.getElementById('tel').value;
        data.memo = document.getElementById('memo').value;
        var str = JSON.stringify(data);
        localStorage.setItem(data.name,str);
        alert('数据已保存');
    }

    function findStorage(id){
        var find = document.getElementById('find').value;
        var str = localStorage.getItem(find);
        var data = JSON.parse(str);
        var result = "姓名:"+ data.name +'<br>';
        result +=  "邮箱:" + data.email +'<br>';
        result +=  "电话号码" + data.tel +'<br>';
        result +=  "备注:" + data.memo +'<br>';

        var target = document.getElementById(id);
        target.innerHTML = result;
    }
</script>
</body>
</html>
           

继续阅读