我的编程空间,编程开发者的网络收藏夹
学习永远不晚

HTML5 中LocalStorage的作用是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

HTML5 中LocalStorage的作用是什么

HTML5 中LocalStorage的作用是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

首先自然是检测浏览器是否支持本地存储。在HTML5中,本地存储是一个window的属性,包括localStorage和 sessionStorage,从名字应该可以很清楚的辨认二者的区别,前者是一直存在本地的,后者只是伴随着session,窗口一旦关闭就没了。二者 用法完全相同,这里以localStorage为例。

JavaScript Code复制内容到剪贴板

  1. if(window.localStorage){  

  2.     alert('This browser supports localStorage');  

  3. }else{  

  4.     alert('This browser does NOT support localStorage');  

  5. }  

存储数据的方法就是直接给window.localStorage添加一个属性,例如:window.localStorage.a 或者 window.localStorage["a"]。它的读取、写、删除操作方法很简单,是以键值对的方式存在的,如下:

JavaScript Code复制内容到剪贴板

  1. localStorage.a = 3;//设置a为"3"  

  2. localStorage["a"] = "sfsf";//设置a为"sfsf",覆盖上面的值  

  3. localStorage.setItem("b","isaac");//设置b为"isaac"  

  4. var a1 = localStorage["a"];//获取a的值  

  5. var a2 = localStorage.a;//获取a的值  

  6. var b = localStorage.getItem("b");//获取b的值  

  7. localStorage.removeItem("c");//清除c的值  

这里最推荐使用的自然是getItem()和setItem(),清除键值对使用removeItem()。如果希望一次性清除所有的键值对,可以使用clear()。另外,HTML5还提供了一个key()方法,可以在不知道有哪些键值的时候使用,如下:

JavaScript Code复制内容到剪贴板

  1. var storage = window.localStorage;  

  2. function showStorage(){  

  3.     for(var i=0;i<storage.length;i++){  

  4.     //key(i)获得相应的键,再用getItem()方法获得对应的值  

  5.         document.write(storage.key(i)+ " : " +     storage.getItem(storage.key(i)) + "<br>");  

  6.     }  

  7. }  

写一个最简单的,利用本地存储的计数器:

JavaScript Code复制内容到剪贴板

  1. var storage = window.localStorage;  

  2.  if (!storage.getItem("pageLoadCount"))     storage.setItem("pageLoadCount",0);  

  3.  storage.pageLoadCount = parseInt(storage.getItem("pageLoadCount")) + 1;//必须格式转换  

  4.  document.getElementByIdx_x("count").innerHTML = storage.pageLoadCount;  

  5.  showStorage();  

不断刷新就能看到数字在一点点上涨,如下图所示:

HTML5 中LocalStorage的作用是什么

需要注意的是,HTML5本地存储只能存字符串,任何格式存储的时候都会被自动转为字符串,所以读取的时候,需要自己进行类型的转换。这也就是上一段代码中parseInt必须要使用的原因。

另外,在iPhone/iPad上有时设置setItem()时会出现诡异的QUOTA_EXCEEDED_ERR错误,这时一般在setItem之前,先removeItem()就ok了。

HTML5的本地存储,还提供了一个storage事件,可以对键值对的改变进行监听,使用方法如下:

JavaScript Code复制内容到剪贴板

  1. if(window.addEventListener){  

  2.     window.addEventListener("storage",handle_storage,false);  

  3. }else if(window.attachEvent){  

  4.     window.attachEvent("onstorage",handle_storage);  

  5. }  

  6. function handle_storage(e){  

  7.      if(!e){e=window.event;}  

  8.      //showStorage();  

  9. }  

对于事件变量e,是一个StorageEvent对象,提供了一些实用的属性,可以很好的观察键值对的变化,如下表:

 Property Type Description
 key String

 The named key that was added, removed, or moddified

 oldValue Any The previous value(now overwritten), or null if a new item was added
 newValue Any The new value, or null if an item was added
 url/uri String The page that called the method that triggered this change

这里添加两个键值对a和b,并增加一个按钮。给a设置固定的值,当点击按钮时,修改b的值:

JavaScript Code复制内容到剪贴板

  1. <body>  

  2. <p>You have viewed this page <span id="count">0</span>  time(s).</p>  

  3. <p><input type="button" value="changeStorage" onClick="changeS()"/></p>  

  4. <script>  

  5. var storage = window.localStorage;  

  6. if (!storage.getItem("pageLoadCount")) storage.setItem("pageLoadCount",0);  

  7. storage.pageLoadCount = parseInt(storage.getItem("pageLoadCount")) +1;//必须格式转换  

  8. document.getElementByIdx_x("count").innerHTML = storage.pageLoadCount;  

  9. showStorage();  

  10. if(window.addEventListener){  

  11.  window.addEventListener("storage",handle_storage,false);  

  12. }elseif(window.attachEvent){  

  13.  window.attachEvent("onstorage",handle_storage);  

  14. }  

  15. function handle_storage(e){  

  16. if(!e){e=window.event;}  

  17.  showObject(e);  

  18. }  

  19. function showObject(obj){  

  20. //递归显示object  

  21. if(!obj){return;}  

  22. for(var i in obj){  

  23. if(typeof(obj[i])!="object"|| obj[i]==null){  

  24.    document.write(i +" : "+ obj[i] +"<br/>");  

  25.   }else{  

  26.    document.write(i +" : object"+"<br/>");  

  27.   }  

  28.  }  

  29. }  

  30. storage.setItem("a",5);  

  31. function changeS(){  

  32. //修改一个键值,测试storage事件  

  33. if(!storage.getItem("b")){storage.setItem("b",0);}  

  34.  storage.setItem('b',parseInt(storage.getItem('b'))+1);  

  35. }  

  36. function showStorage(){  

  37. //循环显示localStorage里的键值对  

  38. for(var i=0;i<storage.length;i++){  

  39. //key(i)获得相应的键,再用getItem()方法获得对应的值  

  40.   document.write(storage.key(i)+" : "+ storage.getItem(storage.key(i)) +"<br>");  

  41.  }  

  42. }  

  43. </script>  

  44. </body>  

测试发现,目前浏览器对这个支持不太好,仅iPad和Firefox支持,而且Firefox支持得乱糟糟,e对象根本没有那些属性。iPad支持非常好,用的是e.uri(不是e.url),台式机上的Safari不行,诡异。

目前浏览器都带有很好的开发者调试功能,下面分别是Chrome和Firefox的调试工具查看LocalStorage:

HTML5 中LocalStorage的作用是什么

HTML5 中LocalStorage的作用是什么

另外,目前javascript使用非常多的json格式,如果希望存储在本地,可以直接调用JSON.stringify()将其转为字符串。读取出来后调用JSON.parse()将字符串转为json格式,如下所示:

JavaScript Code复制内容到剪贴板

  1. var details = {author:"isaac","description":"fresheggs","rating":100};  

  2.  storage.setItem("details",JSON.stringify(details));  

  3.  details = JSON.parse(storage.getItem("details"));  

HTML5 中LocalStorage的作用是什么 

 JSON对象在支持localStorage的浏览器上基本都支持,需要注意的是IE8,它支持JSON,但如果添加了如下的兼容模式代码,切到IE7模 式就不行了(此时依然支持localStorage,虽然显示window.localStorage是[object],而不是之前的[object Storage],但测试发现getItem()、setItem()等均能使用)。

JavaScript Code复制内容到剪贴板

  1. <meta content="IE=7" http-equiv="X-UA-Compatible"/>  

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网行业资讯频道,感谢您对编程网的支持。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

HTML5 中LocalStorage的作用是什么

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么在HTML5页面中使用localStorage

这期内容当中小编将会给大家带来有关怎么在HTML5页面中使用localStorage,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 一、什么是localStorage、sessionStorage在HTM
2023-06-09

html5遮罩的作用是什么

今天小编给大家分享一下html5遮罩的作用是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。html5遮罩的作用是指定一个
2023-07-05

HTML5 tbody标签的作用是什么

HTML5 tbody标签是用来定义表格主体内容的标签。它用于包裹表格中的行(tr标签),表示这些行是表格的主要内容部分。tbody标签的主要作用有:1. 提高可读性:通过使用tbody标签,可以将表格的主体内容与表头(thead标签)和表
2023-10-12

HTML5 placeholder属性的作用是什么

HTML5中的placeholder属性是用来给表单元素的输入框提供默认文本提示的。当用户点击输入框时,placeholder文本会自动消失,用户可以输入自己的内容。如果用户没有输入任何内容,输入框则会显示placeholder的文本提示。
2023-10-12

HTML5 audio标签的作用是什么

HTML5 audio标签用于在网页上嵌入音频文件,并可以通过控件进行播放、暂停、调整音量等操作。它可以播放多种音频格式,如MP3、WAV、Ogg等,并支持在不同浏览器和设备上进行兼容。通过使用audio标签,开发者可以轻松地为网页添加音频
2023-10-12

HTML5 input type属性的作用是什么

HTML5的input元素可以使用type属性来指定不同的输入控件类型,用于控制用户输入的内容和格式。type属性的作用主要有以下几个方面:1. 控制输入框的外观和功能:type属性可以设置为不同的值,如"text"、"password"、
2023-10-12

html5中base的用法是什么

html5中base标签的作用是为页面上的所有的相对链接规定默认URL或默认目标,在一个文档中,最多能使用一个<base>元素,并且必须位于<head>元素内部,其使用方法如“<head><meta charset="utf-8"> <title></title><base href="..." target="_blank"></head>
2023-05-14

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录