前端缓存--LocalStorage(二)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端缓存--LocalStorage(二)相关的知识,希望对你有一定的参考价值。

参考技术A   在HTML5中,新加入了一个localStorage特性,这个特性主要是用来作为本地存储来使用的,解决了cookie存储空间不足的问题(cookie中每条cookie的存储空间为4k),localStorage中一般浏览器支持的是5M大小,这个在不同的浏览器中localStorage会有所不同。通常为string。

前端学习历程--localstroge

一、 localstorage的特性

1、需要ie8+

2、浏览器中都会把localStorage的值类型限定为string类型,这个在对我们日常比较常见的JSON对象类型需要一些转换

3、localStorage本质上是对字符串的读取,如果存储内容多的话会消耗内存空间,会导致页面变卡

4、localStorage不能被爬虫抓取到

 

二、localstorage使用规则

1、判断是否支持localStorage

2、localStorage的三种写入方法

 

在控制台中:

因为localStorage只支持string类型的存储

 

3、localStorage的使用也是遵循同源策略的,所以不同的网站直接是不能共用相同的localStorage

4、localStorage的读取方法

5、localStorage的修改方法

if(!window.localStorage){
            alert("浏览器支持localstorage");
        }else{
            var storage=window.localStorage;
            //写入a字段
            storage["a"]=1;
            //写入b字段
            storage.b=1;
            //写入c字段
            storage.setItem("c",3);
            console.log(storage.a);
            // console.log(typeof storage["a"]);
            // console.log(typeof storage["b"]);
            // console.log(typeof storage["c"]);
            /*分割线*/
            storage.a=4;
            console.log(storage.a);
        }

6、localStorage的删除方法

var storage=window.localStorage;
            storage.a=1;
            storage.setItem("c",3);
            console.log(storage);
            storage.clear();//清除所有
            console.log(storage);

 

var storage=window.localStorage;                
            storage.a=1;
            storage.setItem("c",3);
            console.log(storage);
            storage.removeItem("a");//清除某个键值对
            console.log(storage.a);

7、localStorage的键获取

var storage=window.localStorage;
            storage.a=1;
            storage.setItem("c",3);
            for(var i=0;i<storage.length;i++){
                var key=storage.key(i);//使用key()方法遍历索引
                console.log(key);
            }

8、将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);

9、判断localStorage是否已满

一般为5m,可检测当前已使用大小

而1m=1048576b

 

 


 










 

以上是关于前端缓存--LocalStorage(二)的主要内容,如果未能解决你的问题,请参考以下文章

前端性能优化-设置缓存

前端巧用localStorage做“缓存”,减少HTTP请求次数

useEffect 不监听 localStorage

教学典型案例13.学情页面逻辑问题

面localStorage用作数据缓存的简易封装

无法从服务器端的请求中获取令牌