浏览器本地存储,localStorage
一般不会用到这个浏览器的本地存储,项目中的数据一般都会存在后台的数据库中,需要时,则由前台进行请求获取。不过有些情况下不得不使用这个 localStorage 来做保存操作。比如绘制的图像数据,请求后台返回数据进行绘制,这时需要将之前请求的绘制图片数据进行保留,以便方便对比,而将之前请求绘制的图片数据放入数据库中保存很不方便,而且频繁切换或者数据量大时,会造成性能问题,这样是不合要求的,那怎么解决此类问题呢?想到了利用浏览器本地存储的方式,只要不清除历史记录,本地历史会一直保存,这样就会很方便的通过 api 来获取想要的数据,大大简化了与后台数据请求的此数,减少了其工作量等。
这里记录下操作的相关 api,常用的几个异常简单,可以把浏览器存储当成是一个巨大的对象来使用,不过由浏览器要求,记着是 IE9 以上,其他浏览器貌似都是支持的。
<!DOCTYPE html> <html > <head> <meta charset='utf-8'> </head> <body > <script language="JavaScript"> console.log(localStorage.a) if(window.localStorage){ alert(1) localStorage.a = 3 var b = localStorage.a console.log(b); }else{ alert(0) } console.log(localStorage.localObj); var obj = {name: 'ice'} localStorage.localObj = JSON.stringify(obj); console.log(localStorage.localObj); localStorage.clear(); console.log(localStorage.localObj); </script> </body> </html>
首先需要判断存不存在本地存储,再使用。
然后就是类似对象的调用一样,直接存储使用即可。
有的时候数据很多,建议先将数据转成 json 串,再进行存储,因为对象或数组,它有字节限制,超出后的部分会被丢弃,所以转成 json 完全无问题,获取的时候还需要反转成对象或数组哦别忘了!
还有个清除所有存储的 api :localStorage.clear();
会全部清除哦,谨慎使用~