Service Worker 的存储限制是多少?

2023-12-05

大多数浏览器提供 localStorage,每个域的存储限制为 5MB。 对于服务工作者是否存在这样的内存限制/约束?

我知道网络工作人员(服务工作人员所基于的)没有这样的限制。但 Web Workers 并不完全用于资源缓存,而是更多地用于处理(因此 CPU 是主要关注点)。

如果内存大小没有限制,设计糟糕的网站会让浏览器崩溃吗?


2018 年 1 月 15 日更新

The 存储管理器Storage API 接口正在成为所有与存储相关的 api 查询的标准。正如所提到的@米格尔-拉图阿达, the 估计API将提供网络应用程序使用的存储空间的估计值和可用存储空间。另外,请注意超出配额错误异常这将帮助我们处理错误场景。

eg code:

if ('storage' in navigator && 'estimate' in navigator.storage) {
  navigator.storage.estimate().then(({usage, quota}) => {
    console.log(`Using ${usage} out of ${quota} bytes.`);
  }).catch(error => {
    console.error('Loading storage estimate failed:');
    console.log(error.stack);
  });
} else {
  console.error('navigator.storage.estimate API unavailable.');
}

有关更多信息,请参阅以下 2 篇精彩文章:

  • MDN 网络文档 - 存储 API
  • Google 开发人员:估计可用存储空间

2017 年 3 月 16 日(仅供参考/历史)

最近我看到这篇文章:离线食谱其中规定如下:

Your origin 被赋予一定量的可用空间做它想做的事。那可用空间在所有原始存储之间共享:LocalStorage、IndexedDB、文件系统,当然还有缓存。

The 您收到的金额未指定,它会根据设备和存储条件而有所不同。您可以通过以下方式了解您有多少:

navigator.storageQuota.queryInfo("temporary").then(function(info) {
   console.log(info.quota);
   // Result: <quota in bytes>
   console.log(info.usage);
   // Result: <used data in bytes>
});

上面的代码可能不适用于所有浏览器。 (例如:在 chrome

其他有用的信息/资源

  1. As per 渐进式 Web 应用程序的离线存储通过阿迪·奥斯马尼

    In Chrome and Opera:您的存储是按源(而不是按 API)进行的。两种存储机制都会存储数据,直到达到浏览器配额。应用程序可以使用配额管理 API 检查它们使用了多少配额(如上所述)。

    Firefox无限制,但存储50MB数据后会提示

    Mobile Safari最大 50MB

    Desktop Safari无限制(5MB后提示)

    IE10+最大为 250MB,并在 10MB 时提示

  2. 更详细的指南在移动浏览器上使用配额作者:北村英二。

目前,这些是针对我的问题找到的最相关的文章/解决方案。如果有人知道更好的文章或规格,请分享。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Service Worker 的存储限制是多少? 的相关文章

  • 了解设置 JQuery 变量

    了解设置 JQuery 变量 最近 我通过在 StackOverflow 上遇到的另一个问题寻找帮助 了解到如何设置 JQuery 变量 如下所示 您可以通过简单地调用变量来创建输入字段 并且锚变量似乎也定义了样式 var clicked
  • 尝试将布尔 C# 变量传递给 javascript 变量并将其设置为 true

    在我的 aspx 页面中 我将布尔变量 C 传递给需要布尔类型的 javascript 函数 但遇到了问题 但是 C 变量返回 True 而 javascript 不喜欢大写 myjavascript 如果我将 c 变量转换为字符串 那么我
  • 解析“流”JSON

    我在浏览器中有一个网格 我想通过 JSON 将数据行发送到网格 但浏览器应该在接收到 JSON 时不断解析它 并在解析时将行添加到网格中 换句话说 在接收到整个 JSON 对象后 不应将行全部添加到网格中 应该在接收到行时将其添加到网格中
  • 如何重定向到 instagram://user?username={username}

    我的 html 页面上有这个链接 可以在特定用户上打开 Instagram 应用程序 a href Link to Instagram Profile a 我一直在寻找自动运行 url instagram user username USE
  • 使用 useReducers 调度函数发送多个操作?

    使用时是否可以通过调度函数发送多个动作useReducer挂钩反应 我尝试向它传递一组操作 但这会引发未处理的运行时异常 明确地说 通常会有一个初始状态对象和一个减速器 如下所示 const initialState message1 nu
  • 我想检查 $('#td1').text() === "x" 是否?

    我想检查innerHtml是否有X或O 所以我不能再次添加任何其他东西 但它不起作用 添加检查代码后它就停止了 我在这里尝试做一个简单的XO游戏来更熟悉javascript和jquery 我也不确定是否可以用 jQuery 做到这一点
  • 使用 JavaScript 使链接保持活动状态并在单击时显示悬停效果

    I am struggling to make this work I d like to make it where if O F is clicked the hover state stays active if another li
  • 如何防止 Iframe 在与浏览器交互后弄乱浏览器的历史记录?

    因此 就我而言 我使用 Iframe 将 Grafana 附加到我的页面 这为我提供了漂亮且易于使用的图表 可以注意到 每次在图表上进行放大或缩小 使用鼠标单击 交互后 Grafana 的 Iframe 都会在我的 Angular 页面上触
  • 使用 Angular 下载具有动态 src 的脚本

    Angular 提供了通过动态名称动态加载模板的方法ng include 该部分中的内联 JS 和 CSS 可以正常加载 但没有一个好的方法来下载带有动态 url 的脚本 我们需要下载脚本 相对于调用它们的 html 部分的路径 即我们有一
  • 如何监听 jQuery AJAX 请求?

    以下两种实现 ajaxRequest 1 2 的方法应该是等效的 话说回来 为什么验证回调已执行的单元测试 3 在 1 中成功而在 2 中失败 我应该如何重写测试 3 来监视 2 中的成功回调 如果我尝试stub jQuery ajax使用
  • 如何将 Google Charts 与 Vue.js 库一起使用?

    我正在尝试使用 Vue js 库使用 Google Charts 制作图表 但我不知道如何添加到 div 这是我尝试做的 这是如何使用普通 javascript 添加图表 这是文档的代码示例 https developers google
  • 将div设置为隐藏,延时后可见

    我试图在 X 时间后 也许甚至在随机时间之后 但现在我们只做固定时间 在黑色背景上出现一个黄色方块 function initialSetup if document getElementById yellow null document
  • Babel 7 Jest Core JS“TypeError:wks不是函数”

    将我的项目升级到 Babel 7 后 通过 Jest 运行测试会抛出以下错误 测试在 Babel 6 中运行没有任何问题 但在 Babel 7 中失败并出现以下错误 TypeError wks is not a function at Ob
  • 如何使输入字段和提交按钮变灰

    我想变灰这两件事 http doorsplit heroku com 歌曲输入字段和提交按钮 直到用户输入艺术家 有没有一种简单的方法可以通过 JQuery 来做到这一点 艺术家输入字段的id是 request artist 你可以这样做
  • Grails 在 javascript 内的 GSP 站点中使用 grails var

    我有一个在 GSP 文件中的 javascript 代码中使用 grails 变量值的问题 例如 我有一个会话值session getAttribute selectedValue 我想在 javascript 代码部分使用这个值 我现在的
  • 如何使用tampermonkey模拟react应用程序中的点击?

    我正在尝试使用 Tampermonkey 脚本模拟对 React 元素的点击 不幸的是 由于 React 有自己的影子 DOM 所以天真的方法使用document querySelector 不工作 我遇到了一些需要修改 React 组件本
  • Javascript转换时区问题

    我在转换当前时区的日期时间时遇到问题 我从服务器收到此日期字符串 格式为 2015 10 09T08 00 00 这是中部时间 但是当我使用 GMT 5 中的 new Date strDate 转换此日期时间时 它返回给我的信息如下 这是不
  • Javascript 纪元时间(以天为单位)

    我需要以天为单位的纪元时间 迄今为止 我已经看到过有关如何翻译它的帖子 但几天后就没有了 我对纪元时间很不好 我怎么能得到这个 我需要以天为单位的纪元时间 我将解释为您想要自纪元以来的天数 纪元本身是第 0 天 或第 1 天的开始 无论您如
  • 如何更改此 jquery 插件的时区/时间戳?

    我正在使用这个名为 timeago 的插件 在这里找到 timeago yarp com 它工作得很好 只是它在似乎不同的时区运行 我住在美国东部 费城时区 当我将准确的 EST 时间放入 timeago 插件时 比如 2011 05 28
  • 在 React.js 中编辑丰富的数据结构

    我正在尝试为数据结构创建一个简单的基于网格的编辑器 但我在使用 React js 时遇到了一些概念问题 他们的文档对此没有太大帮助 所以我希望这里有人可以提供帮助 首先 将状态从外部组件传输到内部组件的正确方法是什么 是否有可能将内部组件中

随机推荐

  • 如何为数组中的多个对象设置一个属性,但在 vue js 中保留单独的反应性

    就我而言 我有data包含多个对象的数组 data return selected 0 presetData true true true data name name 1 name name 2 然后我想将每个对象推入data像下面这样
  • 在 URL 中发送会话令牌到底有哪些安全问题?

    我正在针对 Struts 后端构建 Flex 客户端 并且我必须找到一种不依赖 cookie 来传输会话令牌的方法 因为我无法使用 cookie在 Flash 电影中 我正在考虑将令牌放入消息正文或 URL 中 从安全角度来看 将其放在 U
  • Google Drive Android API 共享问题

    是否可以使用 Android Drive API 与特定 Google 用户共享在 Google Drive 创建的文件 据说 http googledevelopers blogspot ru 2014 01 introducing go
  • 帮助理解 SVN 外部

    我正在为我的公司研究 svn externals 看起来这对我们来说是一个很好的功能 我们有几种产品经常引用共享组件 但有一个坏习惯 即落后于旧版本 有时甚至落后于不同分支的代码库 我已经阅读了有关它们现在如何工作的相当多的内容 并且我想我
  • 查看 gitlab 中子模块提交的差异

    我有一个 gitlab 版本 7 3 当我使用普通存储库时 它工作得很好 不过 我在 gitlab 项目中添加了一个 github 子模块 在我的仓库中 我在提交和推送 git push recurse submodules check 之
  • 编组 C 结构及其中的结构数组

    我在这个论坛中提到了类似的问题 但没有得到我的问题的解决方案 我已经在编组问题上苦苦挣扎了一段时间 我有一个结构 其中包含另一个结构的数组 该平台是Win CE 我使用的是 Visual Studio 2008 和 NET CF 3 5 代
  • 在 Tensorflow 中转换图像时,为什么会出现 ValueError('\'image\'必须完全定义。') ?

    我想通过在张量流中链接不同的图像转换运算符来进行实时数据增强 我的代码从图像解码开始 然后运行不同的转换 但它抛出了一个ValueError image must be fully defined 这是重现此错误的示例 def decode
  • Android 获取表列表

    有谁知道在Android中通过代码获取表名列表的SQL吗 我知道 tables通过命令 shell 执行此操作 但这不适用于代码 与元数据等有什么关系吗 只是不得不做同样的事情 这似乎有效 public ArrayList listTabl
  • ClassLoader.getSystemClassLoader().getResource()在servlet容器和测试环境中的不同行为

    我有一个网络应用程序 我的要求是读取一些文件并处理它 并在应用程序启动时将文件内容保留在数据库中 class MyUtil Read the files public static void readFiles File file new
  • 将指针 char 参数传递给线程中的函数

    当我执行此代码时 我收到 分段错误 核心转储 include
  • 基于多列创建滞后特征

    我有一个时间序列数据集 我需要提取滞后特征 我正在使用下面的代码 但得到了所有 NAN df groupby week id1 id2 id3 as index False value shift 1 input week id1 id2
  • 使用嵌套 foreach 循环从数组中获取值

    我有一个很长的数组 我希望从中获取所有值并将其存储在一个单独的变量中 并将每个值存储在数据库中 我拥有的数组是 Array success gt 1 categories gt Array 0 gt Array category id gt
  • Tomcat 的 Catalina 实用程序线程定期使用高 CPU 和内存

    We have a webapp that uses on average 20 CPU when idle with no network traffic or any kind of requests It is running on
  • PHP 中的 IP 到国家/地区 [重复]

    这个问题在这里已经有答案了 可能的重复 IP 到国家 地区 在 PHP 中从给定 IP 获取国家 地区的最佳方法是什么 看一眼 知识产权国家手册 您可以免费下载这个数据库 导入数据库后 您需要运行以下查询以从 IP 获取国家 地区 coun
  • 使用 coredata 时出现完全不相关的错误

    桥接标头 Users bobby Desktop Project Project Name Project Name Bridging Header h 不存在 我在尝试使用核心数据在我的 iPhone 应用程序中保存数据时遇到此错误 即使
  • Chrome 和 --allow-file-access-from-files

    我有一个 jquery AJAX 登录页面 可以在除 Chrome 之外的所有浏览器中完美运行 我似乎在 Chrome 中遇到了一个问题 该问题在Chrome 中使用本地文件的 jQuery getJSON 问题 有人说这是一个错误 有人说
  • 使用 iText 将 tiff 文件转换为 pdf 文件时出现异常

    当我尝试转换tiff文件至pdf文件通过使用itextpdf 5 5 5 出现以下异常 java lang RuntimeException 扫描线必须以 EOL 代码字开头 在 com itextpdf text pdf codec TI
  • 无法让 Beanstalkd 队列为 PHP 工作

    我有运行 XAMPP 的 Ubuntu 灯栈 Linux Apache MySQL PHP Pear 我想一起使用 PHP 和 Beanstalkd 来制作一个简单的队列 当用户继续时page1 php a JOB被发送到QUEUE for
  • 在定界文档中使用expect命令

    对于以下微小的期望脚本 其函数已添加到 bash 配置文件中 chai expect lt lt EOF spawn ssh myuser myserver expect send mypassword r EOF We get bash
  • Service Worker 的存储限制是多少?

    大多数浏览器提供 localStorage 每个域的存储限制为 5MB 对于服务工作者是否存在这样的内存限制 约束 我知道网络工作人员 服务工作人员所基于的 没有这样的限制 但 Web Workers 并不完全用于资源缓存 而是更多地用于处