本地储存(localStorage,sessionStorage),cookies(历史记录储存)

特性

  • 设置、读取方便
  • 容量较大,sessionStorage约5M、localStorage约20M
  • 只能存储字符串,可以将对象JSON.stringify() 编码后存储

  • window.sessionStorage
    • 生命周期为关闭浏览器窗口
    • 在同一个窗口(页面)下数据可以共享
  • window.localStorage
    • 永久生效,除非手动删除(服务器方式访问然后清除缓存)
    • 可以多窗口(页面)共享

方法

  • setItem(key, value) 设置存储内容
  • getItem(key) 读取存储内容
  • removeItem(key) 删除键值为key的存储内容
  • clear() 清空所有存储内容

小栗子——模拟历史记录储存

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>首页</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        body{
            margin-left: 300px;
        }
        ul{
            list-style: none;
        }
        ul li,div{
            width: 250px;
            padding: 10px 0;
            margin-left: 10px;
            border-bottom: 1px dashed #ccc;
            height: 20px;
        }
        a{
            float: right;
        }
        input{
            padding: 5px;
            margin: 10px;
        }
    </style>
</head>
<body>
<input type="search" placeholder="输入搜索关键字"/>
<input type="button" value="搜索"/>
<div><a href="javascript:;">清空搜索记录</a></div>
<ul>
    <li>没有搜索记录</li>
    <li><span>手机</span><a href="javascript:;">删除</a></li>
    <li><span>手机</span><a href="javascript:;">删除</a></li>
    <li><span>手机</span><a href="javascript:;">删除</a></li>
    <li><span>手机</span><a href="javascript:;">删除</a></li>
    <li><span>手机</span><a href="javascript:;">删除</a></li>
</ul>
<script src="jquery.min.js"></script>
<script>
    $(function () {
        /*1.默认根据历史记录渲染历史列表*/
        var historyListJson=localStorage.getItem('historyList')||'[]';
        var historyListArr = JSON.parse(historyListJson);
        var render =function () {
            var html='';
            historyListArr.forEach(function (item,i) {
                html+='<li><span>'+item+'</span><a data-index="'+i+'" href="javascript:;">删除</a></li>'
            });
            html=html||'<li>没有搜索记录</li>';
            $('ul').html(html);
        }
        render();

        /*2.点击搜索的时候更新历史记录渲染列表*/
        $('[type="button"]').on('click',function () {
            let key=$.trim($('[type="search"]').val());//trim去除左右空字符串
            if (!key){
                alert('请输入关键字');
                return false
            }
            /*追加一条历史*/
            historyListArr.push(key);
            //保存到localStorage
            localStorage.setItem('historyList',JSON.stringify(historyListArr));
            //渲染
            render();
            $('[type="search"]').val('');
        });
        /*3.点击删除的时候删除对应的历史记录渲染列表*/
        $('ul').on('click','a',function () {
           let index=$(this).data('index');//拿到自定义属性的下标
           historyListArr.splice(index,1);//del
           localStorage.setItem('historyList',JSON.stringify(historyListArr));//保存
           render();
        });
        /*4.点击清空的时候清空历史记录渲染列表*/
        $('div>a').on('click',function () {
            historyListArr=[];//初始化内存里的数据

            localStorage.setItem('historyList','');
            render();
        });
    });
</script>
</body>
</html>
在 Web 应用程序中,我们经常需要在浏览器中保存一些数据,以便在下一次访问应用程序时可以直接读取这些数据。为了实现这个功能,Web 浏览器提供了两种本地数据存储方式:`localStorage` 和 `sessionStorage`。 `localStorage` 和 `sessionStorage` 都是浏览器提供的 JavaScript API,可以用来在浏览器中保存和读取数据。它们的主要区别在于数据的生命周期和作用域。 `localStorage` 中保存的数据是永久性的,除非用户手动清除,否则数据将一直保存在浏览器中。而 `sessionStorage` 中保存的数据只在当前会话中有效,当用户关闭浏览器窗口或标签页时,数据将被删除。 另外,`localStorage` 中保存的数据可以在不同的窗口或标签页中共享,而 `sessionStorage` 中保存的数据只能在同一个窗口或标签页中共享。 在 JavaScript 中,我们可以使用以下代码来读取和保存数据到本地存储中: ``` // 保存数据到 localStoragelocalStorage.setItem('key', 'value') // 从 localStorage 中读取数据 const value = localStorage.getItem('key') // 从 localStorage 中删除数据 localStorage.removeItem('key') // 清空 localStorage 中的所有数据 localStorage.clear() ``` 类似地,我们可以使用 `sessionStorage` 来读取和保存数据: ``` // 保存数据到 sessionStoragesessionStorage.setItem('key', 'value') // 从 sessionStorage 中读取数据 const value = sessionStorage.getItem('key') // 从 sessionStorage 中删除数据 sessionStorage.removeItem('key') // 清空 sessionStorage 中的所有数据 sessionStorage.clear() ``` 需要注意的是,`localStorage` 和 `sessionStorage` 中只能保存字符串类型的数据,如果需要保存其他类型的数据,需要先将其转换为字符串类型。例如,我们可以使用 `JSON.stringify` 方法将 JavaScript 对象转换为字符串,然后再保存到本地存储中。在读取数据时,需要使用 `JSON.parse` 方法将字符串转换为 JavaScript 对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值