https://my.oschina.net/jgy/blog/99631

localStorage简介

今夜死活睡不着,决定整理下最近搞得localStorage……

先简单说下阐述下:localStorage    规范:http://dev.w3.org/html5/webstorage/

localStorage用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。但是如果你找到浏览器的隐私或者本地存储的数据删除也是一样可以删除的!我找了下Safari浏览器如下图:


存储空间较大:IE8下每个独立的存储空间为10M,其他浏览器实现略有不同,但都比Cookie要大很多很多。本地存储不发生服务器,是离线保存在你浏览器本地的!不会与服务器发生任何交互。本地存储数据库在同样域名下的网页间是共享的,即便是在多个浏览器标签页中。我在做产品购物车的时间使用到了,这边选择产品,把产品属性拼接成JSON字符串保存到localStorage中,然后到购物车中去取……

独立的存储空间:每个域(包括子域)有独立的存储空间,各个存储空间是完全独立的,因此不会造成数据混乱。当把当前网页或者浏览器关掉并再进入时,localStorage中的数据还是存在的。那么,这个数据是存在什么地方的呢?查找后发现对于Chrome Browser, 其缺省存在以下地址:C:/Documents and Settings/UserName/Local Settings/Application Data/Google/Chrome/User Data/Default/Local Storage

支持浏览器也相当广泛!几乎支持html5的都支持。包括移动……下图不完整(WPX也是支持的)

判断浏览器是否支持本地存储:

一:

if(window.localStorage){
 alert('This browser supports localStorage');
}else{
 alert('This browser does NOT support localStorage');
}

localStorage使用方法

localStorage的用法极其简单!(Map格式(键-值))一共就这么多……

localStorage. length;    返回现在已经存储的变量数目
localStorage. key(n);    返回第n个变量的键值(key)
localStorage.getItem(key);      和localStorage.key一样,取得键值为key的变量的值
localStorage.setItem(key, val);     和localStorage.key = val一样,设置键值key的变量值
localStorage.removeItem(key);     删除键值为key的变量
localStorage.clear();   清空所有变量

用法很多,可以当成是一个对象方式使用……

localStorage.a = 1;      //设置a为"1"
localStorage["a"] = "FakeMr";      //设置a为"FakeMr",自动覆盖上面的值。

需要注意的是,HTML5本地存储只能存字符串,任何格式存储的时候都会被自动转为字符串,所以读取的时候,需要自己进行类型的转换。(个人比较喜欢:JSON.parse/JSON.stringify结合使用 )

拓展:IE6/7解决方案(网上搜的)

if(!window.localStorage && /MSIE/.test(navigator.userAgent)){  
    if(!window.UserData) {  
        window.UserData = function(file_name) {  
            if(!file_name) file_name="user_data_default";  
            var dom = document.createElement('input');  
            dom.type = "hidden";  
            dom.addBehavior ("#default#userData");  
            document.body.appendChild(dom);  
            dom.save(file_name);  
            this.file_name = file_name;  
            this.dom = dom;  
            return this;  
        };  
        window.UserData.prototype = {  
            setItem:function(k, v) {  
                this.dom.setAttribute(k,v);  
                this.dom.save(this.file_name);  
            },  
            getItem:function(k){  
                this.dom.load(this.file_name);  
                return this.dom.getAttribute(k);  
            },  
            removeItem:function(k){  
                this.dom.removeAttribute(k);  
                this.dom.save(this.file_name);  
            },  
            clear:function() {  
               this.dom.load(this.file_name);  
               var now = new Date();  
               now = new Date(now.getTime()-1);  
               this.dom.expires = now.toUTCString();  
               this.dom.save(this.file_name);  
            }  
        };  
    }  
    window.localStorage = new window.UserData("local_storage");  
}

PS:不支持原生 localStorage所有方法,只支持4种扩展出来的自定义方法……当然你还可以多多扩展(多多益善嘛!!)

本地存储—localStorage(HTML5)的更多相关文章

  1. html5的本地存储localStorage和sessionStorage

    html5的本地存储localStorage和sessionStorage html5中新增的比较重要的一个功能就是web storage来实现客户端本地存储数据,之前存储数据都是用cookie来实现 ...

  2. 本地存储localStorage以及它的封装接口store.js的使用

    本地存储localStorage以及它的封装接口store.js的使用 sublime-text chrome javascript readyGo 2016年11月20日发布   0 推荐 9 收藏 ...

  3. 本地存储 localStorage

    本地存储localStorage 概念:window对象下面的属性,html5新增的,将5M大小的数据存储本地的浏览器上面. 浏览器支持存储5M大小 本地存储localStorage特点 本地存储属于 ...

  4. 移动端浏览器隐私模式/无痕模式使用本地存储localStorage/sessionStorage的问题

    移动端浏览器隐私模式/无痕模式使用本地存储localStorage/sessionStorage的问题 开发H5 webapp时经常需要使用本地存储,如localStorage和sessionStor ...

  5. 本地存储localStorage sessionStorage 以及 session 和cookie的对比和使用

    cookie和session都是用来跟踪浏览器用户身份的会话方式. 1.验证当前服务中继续请求数据时,哪些缓存数据会随着发往服务器? 只有cookie中设置的缓存数据会发送到服务器端 2. 强调几点: ...

  6. HTML5 学习笔记(三)——本地存储(LocalStorage、SessionStorage、Web SQL Database)

    一.HTML4客户端存储 B/S架构的应用大量的信息存储在服务器端,客户端通过请求响应的方式从服务器获得数据,这样集中存储也会给服务器带来相应的压力,有些数据可以直接存储在客户端,传统的Web技术中会 ...

  7. HTML5 本地存储 localStorage、sessionStorage 的遍历、存储大小限制处理

    HTML5 的本地存储 API 中的 localStorage 与 sessionStorage 在使用方法上是相同的,区别在于 sessionStorage 在关闭页面后即被清空,而 localSt ...

  8. HTML5本地存储localStorage与sessionStorage

    在最近的项目中用到了html5的本地存储,下面总结一下. 1.html5几种存储形式 本地存储(localStorage && sessionStorage) 离线缓存(applica ...

  9. HTML5 本地存储 LocalStorage

    说到本地存储,这玩意真是历尽千辛万苦才走到HTML5这一步,之前的历史大概如下图所示: 最早的Cookies自然是大家都知道,问题主要就是太小,大概也就4KB的样子,而且IE6只支持每个域名20个co ...

  10. HTML5本地存储 localStorage

    HTML5的本地存储是大势所趋,如果仅存储在内存中,则是sessionStorage,他们的语法都是一样,仅仅是一个存储在本地文件系统中,另一个存储在内存中(随着浏览器的关闭而消失),其语句如下: l ...

随机推荐

  1. 全面解析C#中的异步编程

    当我们处理一些长线的调用时,经常会导致界面停止响应或者IIS线程占用过多等问题,这个时候我们需要更多的是用异步编程来修正这些问题,但是通常都是说起来容易做起来难,诚然异步编程相对于同步编程来说,它是一 ...

  2. .net mvc中session的锁机制

    今天遇到个奇怪的问题, 一个秒杀商品系统, 大量秒杀请求进来, 到了action居然是单线程执行! 这样产生的效果就是“这个系统好慢啊!!”. 可是我没有加lock,为什么会变成单线程执行呢? 找资料 ...

  3. 【免费培训】腾讯WeTest&TesterHome WorkShop | 一起学压测

    2019年,中国移动软件市场仍呈现快速增长趋势,移动新生态孕育而生.而移动软件质量问题越发受到用户的关注,成为用户体验的关键因素.目前移动软件测试人才稀缺,而性能测试作为一项高门槛.高技术的测试能力, ...

  4. Microsoft Visual Studio International Pack

    Visual Studio International Pack 包含一组类库,该类库扩展了.NET Framework对全球化软件开发的支持.使用该类库提供的类,.NET 开发人员可以更方便的创建支 ...

  5. Unity3D Shader 学习笔记(二):ShaderLab的结构和基本属性

    (一) ShaderLab: 什么是ShaderLab: Unity3D支持的Shader种类包括: 1.Surface Shader:表面着色器 2.Vertex & Fragment Sh ...

  6. 一个很NB的404页面

    一个带彩蛋的 404 页面 不得不说这个程序猿很有才 前往404页面 触发方法 按住鼠标左键 在页面中心不停的画圈 就可以进入神奇的地方了

  7. RabbitMQ入门:总结

    随着上一篇博文的发布,RabbitMQ的基础内容我也学习完了,RabbitMQ入门系列的博客跟着收官了,以后有机会的话再写一些在实战中的应用分享,多谢大家一直以来的支持和认可. RabbitMQ入门系 ...

  8. NO--13微信小程序,左右联动

    写在前面: 从2016年张小龙发布微信小程序这种新的形态,到2017年小程序的不温不火,再到今年小程序的大爆发,从一度刷爆朋友圈的‘头脑王者’,再到春节聚会坐在一起的火爆小游戏“跳一跳",都 ...

  9. PHPCMS增加SEO字段调用

     alter table v9_site add site_title_index varchar(255) not null;alter table v9_site add keywords_ind ...

  10. python—启动自带shell时报错(丢失api-ms-win-crt-runtime-l1-1-0.dll)已解决

    备注: 有的伙伴安装完1后重启,问题可以解决,summer儿在安装完1依然未能解决,于是又进行了2的安装再次重启后问题解决!! 1,安装vc-redist.x64,微软官网搜索免费下载,安装后重启. ...