博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简要记录下localStorage在项目中的应用之一
阅读量:5809 次
发布时间:2019-06-18

本文共 3560 字,大约阅读时间需要 11 分钟。

localStorage作为HTML5本地存储web storage特性的API之一,主要作用是将数据保存在客户端中. localStorage保存的数据,一般情况下是永久保存的,也就是说只要采用localstorage保存信息,数据便一直存储在用户的客户端中。即使用户关闭当前后重新启动,数据仍然存在。知道用户或程序明确制定删除,数据的生命周期才会结束。 一、放入和取出: 下面介绍一个实际项目中的情况,   比如说有一个编辑页面,叫他页面A,都是可编辑,可更改的信息,如下图:   

 

   比如说一个人之前保存了这个信息,现在,他有些信息想更改。就打开了这个编辑页面,原有保存的信息会展示出来,当然,这个不是用localstorage做的,现在是,要求这个人的名字不能和其他的人重复,所以,正常的思路是 ,在姓名 onblur 的时候,走接口,从数据库验证是否有重复的,如果有重复的,就提示已存在。但是现在遇到一个问题就是,如果,这个人进入这个页面,他只是把光标在姓名的input上面点了一下,然后再失焦,前提是他并没有想改名字。但是,当他失焦的时候,会执行onblur,走接口,这样就会弹出已存在。那么该怎么解决呢?我想的解决方法是:

  一进入编辑页面,就获取到姓名,然后存到localStorage里面,当失焦的时候,先把当前姓名input里面的姓名获取,并和存入localStorage的做对比,如果相同,就不走接口验证,如果不相同,在走接口验证姓名是否重复,若重复再弹出提示已存在,代码如下:

//页面一进来就把班组课名字存入localstorage        var name = $('inputName').val(),        editNameArr = [];            editNameArr.push(name);            window.localStorage.setItem('editclassArr',editNameArr);//这里的set是存入的意思,下面的get,是从localstorage中获取的意思,即再取出来。        var getProSel = window.localStorage.getItem('editclassArr');            if(window.localStorage.getItem('editclassArr') == null){                getProSel = [];            }            console.log(getProSel);            //验证是否重名             $('body').on('blur','.AA',function(event){                //console.log(getProSel.indexOf($(this).val()) != -1);//是相同的                 if(getProSel.indexOf($(this).val()) != -1){//等于-1 是找不到相同的 的意思,不等于-1就是说明找到相同匹配的。                    $(this).removeClass('border-red');                }else{
var courseName = '', self = $(this), valu = self.val(); if(valu != ''){ $.ajax({ url: '',//接口地址 type: 'POST',//请求类型 data:,//参数 traditional: true, dataType: "JSON",//数据类型 success: function(data){
} }); } } })

  注意存储进去的是int类型,但是打印出来却是string类型,这个与localStorage本身的特点有关,localStorage只支持string类型的存储

 二、localStorage的删除

  1、清除localStorage的所有内容:

var storage=window.localStorage;            storage.a=1;            storage.setItem("b",2);            console.log(storage);            storage.clear();            console.log(storage);

  2、将localStorage中的某个键值对删除:

var storage=window.localStorage;            storage.a=1;            storage.setItem("b",2);            console.log(storage);            storage.removeItem("a");            console.log(storage.a);

  结果2:a=1,b=2                             undefined

三、字符串转换:

  一般我们会将JSON存入localStorage中,但是在localStorage会自动将localStorage转换成为字符串形式,

  这个时候我们可以使用JSON.stringify()这个方法,来将JSON转换成为JSON字符串。

if(!window.localStorage){            alert("浏览器支持localstorage");        }else{            var storage=window.localStorage;            var data={                name:'xiecanyong',                sex:'man',                hobby:'program'            };            var d=JSON.stringify(data);            storage.setItem("data",d);            console.log(storage.data);        }

  读取之后要将JSON字符串转换成为JSON对象,使用JSON.parse()方法

var storage=window.localStorage;            var data={                name:'xiecanyong',                sex:'man',                hobby:'program'            };            var d=JSON.stringify(data);            storage.setItem("data",d);            //将JSON字符串转换成为JSON对象输出            var json=storage.getItem("data");            var jsonObj=JSON.parse(json);            console.log(typeof jsonObj);

 

转载于:https://www.cnblogs.com/beyrl-blog/p/7338930.html

你可能感兴趣的文章
我国迈入物联网2.0时代 2020年市场将超过四万亿
查看>>
亚信安全提醒:APT防范要当心“水坑”
查看>>
云计算环境下的身份安全管理
查看>>
大数据和物联网:在制造业、医疗保健和智慧城市的成功应用
查看>>
《并行计算的编程模型》一3.6.2 fence和quiet:RMA操作排序
查看>>
爱奇艺龚宇:用情怀搭建VR真生态
查看>>
看我如何使用数据格式混淆来绕过WAF进行攻击?
查看>>
CentOS7搭建Hadoop + HBase + Zookeeper集群
查看>>
国行 Xbox One 遭遇两连击
查看>>
物联网将成为改变未来的新力量
查看>>
虚拟运营商三年难“转正” 电信诈骗等成了绊脚石
查看>>
数据中心扩容不可忽视的一种重要因素:承重
查看>>
一篇看完就把Vue.js融会贯通
查看>>
创业公司做数据分析(一)开篇
查看>>
网络直播被严查,机器如何帮助鉴别小黄图?
查看>>
用小米手环装逼,你不可不知的五个姿势
查看>>
海妖音乐魏清晨:科技读心术
查看>>
手机只需发条消息即可开始大规模SQL注入攻击
查看>>
数据中心基础架构标准化能否彻底改变超大规模IT部署?
查看>>
存储技术复杂性的代价
查看>>