Chrome窗口共享window.opener javascript对象-内存泄漏和CPU使用率过高的问题?

时间:2019-05-21 16:26:34

标签: javascript google-chrome react-redux

我有一个应用程序,可以通过window.open()从主窗口打开多个子窗口。

父窗口从react-redux存储复制JavaScript对象,并将其存储在window对象内的函数中,例如window.getData() { return parentStore; }。在子窗口中,它通过调用window.opener.getData()获取JavaScript对象,并将其另存为parentStore在redux存储中。每个子窗口侦听每隔几秒钟的数据流,并且parentStore对象在redux存储中进行更新。

此外,子窗口中的多个用户操作也会触发对窗口对象的更新,例如window.store = updates

此应用程序的内存占用量随每个新窗口增加一倍,并且还在不断增加。 Chrome任务管理器中的CPU使用率每隔几秒钟也会激增> 100%。这些问题导致性能问题,导致应用程序几乎无法使用。

我的问题是-由于传递给子窗口的window对象实际上是原始窗口的引用,因此子窗口在更新Redux中的parentStore时实际上是在更新同一对象吗?存储和window.store对象?因此,由于它们都试图一次更新同一对象,从而导致较高的CPU使用率?如果是这样,应该如何避免或解决呢?

感谢对此问题的任何想法。

0 个答案:

没有答案