HTML教程 HTML教程HTML是什么HTML 代码编辑器HTML 基础标签HTML 元素HTML 属性HTML 标题HTML 段落HTML 文本格式化HTML CSSHTML 头部HTML链接HTML 图像HTML 区块和行内元素HTML 表格HTML 列表HTML 引用和定义元素HTML 计算机代码元素HTML 布局HTML 框架HTML 脚本/JavaScriptHTML 文件路径HTML 颜色HTML 字符(编码)和实体HTML URL(网址)HTML XHTMLHTML - Web服务器HTML空格符(空格的代码)HTML表单 HTML 表单HTML 表单属性HTML 表单元素HTML 表单input类型HTML 表单input属性HTML多媒体 HTML多媒体HTML5 教程 HTML5 教程 从入门到精通HTML5 拖放/拖拽HTML5 语义元素 HTML5 新的 Input 输入类型HTML5 新表单元素HTML5 新的表单属性HTML5 canvas画布HTML5 SVG矢量图形HTML5 Audio(音频)HTML5 Video(视频)HTML5 Web WorkersHTML5 存储HTML5 WebSocketHTML5 IndexedDBHTML5 IndexedDB增删改查HTML 参考手册 HTML 全局属性HTML 事件属性HTML 世界语言代码缩略词ascii码对照表HTML 完整的 ISO-8859-1 参考手册HTML 符号实体参考手册HTML 字符集HTML URL编码表HTML Canvas 参考手册SVG 参考手册HTML 音频/视频 document 参考手册

HTML5 存储

一个比 cookie 更好的存储方式,HTML5 存储。

什么是 HTML5 存储?

使用HTML5存储可以在本地存储用户的数据。是 cookie 这方面的替代品。HTML5存储数据的两个对象为localStorage(本地存储)和sessionStorage(会话存储)。HTML5存储是基于浏览器的,不同浏览器数据是不共享的。

案例

html5计数器

HTML5计数器

<!DOCTYPE HTML>
<html>
<head>
<title>HTML5计数器-HTML教程www.xuandaima.com</title>
<script>
    function clickCounter()
    {
        if(typeof(Storage)!=="undefined")
        {
            if (localStorage.clickcount)
            {
                localStorage.clickcount=Number(localStorage.clickcount)+1;
            }
            else
            {
                localStorage.clickcount=1;
            }
            document.getElementById("result").innerHTML=" 你已经点击了按钮 " + localStorage.clickcount + " 次 ";
        }
        else
        {
            document.getElementById("result").innerHTML="对不起,您的浏览器不支持 web 存储。";
        }
    }
    </script>
    </head>
    <body>
    <p><button onclick="clickCounter()" type="button">点我!</button></p>
    <div id="result"></div>
    <p>点击该按钮查看计数器的增加。</p>
    <p>关闭浏览器选项卡(或窗口),重新打开此页面,计数器将继续计数(不是重置)。</p>

</body>
</html>

运行代码

支持浏览器

ChromeIEFirefoxsafarioprea

localStorage 和 sessionStorage

两者只有一个区别,就是sessionStorage在浏览器(或浏览器的标签页)关闭的时候清除数据,localStorage如果不手动清除则永久保存

应用场景:localStoragese:常用于长期登录(+判断用户是否已登录),适合长期保存在本地的数据。sessionStorage:敏感账号一次性登录;

不管是 localStorage,还是 sessionStorage,可使用的API都相同,常用的有如下几个(以localStorage为例):

注意提示: 键/值对通常以字符串存储,你可以按自己的需要转换该格式。

查看所有localStorage 和 sessionStorage

浏览器-》开发者工具-》应用-》存储-》查看所有localStorage 和 sessionStorage信息

360截图20230507175114523(1)_min.jpg

HTML5存储 vs cookie

HTML5存储cookie
HTML5存储浏览器可以存 5Mcookie 存储有限,浏览器最多存 4k
HTML5存储,无域名限制cookie 同域名下50个置顶(最新浏览器可能多些了)
HTML5存储不会传输到服务器cookie 都会随着网络请求,传输到服务器,一定情况下,会造成性能浪费
localStorage 永不过期,只能手动删除,sessionStorage浏览器(或浏览器的标签页)关闭的时候失效cookie 可以设置过期时间,时间到即过期
HTML5存储只能是当前的域名,无法更改,而且取不到其余域下的cookie 可以设置根域名
HTML5存储 没有 path,只能存储在根路径下cookie 可以设置 path 路径,用于做数据隔离
HTML5存储 使用 JS 操作的代码,比 cookie 操作的代码简单的多,因为它只有 key-value 这俩字段cookie 操作的代码简单较为简单
localStorage和sessionStorage的浏览器之间不可共享cookies在有些浏览器数据可共享,有些不行

是否支持localStorage 和 sessionStorage

if(typeof(Storage)!=="undefined")
{
    // 是的! 支持 localStorage  sessionStorage 对象!
    // 一些代码.....
} else {
    // 抱歉! 不支持 HTML5 存储。
}