微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

dispatchEvent 上的 Chrome 内存泄漏

如何解决dispatchEvent 上的 Chrome 内存泄漏

        const focusEvent = new FocusEvent('focus',{
            bubbles: true   
        });

        // Trigger the input value in the search Box
        const inputEvent = new InputEvent('input',{
            bubbles: true
        });

        // Send enter
        const keyEvent = new KeyboardEvent('keydown',{
            code: 'Enter',key: 'Enter',keyCode: 13,view: window,bubbles: true
        });

        let search = document.querySelector('#side > div._1Ra05 > div > label > div > div._1awRl.copyable-text.selectable-text');

        function searchList(name = "") {
            try {
                search.textContent = name;
                search.dispatchEvent(focusEvent);
                search.dispatchEvent(inputEvent);
                search.dispatchEvent(keyEvent);

                search.removeEventListener('focus',focusEvent);
                search.removeEventListener('input',inputEvent);
                search.removeEventListener('keydown',keyEvent);

            } catch { console.log(error); };
        }

我正在使用 puppeteer 并且在 await page.evaluate(async ({ 内部我有一个循环在每个 function searchList调用 100 ms,问题是浏览器内存使用量不断增长, 30 分钟后超过 1GB 的内存。

我发现造成它的原因是 search.dispatchEvent 行,当我评论它们时,内存不会增加

我“试图”解决添加

search.removeEventListener('focus',focusEvent);
search.removeEventListener('input',inputEvent);
search.removeEventListener('keydown',keyEvent);

但是随着时间的推移,它并没有改变与内存增加有关的任何事情,有人知道我还可以尝试阻止或释放内存增长吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。