W3CAPI 在线教程 | 菜鸟教程_LOGO
文档目录
文档目录
我的书签
 

HTML

HTML 5 基础教程

HTML是超文本标记语言,是一种专门用来制作网页的语言,而HTML5就是它的第五个版本,2014年10月29日,万维网联盟宣布,经过接近8年的艰苦努力,该标准规范终于制定完成,该标准针对当前互联网的飞速发展制定了更加标准的网页语言规范及适用功能,同时也给我们开发者带来了更多的开发选择,学习它是每个前端开发者必修的课程。

W3CAPI
1
2020-06-15 06:59:35

HTML5 数据存储简介

什么是 HTML5 Web 数据存储?

概念:使用HTML5可以在本地存储任何数据,HTML5 web 存储,提供了比cookie更好的本地存储方式。
特性:
  • 数据以 键/值 对存在, Web网页中存储的数据只允许该网页所属的域名访问使用。
  • HTML5 提供了两种在客户端存储数据的新方法:
    • localStorage - 没有时间限制的数据存储,用于长久保存整个网站的数据,保存的数据没有过期时间,除非手动删除
    • sessionStorage - 针对一个 session 的数据存储,用于临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后系统将会自动删除这些数据
  • 对于不同的网站,数据存储于不同的区域,并且一个网站只能访问其自身存储的数据
  • HTML5 使用 JavaScript 来存储和访问数据
  • 提供可存储大量数据而不影响网站性能的功能

为什么需要数据存储?

HTML5 出现之前,我们要想在本地存储数据使用的是 cookie。但是Web 存储需要更加的安全与快速(存储的数据不会被保存在服务器上,但是这些数据只用于用户在该网站使用; cookie 也不适合大量数据的存储,因为它存储的数据附加在每个对服务器的请求中来传递,这使得 cookie 速度很慢而且效率也不高),如何可以存储大量的数据,而不影响网站的性能是我们一直想要的功能,HTML5 给我们提供了这样的功能。

HTML5 Web存储 浏览器兼容

  • Internet Explorer 8+,Firefox,Opera,Chrome,和 Safari 都支持HTML5 Web 存储功能
  • Internet Explorer 7 及更早IE版本不支持 Web 存储
  • 在使用 HTML5 Web 存储之前,我们应检查浏览器是否支持 localStorage 和 sessionStorage
if( typeof(Storage) !=="undefined" )  {
    //您的浏览器支持 localStorage  sessionStorage 对象!
    // 处理数据的代码.....
} else {
    // 您的浏览器不支持 web 存储。
}

HTML5 localStorage 数据存储实例

一、使用 localStorage  存储字符串、数组、对象

localStorage 方法存储的数据没有时间限制。第二天、第二周或下一年之后,数据依然可用。使用 localStorage 来存储数据,只能存储字符串数据,如果想要存储其他数据:数组、对象、数字等,我们可以按自己的需要进行格式转换。
localStorage 其实就是一个对象,我们不仅可以使用它其中的方法:setItem(key,value); 来进行数据存储,我们也可以直接以给他添加属性的方式来存取数据:localStorage.name = "jesen"; 
  1. 使用 localStorage 的 setItem方法(或者以添加属性的方式)来存储数据
  2. 使用 localStorage 的 getItem方法(或者以读取属性的方式)来取出数据
<div id="result"></div>
<script type="text/javascript">
    // 浏览器兼容性检查
    if (typeof(Storage) !== "undefined") {

        // 存储字符串
        localStorage.setItem("name", "jesen");

        //存储数组
        //var array = [1,2,3,4,5,6];
        //localStorage.setItem("array", JSON.stringify(array));

        //存储对象
        //var person = {"name":"jesen","age":20};
        //localStorage.setItem("person", JSON.stringify(person));

        // 显示存储的数据
        document.getElementById("result").innerHTML = localStorage.getItem("name");
        //document.getElementById("result").innerHTML = JSON.parse(localStorage.getItem("array")).length;
        //document.getElementById("result").innerHTML = JSON.parse(localStorage.getItem("person")).name;

    } else {
        document.getElementById("result").innerHTML = "您的浏览器不支持 Web Storage ...";
    }
</script>
执行一下

二、使用 localStorage 实现页面访问次数的记录

<p>刷新页面会看到计数器在增长。</p>
<p>请关闭浏览器窗口,然后再试一次,计数器会继续计数。</p>
<script type="text/javascript">
    if (localStorage.pagecount)  {
        localStorage.pagecount=Number(localStorage.pagecount) +1;
    } else {
        localStorage.pagecount=1;
    }
    document.write("访问次数: " + localStorage.pagecount + " 次");
</script>
执行一下

HTML5 sessionStorage 数据存储实例

sessionStorage 方法针对一个 session(会话,一个网站的请求) 进行数据存储。当用户关闭浏览器窗口后,数据会被浏览器自动删除;适用于临时数据的存储。

一、使用 sessionStorage 存储字符串、数组、对象

<p><button onclick="clickCounter()" type="button">请点击这里</button></p>
<div id="result"></div>
<p>请点击按钮使计数器递增。</p>
<p>请关闭浏览器或标签页,然后再试一次,计数器会重置。</p>

<script type="text/javascript">
    function clickCounter() {
        if(typeof(Storage) !== "undefined") {
            if (sessionStorage.clickcount) {
                sessionStorage.clickcount = Number(sessionStorage.clickcount)+1;
            } else {
                sessionStorage.clickcount = 1;
            }
            document.getElementById("result").innerHTML = "在当前 session(会话) 中,您已经点击这个按钮 " + sessionStorage.clickcount + " 次。";
        } else {
            document.getElementById("result").innerHTML = "您的浏览器不支持 Web Storage ...";
        }
    }
</script>
执行一下

二、使用 sessionStorage 实现页面在当前session(网页会话)中访问次数的记录

<p>刷新页面会看到计数器在增长。</p>
<p>请关闭浏览器窗口,然后再试一次,计数器已经重置了。</p>

<script type="text/javascript">

    if (sessionStorage.pagecount)  {
        sessionStorage.pagecount=Number(sessionStorage.pagecount) +1;
    }
    else  {
        sessionStorage.pagecount=1;
    }
    document.write("您访问了该页面第 " + sessionStorage.pagecount + " 次.");

</script>
执行一下

HTML5 Web存储 常用类和方法

在HTML5 Web存储中我们使用到的类只有两个:localStorage和sessionStorage,不管是 localStorage,还是 sessionStorage,可使用的API都相同,下面列出了他们都包含的方法:
方法名 说明 语法用例
setItem 保存数据 localStorage.setItem(key,value);
getItem 读取数据 localStorage.getItem(key);
removeItem 删除单个数据 localStorage.removeItem(key);
clear 删除所有数据 localStorage.clear();
key 得到某个索引的key localStorage.key(index);
相关提问
敬请期待