一、定义

  • 随着互联网的快速发展,基于网页的应用越来越普遍,同时也变得越来越复杂,为了满足各种各样的需求,会经常在本地存储大量的数据,HTML5规范提出了相关解决方案
  • 本地存储设置读取方便,容量较大,sessionStorage约5M,localStorage约20M,但是只能存储字符串,但是可以将对象JSON.stringify()编码后存储

二、两种存储方式

①window.sessionStorage 生命周期为关闭浏览器窗口,在同一个窗口(页面)下数据可以共享

②window.localStorage   永久生效,除非收到删除(服务器方式访问然后清除缓存),可以多窗口(页面)共享

三、相关方法

①setItem(key,value) 设置存储内容

②getItem(key) 读取存储内容

③removeItem(key)删除键值为key的存储内容

④clear() 清除所有存储内容

四、案例:搜索历史记录

<!DOCTYPE html>
<html lang="en">
<head>
<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;
}
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>
// 使用json数据存储搜索历史记录;预设一个key为historyList;采用localStorage存储
$(function(){
// 1.默认根据历史记录渲染历史列表
var historyListJson=localStorage.getItem("historyList") ||'[]';
var historyListArr=JSON.parse(historyListJson);//数组格式的数据
var render=function(){
var html='';
historyListArr.forEach(function(item,index){
html +='<li><span>'+item+'</span><a data-index="'+index+'" href="javascript:;">删除</a></li>'
});
html=html || '<li>没有搜索记录</li>';
$('ul').html(html);
}
render();
// 2.点击搜索按钮更新历史记录,并且渲染历史列表
$('[type="button"]').on('click',function(){
var value=$.trim($('[type=search]').val());
if(!value){
alert('请输入搜索关键字');
return false;
}
historyListArr.push(value);//追加一条历史记录
localStorage.setItem('historyList',JSON.stringify(historyListArr));//保存
render();//渲染
$('[type=search]').val('');//清空搜索框
});
// 3.点击删除按钮删除对应的历史记录,并且渲染历史列表
$('ul').on('click','a',function(){
var index=$(this).data('index');
historyListArr.splice(index,1);//删除
localStorage.setItem('historyList',JSON.stringify(historyListArr));//保存
render();//渲染一次
});
// 4.点击清空历史记录,清空所有的历史记录并渲染历史列表
$('div a').on('click',function(){
historyListArr=[];//清空,localStorage.clear()慎用
localStorage.setItem('historyList','');
render();
});
})
</script>
</body>
</html>

最新文章

  1. 【干货分享】流程DEMO-费用报销
  2. JXL操作Excel
  3. Bounce.js – 快速创建漂亮的 CSS3 动画效果
  4. Object.create 函数 (JavaScript)
  5. 关于配置服务器(IIS7)
  6. 一步一步写平衡二叉树(AVL树)
  7. SVN使用(一)
  8. hive学习笔记_hive的表创建
  9. 数据操作So easy-LINQ解析
  10. FalseEasting 和 FalseNorthing
  11. 【死磕 Spring】----- IOC 之 加载 Bean
  12. 初识redux走向redux-react
  13. mysql锁机制(Innodb引擎)
  14. Lucene用法示例
  15. ACM Computer Factory POJ - 3436 网络流拆点+路径还原
  16. Java集合类常见面试知识点总结
  17. poj2230 Watchcow【欧拉回路】【输出路径】(遍历所有边的两个方向)
  18. [PHP]更新中间关联表数据的两种思路
  19. jmeter完成数据批量添加
  20. Stop单个Coroutine

热门文章

  1. 可能这些是你想要的H5软键盘兼容方案
  2. 查看线程CPU利用率
  3. wpf Log4net的配置和使用
  4. python 包 安装 加速 pip anaconda
  5. String字符串常用方法
  6. Qt 添加程序图标和系统托盘图标
  7. JavaScript箭头函数中的this详解
  8. [AIR] NativeExtension在IOS下的开发实例 --- IOS项目的创建 (一)
  9. 【idea】scala&amp;sbt+idea+spark使用过程中问题汇总(不定期更新)
  10. Vue检测当前是否处于mock模式