如何获得一组js函数在后台运行
How to get a group of js function running in background
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/我相信还有其他的选择,但目标是保持你的事件循环紧密,这样你就不会影响用户体验,等等。
相关文章:
- 为什么我的控制器没有启动函数.js脚本
- 在函数js中传递变量
- 如何在单独的文件中调用函数 js.
- 在铯中调用函数.js当事件被尝试时
- 只有setTimeout执行函数.JS
- 为什么图像选择器程序中的这个函数 js 不起作用
- 获取邮件中的信息.php从函数.js解析为manage.html
- 如何从应用程序中调用JS函数.js在Rails4视图中
- Uncatch TypeError: obj.attr 不是函数 JS
- 从 C++ 节点调用 JavaScript 函数.js扩展
- 调用 Backbone 内部的外部函数.js的视图初始化方法
- 如何使用 Scala 创建 JavaScript 函数.js
- 使用带有下划线循环的回调函数.js骨干.js项目不起作用
- 获取字段值的函数-JS
- 函数js不能递归调用自己的函数
- 在函数JS中创建带有地理代码的标记
- 循环内部的函数(js/jquery)
- 我需要帮助将此代码添加到jQuery函数.js文件中
- 未捕获类型:未定义不是函数JS错误
- 停止多个内联函数JS的事件传播