javascript - Stripe Checkout 是否泄漏内存?

标签 javascript google-chrome memory-leaks stripe-payments

我看到的问题是,当您加载 Stripe Checkout 时使用他们规范的“自定义”指南进入页面,配置它,然后打开和关闭它几次,浏览器内存使用量不断跳跃。有时,有点被释放了一点,但残留物总是在增长。在长期存在的页面/SPA 上,最终会爬取内容。

  1. 使用 --enable-precise-memory-info 标志启动 Google Chrome(无论有没有这个标志都会出现问题)
  2. 复制他们网站上的“自定义”示例:https://stripe.com/docs/checkout#integration-custom (或使用您自己的设置,结果是一样的)。
  3. 点击“购买”按钮(或触发您的 stripeInstance.open(cfg)),摆弄弹出窗口,关闭。
  4. 重复第3步,逐渐看内存💥

你可以用 memory-stats.js 查看内存或者只是在 (Chrome) 控制台中运行:

performance.memory.usedJSHeapSize

我确信这一定是“我”而不是 Stripe。他们不可能在 openclose 事件上泄漏这么严重,对吗?


编辑:这是一个 JS fiddle,它从字面上复制了他们的演示代码:https://jsfiddle.net/p1Lfuewt/

还有一个 5 秒间隔的内存屏幕截图,基本上只是通过单击“购买”来打开和关闭他们的小部件(不知道 promise 错误是什么,就是他们):

Memory leak

最佳答案

无法确定,但他们可能保留了一些永远不会释放的数据,或者可能是 chrome 的 java 脚本引擎试图为将来缓存所有内容。您应该尝试让页面单独放置一段时间,看看缓存内存是否出现故障。

关于javascript - Stripe Checkout 是否泄漏内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48287679/

相关文章:

xcode - AVAudioPlayer 和 SKAction.playSoundFileNamed(...) 导致内存泄漏

ios - 应用程序因内存压力而崩溃,我该如何解决它

javascript - 网页设计 : Client wants a rotation-based navigation bar

javascript - 未捕获的类型错误 : cannot read property cookie of undefined

javascript - 如何正确转义正则表达式中的字符

javascript - Chrome Javascript 日期比较错误

java - 在 Ubuntu 14.04 的 chrome 中安装 java 插件

javascript - 从 Parse.com 更新数据,无需重新登录

macos - 如何使用命令行在 Macos 上打包 Chrome 扩展程序?

c - 为什么 Valgrind 认为这个内存是 "definitely lost"?