繁体   English   中英

Stripe Checkout泄漏内存吗?

[英]Is Stripe Checkout leaking memory?

我看到的问题是,当您使用规范的“自定义”指南将Stripe Checkout加载到页面中时,对其进行配置,然后打开和关闭它几次,浏览器内存使用量会不断跳跃。 有时,sorta会稍微释放,但残留总是会增长。 在一个长期存在的页面/ 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

我确信这必须是“我”而不是条纹。 他们在openclose事件上都不会泄漏那么糟糕吗?


编辑:这是一个JS小提琴,它可以复制他们的演示代码: https//jsfiddle.net/p1Lfuewt/

还有一个5秒间隔的内存屏幕截图,基本上只需点击“购买”即可打开和关闭它们的小部件(不知道那个承诺错误是什么,就是这些):

内存泄漏

不可能确切知道,但是他们可能会保留一些从未被释放的数据,或者可能是chrome的java脚本引擎,试图将所有内容缓存到未来。 您应该尝试单独离开页面一段时间,看看缓存是否出现故障。

简短的回答,是的。

较长的答案是,它肯定好像它。 附加的JSFiddle示例复制了Stripe规范文档 ,并且通过简单的打开和关闭Stripe的小部件的行为来复制内存问题是微不足道的。

handler.open({
  name: 'Stripe.com',
  description: '2 widgets',
  zipCode: true,
  amount: 2000
})
// Repeat for 💥

我们实施的(可怕的)解决方法是跟踪打开+关闭事件的数量,并在边缘情况达到这些级别的X事件后强制重新加载。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM