如何获得一组js函数在后台运行

How to get a group of js function running in background

本文关键字:函数 js 后台 运行 一组 何获得      更新时间:2023-09-26
self.showPanel();
self.updateSliderValue();
self.addPoints(1,2,3);
self.setOptions();
self.removeValues();

addPoints方法添加点到应用程序,它需要相当多的时间,所以我希望它在后台运行,应用程序去setOptions和它下面的其他功能。请帮助。

javascript是一个单线程应用程序,这意味着没有后台线程可以运行。

你可以做的是在主函数完成后运行addPoints函数,你可以使用setTimeout来做

setTimeout(function(){
    self.addPoints(1,2,3);
}, 0)

这将延迟addPoints的执行,直到当前脚本执行结束。

浏览器端有一些选项(假设客户端由于那里的jquery标签)

首先,您可以利用seimmediate:

https://developer.mozilla.org/en-US/docs/Web/API/window.setImmediate

第二,你可以使用计时器并拆分它,这是一个非常简单的例子,然后如果你想处理更多的事情,只需时不时地把它们塞进thingstodoarray中。

    int howoftentocheck = 60*1000; //60s
    var thingstodoarray = [];
    thingstodoarray.push("do this");
    function checkForStuffToDo(){   
        if(thingstodoarray.length){
            //.. do things be sure and pop or shift the thing you did.
       }else{
           setTimeout(function() { checkForStuffToDo() }, howoftentocheck)
       }
    }();

第三,你可以使用事件来代替轮询,所以注册事件,比如用jQuery或其他提供事件的库,然后你可以在你想做一些处理的时候触发它们,例如使用。on和。trigger。

http://api.jquery.com/trigger/

我相信还有其他的选择,但目标是保持你的事件循环紧密,这样你就不会影响用户体验,等等。