`

使用localStorage来做简单的页面缓存

 
阅读更多

localStorage使用总结

一、什么是localStorage、sessionStorage

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

 

二、localStorage的优势与局限

localStorage的优势

1、localStorage拓展了cookie的4K限制

2、localStorage会可以将第一次请求的数据直接存储到本地,这个相当于一个5M大小的针对于前端页面的数据库,相比于cookie可以节约带宽,但是这个却是只有在高版本的浏览器中才支持的

localStorage的局限

1、浏览器的大小不统一,并且在IE8以上的IE版本才支持localStorage这个属性

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

3、localStorage在浏览器的隐私模式下面是不可读取的

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

5、localStorage不能被爬虫抓取到

localStorage与sessionStorage的唯一一点区别就是localStorage属于永久性存储,而sessionStorage属于当会话结束的时候,sessionStorage中的键值对会被清空

这里我们以localStorage来分析

三、localStorage的使用

localStorage的浏览器支持情况:

这里要特别声明一下,如果是使用IE浏览器的话,那么就要UserData来作为存储,这里主要讲解的是localStorage的内容,所以userData不做过多的解释,而且以博主个人的看法,也是没有必要去学习UserData的使用来的,因为目前的IE6/IE7属于淘汰的位置上,而且在如今的很多页面开发都会涉及到HTML5\CSS3等新兴的技术,所以在使用上面一般我们不会去对其进行兼容

首先在使用localStorage的时候,我们需要判断浏览器是否支持localStorage这个属性
if(!window.localStorage){
            alert("浏览器支持localstorage");
            return false;
        }else{
            //主逻辑业务
        }


localStorage的写入,localStorage的写入有三种方法,这里就一一介绍一下

(我最喜欢用的一种就是直接把

localStorage.setItem("oneNameHc",$scope.productName);这一行插入到你想插入代码的下一行就
可以,然后一个页面就可以直接读取

 

$scope.oneNameHc = localStorage.getItem("oneNameHc");该行为读取

)

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

运行后的结果如下:

这里要特别说明一下localStorage的使用也是遵循同源策略的,所以不同的网站直接是不能共用相同的localStorage

最后在控制台上面打印出来的结果是:

不知道各位读者有没有注意到,刚刚存储进去的是int类型,但是打印出来却是string类型,这个与localStorage本身的特点有关,localStorage只支持string类型的存储。

localStorage的读取

if(!window.localStorage){
            alert("浏览器支持localstorage");
        }else{
            var storage=window.localStorage;
            //写入a字段
            storage["a"]=1;
            //写入b字段
            storage.a=1;
            //写入c字段
            storage.setItem("c",3);
            console.log(typeof storage["a"]);
            console.log(typeof storage["b"]);
            console.log(typeof storage["c"]);
            //第一种方法读取
            var a=storage.a;
            console.log(a);
            //第二种方法读取
            var b=storage["b"];
            console.log(b);
            //第三种方法读取
            var c=storage.getItem("c");
            console.log(c);
        }

复制代码

 

这里面是三种对localStorage的读取,其中官方推荐的是getItem\setItem这两种方法对其进行存取,不要问我这个为什么,因为这个我也不知道

我之前说过localStorage就是相当于一个前端的数据库的东西,数据库主要是增删查改这四个步骤,这里的读取和写入就相当于增、查的这两个步骤

下面我们就来说一说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);
        }

复制代码

 

这个在控制台上面我们就可以看到已经a键已经被更改为4了

localStorage的删除

1、将localStorage的所有内容清除
复制代码

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

复制代码

 

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

 
复制代码

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

复制代码

 

控制台查看结果

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);
                console.log(key);
            }

复制代码

 

使用key()方法,向其中出入索引即可获取对应的键

 

四、localStorage其他注意事项

 一般我们会将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);

复制代码

打印出来是Object对象

另外还有一点要注意的是,其他类型读取出来也要进行转换

分享到:
评论

相关推荐

    使用localStorage缓存js

    本篇文章将深入探讨如何使用 `localStorage` 来缓存JavaScript文件,从而提高页面加载速度,减少网络请求,提升用户体验。 `localStorage` 提供了一个持久化的存储空间,最大容量约为5MB,不同域之间是隔离的,保证...

    JS localStorage实现本地缓存的方法

    一种广泛使用的本地存储方法是使用JavaScript中的localStorage对象。localStorage属于Web Storage的一种,提供了在客户端存储大量数据的能力,并且存储的数据没有过期时间限制,除非我们显式地清除它们。 ### ...

    web项目页面缓存清除,不用每次刷新浏览器

    因此,了解如何正确地处理页面缓存清除,对于前端开发者来说是至关重要的。 本资源包提供了关于"web项目页面缓存清除"的操作手册和相关资源,帮助开发者解决因缓存导致的问题,确保用户每次都能看到最新的网页内容...

    移动端使用localStorage缓存Js和css文的方法(web开发)

    本文主要讨论如何利用浏览器的localStorage特性来缓存JavaScript(js)和CSS(css)文件,以降低页面加载时间。这种方法尤其适用于移动端,因为移动设备的网络连接可能不稳定或者速度较慢。 首先,localStorage是...

    react-React组件可以安全地在渲染阶段将数据保存到localStorage

    `localStorage` 提供了一种在用户浏览器中持久化存储数据的方法,即使页面关闭或刷新,这些数据仍然存在。本篇文章将深入探讨如何在React组件中安全地使用`localStorage`,以及与之相关的最佳实践和注意事项。 ### ...

    实现在客户端的页面缓存

    本文将深入探讨如何通过Flash插件实现客户端的页面缓存,以及这一技术的相关知识点。 首先,理解“客户端缓存”的概念至关重要。客户端缓存,也称为浏览器缓存,是Web浏览器为加快页面加载速度而存储的部分网页资源...

    网页缓存清除及页面刷新与关闭.doc

    清除缓存可以使用JavaScript中的localStorage和sessionStorage来实现。在上面的代码中,我们使用了sessionStorage来记录tempFlag的状态,以便判断是否需要清除缓存。 知识点4: cookie的概念 cookie是指浏览器保存...

    Vue利用localStorage本地缓存使页面刷新验证码不清零功能的实现

    今天我们使用本地缓存localStorage来实现页面刷新了,验证码倒计时还是和刷新时一样,而不是清零,其次我们可以使用localStorage去实现用户信息缓存,记住密码等等关于缓存的功能,在这里就简单演示一下验证码功能。...

    localstorage实现带过期时间的缓存功能

    一般可以使用cookie,localstorage,sessionStorage来实现浏览器端的数据缓存,减少对服务器的请求。 1.cookie数据存放在本地硬盘中,只要在过期时间之前,都是有效的,即使重启浏览器。但是会在每次HTTP请求中添加到...

    一个可以将静态资源jscss缓存到本地localStorage的小工具

    这样做有多个好处,包括提高页面加载速度、减少网络请求以及在网络不稳定时提供离线访问能力。 首先,我们要理解什么是localStorage。LocalStorage是HTML5引入的一种Web存储机制,允许网页在用户浏览器中存储键值对...

    本地缓存JSCSS.zip

    "本地缓存JSCSS.zip"这个压缩包文件提供了一种方法,通过利用浏览器的localStorage功能来存储JavaScript(JS)和样式表(CSS)文件,从而减少HTTP请求次数,优化页面加载时间。这种技术被称为本地缓存,它在现代Web...

    JavaScript使用localStorage存储数据

    10. 应用场景:localStorage适用于存储不敏感的、需要持久化的数据,如用户设置、网站的偏好设置、简单的缓存数据等。 11. 安全性考虑:虽然localStorage提供了便利的存储方式,但存储在客户端的数据安全性较低,不...

    Vue使用localStorage存储数据的方法

    在这个例子中,我们使用了Vuex(Vue的状态管理库)来集中管理数据,但如果没有Vuex,也可以直接将`localStorage`中的数据赋值给Vue实例的`list`属性。 总的来说,Vue.js 结合`localStorage`能帮助我们实现前端数据...

    基于jQuery的localStorage购物车.zip

    在本项目中,我们探讨的是一个使用jQuery和localStorage技术实现的简单购物车系统。这个系统是基于jQuery 3.4.1版本构建的,旨在帮助用户在本地存储商品选择,即使页面刷新或关闭,购物车中的商品也不会丢失。以下是...

    页面+缓存+线程.zip

    首先,我们来深入理解页面缓存。页面缓存是为了减少网络请求次数和降低服务器负载而设计的一种机制。当用户访问一个网页时,浏览器会将该页面的静态资源(如HTML、CSS、JavaScript、图片等)存储在本地缓存中。下次...

    cookies,sessionStorage 和 localStorage 的区别1

    使用 cookies、sessionStorage 和 localStorage 可以减少网络流量,提高页面加载速度。同时,这些机制还可以提供更好的用户体验,例如,用户可以在不需要重新登录的情况下继续购物。 结论 cookies、sessionStorage...

    利用localStorage实现对ueditor编辑内容定时保存为草稿

    当然,实际应用中可能还需要处理更多的细节,比如数据大小限制(localStorage的存储空间通常为5MB)、数据过期清理、用户手动清除缓存等。但以上的基本流程已经足以构建一个基本的草稿保存功能。在实践中,可以结合...

Global site tag (gtag.js) - Google Analytics