首页 > 解决方案 > 直到 MutationObserver 回调函数彻底执行后页面才会刷新,需要很长时间

问题描述

我正在使用 JavaScript 为网站编写 chrome 扩展程序。当用户单击“更多结果”按钮时,屏幕上会显示更多结果。我用MutationObserver来监听网站 DOM 的变化并做了一些修改。这是代码。

var mo=new MutationObserver(function(mutations){
            mutations.forEach(mo_callback)
        })
mo.observe(document,{childList:true})

function mo_callback(mutation){
//first step, run quickly
//second step, make a request to an API, time wasting, need 5 secs or more
}

代码可以工作,但用户体验很差。由于第二步耗时较长,所以直到mo_callback完成后才显示结果。在加载我的扩展程序之前,用户可以在单击“更多结果”按钮后 1 秒内显示结果,但加载我的扩展程序后需要 5 秒或更长时间。第二步我试过用async function,但是由于第二步是mo_callback整体包含的,所以不行。

我希望结果可以立即或在第一步之后显示在屏幕上mo_callback。如何解决?

感谢你的帮助

标签: javascriptgoogle-chrome-extension

解决方案


推荐阅读