https://web.dev/storage-for-the-web/#check

https://web.dev/storage-for-the-web/#:~:text=Chrome%20allows%20the%20browser%20to%20use%20up%20to,may%20allow%20the%20browser%20to%20use%20more%20storage.

  • 简而言之,很多,至少几百 MB,甚至可能是几百 GB 或更多。浏览器实施各不相同,但可用存储量通常取决于设备上可用的存储量。

    • Chrome 允许浏览器使用多达 80% 的总磁盘空间。一个来源最多可以使用总磁盘空间的 60%。您可以使用 StorageManager API 来确定可用的最大配额。其他基于 Chromium 的浏览器可能允许浏览器使用更多的存储空间。有关 Chrome 实施的详细信息,请参阅 PR #3896
    • Internet Explorer 10 及更高版本最多可以存储 250MB,并且在使用量超过 10MB 时会提示用户。
    • Firefox 允许浏览器使用多达 50% 的可用磁盘空间。eTLD+1 组(例如 example.com 、www.example.com 和 foo.bar.example.com最多可以使用 2GB。您可以使用 StorageManager API 来确定还有多少空间可用。
    • Safari(桌面版和移动版)似乎允许 1GB 左右。当达到限制时,Safari 会提示用户,同时以 200MB 的增量增加限制。我找不到有关这方面的任何官方文档。
      • 如果将 PWA 添加到移动 Safari 的主屏幕上,它似乎会创建一个新的存储容器,并且 PWA 和移动 Safari 之间不会共享任何内容。一旦已安装的 PWA 达到配额,似乎就没有任何方法可以请求额外的存储空间。

    过去,如果站点存储的数据超过某个阈值,浏览器会提示用户授权使用更多的数据。例如,如果来源的使用量超过 50MB,浏览器会提示用户允许它最多存储 100MB,然后以 50MB 的增量再次询问。

    如今,大多数现代浏览器都不会提示用户,而是允许站点最多用完为其分配的配额。Safari 好像是例外,它会在 750MB 时进行提示,请求允许存储最多 1.1GB。如果来源尝试使用的量超过为其分配的配额,则进一步尝试写入数据将失败。

如何检查有多少可用存储? #

许多浏览器中,您可以使用 StorageManager API 来确定来源的可用存储量及其目前使用的存储量。它会报告 IndexedDB 和缓存 API 使用的总字节数,还可以计算近似的可用剩余存储空间。

if (navigator.storage && navigator.storage.estimate) {
const quota = await navigator.storage.estimate();
// quota.usage -> 已用字节数。
// quota.quota -> 最大可用字节数。
const percentageUsed = (quota.usage / quota.quota) * 100;
console.log(`您已使用可用存储的 ${percentageUsed}%。`);
const remaining = quota.quota - quota.usage;
console.log(`您最多可以再写入 ${remaining} 个字节。`);
}

StorageManager 尚未在所有浏览器中实施,因此您必须在使用前对其进行功能检测。即使它可用,您仍必须捕获超出配额错误(见下文)。在某些情况下,可用配额可能会超过实际可用存储量。

Chrome 允许浏览器使用多达 80% 的总磁盘空间。一个来源最多可以使用总磁盘空间的 60%。的更多相关文章

  1. 基于.net开发chrome核心浏览器【七】

    这是一个系列的文章,前面六篇文章的地址如下: 基于.net开发chrome核心浏览器[六] 基于.net开发chrome核心浏览器[五] 基于.net开发chrome核心浏览器[四] 基于.net开发 ...

  2. IE/Firefox/Chrome等浏览器保存Cookie的位置

    IE/Firefox/Chrome等浏览器保存Cookie的位置 原文  http://smilejay.com/2013/04/browser-cookie-location/   前面写了篇长文( ...

  3. 基于.net开发chrome核心浏览器

    本文转载自:http://www.cnblogs.com/liulun/archive/2013/04/20/3031502.html 一: 上一篇的链接: 基于.net开发chrome核心浏览器[一 ...

  4. 基于.net开发chrome核心浏览器【四】

    原文:基于.net开发chrome核心浏览器[四] 一: 上周去北京出差,给国家电网的项目做架构方案,每天都很晚睡,客户那边的副总也这样拼命工作. 累的不行了,直接导致第四篇文章没有按时发出来. 希望 ...

  5. 基于.net开发chrome核心浏览器【三】

    原文:基于.net开发chrome核心浏览器[三] 本篇我们讲解怎么用CefGlue开发一个最简单的浏览器 一: CefGlue是建立在Cef项目之上的,Cef项目是C/C++的项目:CefGlue只 ...

  6. 基于.net开发chrome核心浏览器【二】

    原文:基于.net开发chrome核心浏览器[二] 一: 上一篇的链接: 基于.net开发chrome核心浏览器[一] 二: 相关资源介绍: chrome Frame: 让IE有一颗chrome的心, ...

  7. 基于.net开发chrome核心浏览器【一】

    原文:基于.net开发chrome核心浏览器[一] 说明: 这是本系列的第一篇文章,我会尽快发后续的文章. 源起 1.加快葬送IE6浏览器的进程 世界上使用IE6浏览器最多的地方在中国 中国使用IE6 ...

  8. chrome 等浏览器不支持本地ajax请求的问题

    chrome 等浏览器不支持本地ajax请求的问题 XMLHttpRequest cannot load file:///D:/WWW/angularlx/ui-router-test/templat ...

  9. 使用 Floccus 插件和坚果云同步 Chrome 类浏览器书签

    使用 Floccus 插件和坚果云同步 Chrome 类浏览器书签 魏刘宏  2019 年 11 月 22 日 如题,本文讨论在使用 Chromium 内核的浏览器上,使用 Floccus 插件,配合 ...

  10. webdriver(chrome无头浏览器)

    '''chrome无头浏览器''' from selenium.webdriver.chrome.options import Options # 导入相应的类 from selenium impor ...

随机推荐

  1. BAPI_OUTB_DELIVERY_CREATE_SLS、BAPI_OUTB_DELIVERY_CONFIRM_DEC 创建交货单,交货单过账

    FUNCTION zsd_dn_create1. *"-------------------------------------------------------------------- ...

  2. C#.Net筑基-优雅LINQ的查询艺术

    Linq(Language Integrated Query,集成查询语言),顾名思义就是用来查询数据的一种语言(可以看作是一组功能.框架特性的集合).在.NETFramework3.5(大概2007 ...

  3. C++的发展与抽象

    在此之前先说一些概念: 计算机最重要的两个元件:CPU(控制器.运算器).存储设备(寄存器.缓存.内存.硬盘). 算法需要实现,所以有了CPU,CPU需要运行算法,所以有了指令集.程序段,高级语言编写 ...

  4. R Studio操作技巧笔记

    快捷键 Ctrl+Shift+C 注释快捷键,可以添加/消除注释,也可多行注释 Ctrl + Shift + Enter 执行整个文件 Ctrl+Enter 运行当前/被选中的代码 Ctrl+L 清空 ...

  5. 富文本里解析vue、react组件

    react 封装的渲染富文本的组件: RenderRtf.tsx import { useState, useEffect, useRef } from "react"; impo ...

  6. Fans实验室1:大乐透中奖的概率

    大乐透中奖概率分析 前言 大乐透由前区35选5和后区12选2组成.本文将从数学角度分析各个奖级的中奖概率. 符号说明 \(C_n^m\) 表示从n个数中取m个数的组合数 前区: 35选5 后区: 12 ...

  7. C++线程池 基于C的实现 学习1

    简介 线程池是什么? 打饭的阿姨们 前去吃饭的人们,任务 管理组件 线程池由三部分组成 执行队列,线程s 任务队列,任务s 管理组件 类似于 银行营业厅 食堂打饭 每个打饭的人都是一个线程 管理制度 ...

  8. 使用rclone将linux服务器上的文件夹同步到nextcloud

    最近公司在用nextcloud管理文件,我写了一个python脚本,领导想看中间生成的图片,让我把图片同步到nextcloud上.上网搜了一些方法,最终用rclone实现,以下是实现过程. 服务器版本 ...

  9. 如何通过iPaaS快速集成SAP ERP

    SAP(Systems, Applications and Products in Data Processing)是一家德国软件公司,成立于1972年.SAP 是全球领先的企业软件解决方案提供商,其 ...

  10. ETL中如何运用好MQ消息集成

    一.ETL的主要作用 ETL(Extract, Transform, Load)是数据仓库中的关键环节,其主要作用是将数据从源系统中抽取出来,经过转换和清洗后加载到数据仓库中.具体而言: Extrac ...