快速理解webStroage

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
    </head>
    <body>
        <fieldset id="">
            <legend>sessionStorage</legend>
            <input type="text" name="" id="txt1" value="" />
            <br />
            <input type="button" name="save1" id="save1" value="保存数据" />
            <input type="button" name="get1" id="get1" value="读取数据" />
            <input type="button" name="del1" id="del1" value="删除数据" />
        </fieldset>
        <fieldset id="">
            <legend>localStorage</legend>
            <input type="text" name="" id="txt2" value="" />
            <br />
            <input type="button" name="save2" id="save2" value="保存数据" />
            <input type="button" name="get2" id="get2" value="读取数据" />
            <input type="button" name="del2" id="del2" value="删除数据" />
        </fieldset>
    </body>
    <script type="text/javascript">

        document.getElementById("save1").onclick = function(){
            var sinput = document.getElementById("txt1").value;
            sessionStorage.setItem("session1",sinput);
        }
        document.getElementById("get1").onclick = function(){
            var con = sessionStorage.getItem("session1");
            var str = document.createElement("span");
            str.innerHTML = con;
            document.getElementsByTagName("fieldset")[0].appendChild(str);
        }
        document.getElementById("del1").onclick = function(){
            sessionStorage.removeItem("session1");
            document.getElementsByTagName("fieldset")[0].getElementsByTagName("span")[0].innerHTML=""
        }

        document.getElementById("save2").onclick = function(){
            var sinput = document.getElementById("txt2").value;
            localStorage.setItem("local1",sinput);
        }
        document.getElementById("get2").onclick = function(){
            var con = localStorage.getItem("local1");
            var str = document.createElement("span");
            str.innerHTML = con;
            document.getElementsByTagName("fieldset")[1].appendChild(str);
        }
        document.getElementById("del2").onclick = function(){
            localStorage.removeItem("local1");
            document.getElementsByTagName("fieldset")[1].getElementsByTagName("span")[0].innerHTML=""
        }

    </script>
</html>

Web Storage功能,就是在Web上存储数据,分为两种:

sessionStorage:将数据保存在session对象中。所谓session,是指用户在浏览某个网站时,从进入网站到该网站所有域名被关闭所经过的这段时间,session对象可用来保存在这段时间内所要求保存的任何数据

localStorage:将数据保存在客户端本地的硬件设备中,即使浏览器关闭了,该数据仍然存在,下次打开浏览器访问网站时仍然可用

区别:sessionStorage为临时保存,localStorage为永久保存。

HTML5中提供了localStorage对象可以将数据长期保存在客户端,直到人为清除。localStorage提供了几个方法:
1、存储:localStorage.setItem(key,value)
如果key存在时,更新value

2、获取:localStorage.getItem(key)
如果key不存在返回null

3、删除:localStorage.removeItem(key)
一旦删除,key对应的数据将会全部删除

4、全部清除:localStorage.clear()
某些时候使用removeItem逐个删除太麻烦,可以使用clear,执行的后果是会清除所有localStorage对象保存的数据

5、遍历localStorage存储的key
.length 数据总量,例:localStorage.length
.key(index) 获取key,例:var key=localStorage.key(index);

6、存储JSON格式数据
JSON.stringify(data)  将一个对象转换成JSON格式的数据串,返回转换后的串
JSON.parse(data) 将数据解析成对象,返回解析后的对象。

sessionStroage的用法和localStroage的用法一样,在存储数据的过程中,所有数据全部以字符串类型保存。

存取对象时用Json.stringfy()方法将对象转换成字符串

var str = {
            age:12,
            name:"sa"
        }
        str=JSON.stringify(str);
        localStorage.setItem("obj",str);

将字符串转换成对象用JSON.parse()方法

    console.log(JSON.parse(localStorage.getItem("obj")))
时间: 2024-11-17 04:14:41

快速理解webStroage的相关文章

如何快速理解一个全新的嵌入式操作系统(续)

---基于TI CC254X OSAL的分析 当工具链配置完成后,SourceInsight向你展示一份源码工程,不借助百度和开发文档,能否在一两个小时内理解源码的组成框架和接口,进行快速开发? 上一篇<如何快速理解一个全新的嵌入式操作系统>我们已经分析了如何快速理解OSAL的任务调度和任务间通信(其实OSAL只是酷似多任务操作系统的单任务系统),再理解好OASL的消息产生和处理过程,我们就能够进行快速开发了. 一.消息的来源 嵌入式系统的消息包括两种,一是系统消息,包括低电.热插拔等,由系统

快速理解VirtualBox的四种网络连接方式

VirtualBox中有4中网络连接方式: NAT Bridged Adapter Internal Host-only Adapter VMWare中有三种,其实他跟VMWare 的网络连接方式都是一样概念,只是比VMWare多了Internal方式. 要让自己(或别人)理解深刻,方法就是做比较和打比方,比较之间的不同和相同,拿熟知的事物打比方.先来一张图,通过这张图就很容易看出这4种方式的区别: (注:此图直接取至Finalbug的Blog,表示感谢) 再来用文字做详细的解释(其实归结起来就

如何快速理解一个全新的嵌入式操作系统

---基于TI CC254X OSAL的分析 当工具链配置完成后,Source Insight向你展示一份源码工程,不借助百度和开发文档,能否在一两个小时内理解源码的组成框架和接口,进行快速开发? 在笔者过往撰写的博文中,一直在倡导两个嵌入式学习和开发理念:提高嵌入式系统架构和软件层次形成大局观:掌握从需求的角度去理解新系统和技术这个方法论.在软件大局观作为学习新系统的背景知识的基础上,从软件需求的角度入手就能快速理解和掌握一个全新的系统.本文以TI蓝牙BLE CC254x的源码库和工程为例进行

快速理解RxJava源码的设计理念

前言 我在看过几篇关于RxJava源码分析的博客后,不知是我的水平有限还是源码过于博大精深,导致花了很长的时间才搞清楚其运行原理.我个人觉得应该有更好的办法来快速剖析理解,于是决定写下本文. 本文适合已经看过一些RxJava源码分析资料的同学,不过没看过也没关系.在看本文时可参考这篇博客:RxJava基本流程和lift源码分析,它说得比较全,在此感谢博主大头鬼Bruce. 一.初探RxJava [以下摘录了RxJava基本流程和lift源码分析] 我们先来看一段最基本的代码,分析这段代码在RxJ

[转帖]十分钟快速理解DPI和PPI,不再傻傻分不清!

十分钟快速理解DPI和PPI,不再傻傻分不清! https://baijiahao.baidu.com/s?id=1605834796518990333&wfr=spider&for=pc关于UX测试相关的: 之前一直搞的不是很清楚 这个百家号的解释挺好的 简单转帖一下 以后仔细研究,  设计师充电站 18-07-1308:58 72DPI的图片拿去打印会糊吗?手机拍出来的照片是多少DPI?PS里显示72PPI为什么另存为JPG就变成96DPI了? 类似的问题层出不穷.本站很多篇文章都讲到

快速理解JavaScript语法

目录 导论 JavaScript的学习可以跳过哪些 console对象与控制台 console对象 console对象与方法 console.log() console.table() console.count() console.assert() JSON对象 JSON方法 JSON.stringify() JSON.parse() 异步与promise 回调函数 事件监听 Promise 对象 Promise 对象的状态 Promise 构造函数 Promise.prototype.the

快速理解DevOps概念和意义-兼谈SRE

最近几年,由于负责的范围的变化.工作逐渐从某个IT领域或者部门,开始关注到整个IT体系的运转和管理.中间也遇到不少困难,同时也有机会去从更高的层面去学习和实践IT治理.文章主要是总结一下我对DevOps相关的理解和认识. 为什么会有DevOps,解决了什么问题: 现代企业其实都是通过IT系统进行管理和运营的,在变化迅速和竞争激烈的领域,IT系统的新需求数量越来越多,软件发布的频率越来越高,不少互联网公司24小时内会发布几十个到上百个release到生产环境.与此同时,业务对IT服务和系统的稳定性

快速理解C语言指针

新手在C语言的学习过程中遇到的最头疼的知识点应该就是指针了,指针在C语言中有非常大的用处.下面我就带着问题来写下我对于指针的一些理解. 指针是什么?  指针本身是一个变量,它存储的是数据在内存中的地址而不是数据本身的值.它的定义如下: int a=10,*p; p=&a int a=10; int *p=&a; 首先我们可以理解 int* 这个是要定义一个指针p,然后因为这个指针存储的是地址所以要对a取地址(&)将值赋给指针p,也就是说这个指针p指向a. 很多新手都会对这两种定义方

快速理解孤儿进程和僵尸进程

下面是我大约11年前在读APUE(<Unix环境高级编程>)对孤儿进程和僵尸进程的理解,为了便于记忆,采用打比方的方式予以解释. (当然不一定精准,后面我会贴出wikipedia上的专业解释.) 操作系统OS好比一个公司,公司的CEO就是init进程. 任何一个子进程都有父进程,就好比任何一个人都有爹. 这里假定子进程为小明,父进程为小明的爸爸. init进程作为OS公司的CEO,是小明的爷爷(注:小明的爸爸很可能是CEO的第N代后人,N>=1,这里假定N=1). 任何一个进程在退出之后