我看到的问题是,当您使用规范"自定义"将Stripe Checkout加载到页面中时指导,配置,然后打开和关闭它几次,浏览器内存使用量不断跳跃。有时,sorta会稍微释放,但残留总是会增长。在一个长期存在的页面/ SPA上,最终会爬行。
--enable-precise-memory-info
标记启动Google Chrome(无论是否带有此标记,都会出现问题)stripeInstance.open(cfg)
),摆弄弹出窗口,关闭。您可以使用memory-stats.js或仅使用(Chrome)控制台观看内存:
performance.memory.usedJSHeapSize
我确信这必须是"我"而不是条纹。他们绝不会在open
和close
事件中泄露这么糟糕吗?
编辑:这是一个JS小提琴,可以复制他们的演示代码:https://jsfiddle.net/p1Lfuewt/
内存的5秒间隔屏幕截图,基本上只需打开和关闭他们的小部件,点击"购买" (不知道承诺错误是什么,那是他们的):
答案 0 :(得分:0)
不可能确切地知道,但是他们可能会保留一些从未被释放的数据,或者可能是chrome的java脚本引擎,试图将所有内容缓存到未来。您应该尝试单独离开页面一段时间,看看缓存是否出现故障。
答案 1 :(得分:0)
简短的回答,是的。
答案越长,确定似乎就像它一样。附件JSFiddle example复制了Stripe canonical docs,并且可以轻松复制打开和关闭Stripe小部件的简单行为中的内存问题。
handler.open({
name: 'Stripe.com',
description: '2 widgets',
zipCode: true,
amount: 2000
})
// Repeat for
我们实施的一个(可怕的)解决方法是跟踪打开+关闭事件的数量,并在边缘情况达到这些级别的X事件后强制重新加载。