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/

    相关文章:

    google-chrome - 有人针对Google Chrome吗? (网络应用程序,插件)

    Objective-C:无故改变int值

    c - 在C中复制字符串(包括内存分配、指针等)

    Javascript 正则表达式替换(编码)url

    javascript - AngularJS 中的位置更改和 Controller 管理

    PHP/AJAX 并发 session 仅在 Chrome 中行为不端

    python - 为什么 lxml.etree.iterparse() 会占用我所有的内存?

    javascript - animejs的时间间隔

    javascript - 如何加载只会添加一个额外脚本的 JS 脚本

    javascript - 为什么我的 Google Picker 窗口不会出现在浏览器中