我看到的问题是,当您使用Stripe的规范“Custom”指南将Stripe Checkout加载到页面中,进行配置,然后打开和关闭几次时,浏览器内存使用量不断增加。它有时会释放一点,但残留物始终增长。在长时间运行的页面/SPA上,最终会变得缓慢。
我相信这一定是关于“我”而不是Stripe。他们不可能在
- 使用
--enable-precise-memory-info
标志启动Google Chrome(无论是否使用此标志,问题都会发生) - 复制其网站上的“Custom”示例:https://stripe.com/docs/checkout#integration-custom (或使用自己的设置,结果相同)。
- 单击“购买”按钮(或触发
stripeInstance.open(cfg)
),调整弹出窗口,然后关闭。 - 重复第3步,逐渐观察内存
您可以使用memory-stats.js观察内存,或者只需在(Chrome)控制台中运行:
performance.memory.usedJSHeapSize
我相信这一定是关于“我”而不是Stripe。他们不可能在
open
和close
事件上泄露得如此严重,对吧?
编辑:这是一个 JS Fiddle,它直接复制了他们的演示代码:https://jsfiddle.net/p1Lfuewt/
还有一个 5 秒间隔的内存截图,基本上只是通过点击“购买”打开和关闭他们的小部件(不知道那个 Promise 错误是怎么回事,那是他们的问题):