首页 > 其他分享 >记录--关于 HTML5 LocalStorage 的 5 个不为人知的事实

记录--关于 HTML5 LocalStorage 的 5 个不为人知的事实

时间:2022-10-15 16:34:00浏览次数:67  
标签:浏览器 -- SessionStorage 会话 LocalStorage HTML5 localStorage

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助

LocalStorage 是HTML5中一个方便使用的 API,它为 Web 开发人员 提供了一个易于使用的5MB的存储空间。使用 LocalStorage API 真的再简单不过了。不信看下:

//Save a value to localStorage
localStorage.setItem('key', 'value to save');
//OR
localStorage.key = 'string value to save';

//Get the value back out of localStorage
localStorage.getItem('key');
//OR
localStorage.key;

//Clear all localStorage values
localStorage.clear();

localStorage API 非常简单,但是很容易忽略有关它们的一些重要细节。关于这个简单的 API,您可能不知道(或可能已经忘记)以下五件事:

1. Secure (SSL) 页面上的 LocalStorge 值是隔离的

根据草案规范,浏览器根据 协议 + 主机名 + 唯一端口(也称为HTML5 Origin)隔离 LocalStorage 值。主机名实现隔离是我们所预期的,因为我们不希望恶意网站访问我们网站的 LocalStorage 数据。但是协议为什么也隔离(即http和https)?

这种隔离的结果意味着保存到http://htmlui.com上的 LocalStorage 的值不能被从https://htmlui.com的页面访问(反之亦然)。

因此如果您的网站同时提供 HTTP 和 HTTPS 页面,请务必小心。(注意:Firefox 提供了一个专有的GlobalStorage,它没有这种 HTTP/HTTPS 隔离。)

2. SessionStorage 值在某些浏览器重启后仍然存在

SessionStorage 与 LocalStorage 不同,它不是为在用户浏览器中长期保存值而设计的。相反,SessionStorage 中的值会在浏览器会话结束时被销毁,这通常是在浏览器窗口关闭时。

不过有一个例外。

当浏览器提供“恢复会话”功能时,通常旨在帮助用户从浏览器/计算机崩溃中快速恢复,SessionStorage 中的值也将被恢复。因此,虽然它是服务器上的一个新“会话”,但从浏览器的角度来看,它是浏览器重启后单个会话的延续。

这使得 SessionStorage 成为一种理想的存储技术,用于临时“备份”用户表单值、在输入时将输入保存到 SessionStorage 以及在页面加载时恢复(如果存在),以进一步帮助用户从浏览器崩溃或意外页面刷新中恢复(尽管浏览器会自行执行其中的一些操作,尤其是在从崩溃中恢复时)。

3.以“隐身”模式创建的LocalStorage值是隔离的

当您在私人/隐身/安全模式(有时更粗略和准确地称为“se情模式”)下启动浏览器时,它将为 LocalStorage 值创建一个新的临时数据库。这意味着当隐私浏览会话关闭时,保存到 LocalStorage 的任何内容都将被销毁,从而使 LocalStorage 的行为更像 SessionStorage。

此外,由于浏览器的“会话恢复”功能不会重新打开私有模式会话,因此在浏览器窗口关闭后,在 SessionStorage 中创建的任何内容也将丢失。实际上,简而言之,在隐私浏览会话期间放入 Local 或 SessionStorage 的任何数据都会在浏览器窗口关闭(有意或无意)后立即丢失。

4. LocalStorage 配额不能大于 5MB

LocalStorage 不应该是 HTML5 的浏览器内存储的主要形式(IndexDB 才是),但某些应用程序可能需要LocalStorage提供不止5m的内存。有没有办法扩大 LocalStorage 配额?没有,没有的,别想了,你在想peach

但是也有个旁门左道!

从技术上讲,LocalStorage 不会阻止同一主机(使用相同的协议和端口)的子域访问他的 LocalStorage 对象。因此,一些浏览器公开了一种解决方法,即授予“a1.website.com”和“a2.website.com”它们自己的 5MB LocalStorage 配额。并且由于两个站点位于同一来源,因此它们可以访问彼此的值。(安全方面注意:这也意味着共享域上的站点,例如 apphost.com,都共享一个 HTML5 存储对象。请谨慎操作!)

因此,虽然存在技术解决方法,但HTML5 Web 存储规范中特别不赞成它。。

但到目前为止只有 Opera 实现了规范的这一部分。所以现在,5MB 是你的现实限制。

5. LocalStorage 可以填充到旧浏览器(包括 IE)中

啊,旧版浏览器(特指 乐色IE浏览器),是每个 HTML5 派对上的失败者。幸运的是,高级浏览器对 LocalStorage 的支持非常好。它在 IE8+ (!)、Firefox 3.5+ 和 Chrome 4+ 中原生可用。很少有 HTML5 规范能像 Web 存储那样得到广泛且一致的支持。

对于旧版本的 IE,polyfill 支持是可用的,这要归功于一个名为“userData”的 IE-only 功能。在 IE5 中引入 userData 是一种 IE 行为,它会打开 1MB 的本地存储。通过包装 userData API,现代 HTML5 应用程序可以处理 polyfill LocalStorage 一直到 IE6(或 IE5,技术上)。

因此,请享受简单的 LocalStorage API,但要注意可能会造成一些令人困惑的调试的内部工作原理

本文转载于:

https://juejin.cn/user/1204720476893064

如果对您有所帮助,欢迎您点个关注,我会定时更新技术文档,大家一起讨论学习,一起进步。

 

标签:浏览器,--,SessionStorage,会话,LocalStorage,HTML5,localStorage
From: https://www.cnblogs.com/smileZAZ/p/16794452.html

相关文章

  • 快人一步,华为云CDN就是这么爽
    众所周知,现在的互联网基本上就是APP的天下,就连我们用的手机上面都要下载十几二十个APP,一旦运行多了,就会卡顿。由于文件数据的增加以及软件规模的增大,很多用户对下载体验和文......
  • luoguP1505旅游(处理边权的树剖)
    /*luogu1505非常简单的处理边权的树剖题。在树上将一条边定向,把这条边的权值赋给这条边的出点树剖的时候不计算lca权值即可*/#include<bits/stdc......
  • 内卷时代,华为云CDN如何带你拒绝“躺平”
    天下武功,唯快不破。在这个快节奏的内卷时代,各行各业都在比拼速度:汽车比提速,制造业比效率,互联网行业比下载、比运行……尤其是互联网在生活中的广泛应用,对于云加速产品的要求......
  • 你安全吗?华为云网站安全解决方案为企业提供全栈安全防护!
    你安全吗?最近这部非常火的电视剧在网上引起了广泛关注,该电视剧讲述了隐私安全泄露给我们生活带来的危害。虽然里面主要讲述的是个人,但其实对于企业来说也是同样的道理,而且由......
  • 刚看完spaceX记录片《回到太空》
    刚看完这部《回到太空》,跟前几周看的那部《不要抬头看》刚好形成对比,一部是记录片,真实人的情感,一部是名演员,但是所描述的也很宏观。之前看过埃隆马斯克的自传,虽然还没......
  • 增强企业发展耐力,华为云大数据BI助力多家企业成功转型!
    近年来,在互联网、移动互联网渗趋于饱和的背景下,数字经济正成为中国新的经济增长动力。作为数字化转型的赋能者,华为云正凭借着强悍的技术、海量资源、可靠的服务等,在安全、数......
  • 支持精确、主动防护,华为云网站安全解决方案高效可信赖!
    随着互联网技术的发展和企业数字化转型升级的加快,各种信息安全层出不穷,数据信息安全也引起了业内外的广泛重视。根据相关数据显示,当下信息安全攻中超过75%都发生在Web应用层......
  • DNS(Bind9) Anycast 数据中心部署 最终版
    DNS(Bind9)Anycast数据中心部署最终版问题点:现网使用的是windowsad域控加windowsdns的结构,支撑全网设备的加域和域名解析功能,但由于部分终端机不能动态更换dns服务器ip......
  • 制造or智造?华为云BI助力企业数字化转型
    随着数字化时代的到来,传统制造业逐渐走向没落。当然,也造就了一大批向数字化转型的制造企业,它们也正在迎来属于自己的高光时刻。那么,是什么样的原因,让曾经作为国内经济支柱的......
  • 铸造数据安全堤坝,华为云数据灾备解决方案就是强!
    大数据时代,企业数据安全与业务连续性仍面临多样挑战。特别是随着企业数字化转型升级的加速,数据内容的海量增长,给企业的数据安全保护带来了新的要求。根据ICD数据统计,美国在2......