我有一个应用程序,可以通过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使用率?如果是这样,应该如何避免或解决呢?
感谢对此问题的任何想法。