在年会的抽奖程序中用到了localStorage现在拿出来总结下,localStorage的相关用法。

在年会抽奖的程序中,需要把获奖名单存储下来,年会现场没有网络,能最简单实现数据存储的方式就是,将数据存到本地。在h5标准中正好有,localStorage支持。

兼容性

作为前端同学最关心的问题,我们可以在caniuse网站中看到兼容性的情况。



情况还是很乐观的。

如何使用

localStorage.msg="hello";
console.log(localStorage.msg);

在页面中执行如山代码的时候,当你关闭页面的时候,再次打开的时候还是可以读取到 localStorage.msg 的值

test页面

为了能更好的看到数据是可以读取到的我们尝试下面的实例

if (localStorage.pagecount) {
localStorage.pagecount =
Number(localStorage.pagecount) +1;
} else{
localStorage.pagecount=1;
}
console.log(
'Visits ' +
localStorage.pagecount +
' time(s).'
);

demo页面

如果你使用的是chrome浏览器的话,在chrome调试台中,你可以看到localStorage存储的数据。

进阶

localStorage 可以作为一个微型的本地“数据库”来用了,那么怎么实现数据的增删改查呢?如何遍历呢?还有localStorage有哪些限制?我们逐个来看看。(一下默认 localStorage = window.localStorage

1. 如何判断是否支持?

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

2. 有何限制?

localStorage 的存储格式都是字符串,任何其他类型都会转成字符串存储。

3. 如何存值(增)?

简单的方法直接赋值

localStorage.a = 1;//注意存储的值为'1'
localStorage['a'] = 1;

localStorage本身也有存值的方法setItem

localStorage.setItem('a','1');

4. 如何删除值(删)?

localStorage清除键值对的方法为removeItem,如果想一次清除所以值的话用

localStorage.removeItem('a');//清除a的值
localStorage.clear(); // 一无所有了所有数据都会干掉

5. 如何读取值(查)?

直接获取和getItem方法

var a1 = localStorage['a'];//获取a的值
var a2 = localStorage.a;//获取a的值
var a3 = localStorage.getItem('a');//获取a的值

localStorage还提供了key方法用于遍历。

function showStorage(){
for(var i=0;i<localStorage.length;i++){
//key(i)获得相应的键,再用getItem()方法获得对应的值
console.log(localStorage.key(i),
localStorage.getItem(
localStorage.key(i)));
}
}

浅谈localStorage本地存储的更多相关文章

  1. HTML5 localStorage本地存储

    介绍 localStorage(本地存储)的使用方式.包括对存储对象的添加.修改.删除.事件触发等操作. 目录 1. 介绍 1.1 说明 1.2 特点 1.3 浏览器最小版本支持 1.4 适合场景 2 ...

  2. 关于HTML5本地缓存技术LocalStorage 本地存储 和 SessionStorage

    如果你想在用户访问的时候记录或者记住他们的行为,你会想到的是什么,cookie 和session.但今天告诉你还有两种或者说是1种吧 那就是html5的 LocalStorage 本地存储和 Sess ...

  3. HTML5 LocalStorage 本地存储

    HTML5 LocalStorage 本地存储 说到本地存储,这玩意真是历尽千辛万苦才走到HTML5这一步,之前的历史大概如下图所示: 最早的Cookies自然是大家都知道,问题主要就是太小,大概也就 ...

  4. (转载)HTML5 LocalStorage 本地存储

    原文地址:http://www.cnblogs.com/xiaowei0705/archive/2011/04/19/2021372.html HTML5 LocalStorage 本地存储 说到本地 ...

  5. Localstorage本地存储兼容函数

    前言HTML5提供了本地存储的API:localstorage对象和sessionStorage对象,实现将数据存储到用户的电脑上.Web存储易于使用.支持大容量(但非无限量)数据同时存储,同时兼容当 ...

  6. HTML5 LocalStorage 本地存储(转)

    原文:http://www.cnblogs.com/xiaowei0705/archive/2011/04/19/2021372.html HTML5 LocalStorage 本地存储 说到本地存储 ...

  7. localstorage本地存储的简单使用

    我们在做页面时会用到本地存储的时候,今天说说localStorage本地存储. 1.localStorage.name="老王";      //第一种设置存储本地数据的方法loc ...

  8. 浅谈python字符串存储形式

    http://blog.csdn.net/zhonghuan1992 钟桓 2014年8月31日 浅谈python字符串存储形式 记录一下自己今的天发现疑问而且给出自己现有知识有的回答. 长话短说,用 ...

  9. localStorage本地存储技术

    localStorage 本地存储技术 本地存储技术,“不是永久的永久存储” 特点: 将数据存储到浏览器当中 存储的数据都是以字符串的形式存储的 和传统的数据库相比: 优点: 操作简单,容易学习 数据 ...

随机推荐

  1. map和reduce

    map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回. map()传入的第一个参数是f,即函数对象本身.由于 ...

  2. 关闭并且禁用ECSHOP缓存

    ECSHOP的缓存机制从一定程度上可以减少ECSHOP反复读取数据库的几率,从而一定程度上降低服务器负担,提高访问速度.但是启用缓存机制,对一些新手站长也有不利的地方.我就遇到很多新手站长经常问,我明 ...

  3. 距离顶部估计像素,显示div!

    <html> <head> <title>slide</title> <style type="text/css"> # ...

  4. Ubuntu下给Sublime Text 3添加用python3运行文件

    Ubuntu14.04: 菜单栏:Tools-Build System-New Build System { "cmd": ["python3", " ...

  5. uva1587 Box

    Ivan works at a factory that produces heavy machinery. He has a simple job -- he knocks up wooden bo ...

  6. 转载收藏之用 - 微信公众平台开发教程(七):解决用户上下文(Session)问题

    从这篇文章中我们已经了解了微信公众平台消息传递的方式,这种方式有一个先天的缺陷:不同用户的请求都来自同一个微信服务器,这使得常规的Session无法使用(始终面对同一个请求对象,况且还有对方服务器Co ...

  7. BZOJ 1977 次小生成树(最近公共祖先)

    题意:求一棵树的严格次小生成树,即权值严格大于最小生成树且权值最小的生成树. 先求最小生成树,对于每个不在树中的边,取两点间路径的信息,如果这条边的权值等于路径中的权值最大值,那就删掉路径中的次大值, ...

  8. linux下制作共享库.a和 .so

    接触linux时间不长,总是感觉底气不足,很多东西总是感到迷迷糊糊,其实是因为没找拿到linux C的两把钥匙: makefile和动态库.共享库.linux C中几乎所有的程序都是以库的形式给出,如 ...

  9. libeXosip2(2) -- General purpose API.

    General purpose API. general purpose API in libeXosip2-4.0.0. More... Modules eXosip2 configuration ...

  10. Unity 脚本函数生命周期

    Awake(),一般我们在这里做一些组件的获得,比如使用getcomponent方法. Start(),我们可以在这里给变量赋值. FixUpdate(),固定更新,因为这里得更新速度为固定(可以在T ...