javascript - 可以在浏览器中检查 'available memory' 吗?

标签 javascript google-chrome memory v8

我只是在编一个场景,但假设我有一个 500MB 的文件,我想为客户端提供一个 html 表来查看数据。假设有两种情况:

  • 他们通过具有 1.2GB 可用内存的桌面查看它。他们可以下载整个文件。
  • 后来,他们尝试在手机上查看同一张表。我们检测到他们只有 27MB 的可用内存,因此给他们一个警告,上面写着“我们检测到您的设备没有足够的内存来查看整个表格。您想下载一个示例吗?”

  • 忽略分页或虚拟表之类的东西,我只关心“如果完整的数据集可以适合用户的可用内存”。这是否可以在浏览器中检测到(即使有用户确认)。如果是这样,如何做到这一点?
    更新
    这个答案大约在 6 年前就已经回答过了,the question指向10年前的答案。我想知道当前的状态是什么,因为从那时起浏览器已经发生了很大的变化,而且还有 webassembly 等。

    最佳答案

    使用performance.memory.usedJSHeapSize .虽然它是非标准的并且正在开发中,但它足以测试所使用的内存。您可以在 edge/chrome/opera 上试用它,但不幸的是不能在 firefox 或 safari 上试用(截至撰写时)。
    属性 (performance.memory)jsHeapSizeLimit : 上下文可用的堆的最大大小,以字节为单位。totalJSHeapSize :总分配的堆大小,以字节为单位。usedJSHeapSize : JS 堆的当前事件段,以字节为单位。
    阅读更多关于 performance.memory : https://developer.mozilla.org/en-US/docs/Web/API/Performance/memory .
    CanIUse.com: https://caniuse.com/mdn-api_performance_memory
    CanIUse.com 2020/01/22
    CanIUseTableImage

    关于javascript - 可以在浏览器中检查 'available memory' 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65515488/

    相关文章:

    javascript - 使用 Google Apps 脚本获取 gmail 地址,错误 : redirect_uri_mismatch

    javascript - 在 Polymer 元素中使用 JavaScript

    javascript - 身份验证 ExpressJS -> PassportJs : Error: Can't set headers after they are sent

    python - Python 是否有堆栈/堆以及如何管理内存?

    memory - 汇编中的实验性操作系统 - 无法在屏幕上显示字符 (pmode)

    javascript - 如何隐藏 HTML 按钮

    javascript - HTML5 应用程序缓存错误事件详细信息

    javascript - 如何在 Chrome 中实现推送通知

    javascript - "' x'的含义不是函数或其返回值不可迭代”错误

    c - 函数作用域中 const 静态变量的内存分配