Javascript 在间隔内调用函数后运行函数?

Javascript 在间隔内调用函数后运行函数?,javascript,jquery,greasemonkey,Javascript,Jquery,Greasemonkey,我正在制作一个油腻的脚本,我发现了一个问题。该网站有一个在一定时间间隔内运行的功能: jQuery(function1.run); setInterval(function1.run, function1.interval); 我想在function1.runinterval完成后立即运行我的函数。我无法更改网站代码中的任何内容,因此我只能依靠我将添加的内容 到目前为止,我尝试的所有方法都只调用了一次我的函数 我希望在function1.run interval完成后立即运行我的函数。我无法更

我正在制作一个油腻的脚本,我发现了一个问题。该网站有一个在一定时间间隔内运行的功能:

jQuery(function1.run);
setInterval(function1.run, function1.interval);
我想在
function1.run
interval完成后立即运行我的函数。我无法更改网站代码中的任何内容,因此我只能依靠我将添加的内容

到目前为止,我尝试的所有方法都只调用了一次我的函数

我希望在function1.run interval完成后立即运行我的函数。我无法更改网站代码中的任何内容

要可靠地做到这一点是很困难的。您可以将自己的函数设置为也在间隔上运行(通过将函数传递到
setInterval
),如果您使自己的间隔小于他们的间隔,则应确保在调用他们的函数之间至少调用一次函数(有时两次),但是你不能确定它是否会在他们之后立即运行

一些想法:

  • 只是让你的计时器间隔比他们的小一点;在他们的功能运行和您的功能运行之间可能仍然存在重大延迟:

    例如(最多运行30秒):

  • //它们的功能:每秒一次
    var=setInterval(函数(){
    log(“他们的”);
    }, 1000);
    //你的功能:每9/10秒一次
    var=setInterval(函数(){
    log(“您的”);
    }, 900);
    setTimeout(函数(){
    log(“停止”);
    清除间隔(他们的);
    clearInterval(你的);
    }, 30000);
    
    
    
    Third way在我看来很好,但当我实现浏览器时,浏览器挂起,显示javascript错误。我不知道为什么,但我猜这是因为已更改的元素是一个长字符串。@m0drzew:Length不重要。我的第一个想法是,它们的函数正在进行很多更改,并且您的函数被调用的次数太多,但这是突变观察者修复的事情之一(与突变事件相比)。不过,您可能会检查它是否被调用过多,并添加一些去抖动。现在我实现了第二个解决方案,现在它运行良好。现在我将尝试使用变异观察者。它适用于childList属性,但仍然-整个浏览器停止响应,我需要等待一段时间,直到我恢复控制。但是现在我得到了我想要的,所以谢谢。