self.showPanel();
self.updateSliderValue();
self.addPoints(1,2,3);
self.setOptions();
self.removeValues();
addPoints
方法將指向應用程序,它需要相當大量的時間,所以我想它在後臺運行和應用程序轉移到它下面setOptions
等功能。請幫忙。如何得到一組js函數在後臺運行
self.showPanel();
self.updateSliderValue();
self.addPoints(1,2,3);
self.setOptions();
self.removeValues();
addPoints
方法將指向應用程序,它需要相當大量的時間,所以我想它在後臺運行和應用程序轉移到它下面setOptions
等功能。請幫忙。如何得到一組js函數在後臺運行
javascript是一個單線程應用程序,這意味着沒有什麼像運行的後臺線程。
你可以做的是主函數後運行功能addPoints
完成後,您可以使用setTimeout做
setTimeout(function(){
self.addPoints(1,2,3);
}, 0)
這將推遲addPoints
執行,直到當前的腳本執行結束了。
瀏覽器方面,你有一些選擇(假設客戶端由於jQuery的標籤存在)
首先,你也許能夠採取setImmediate的優勢:
https://developer.mozilla.org/en-US/docs/Web/API/window.setImmediate
其次,你可以使用定時器並將其分解,這是一個非常簡單的例子,如果你想處理更多的東西,只需將它們隨時都加入到thingstodoarray中。這方面的任何一個permuations。
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或提供事件的一些其他圖書館說的,那麼你就可以解僱他們,當你想要做一些處理,使用。對和例如觸發器。
我敢肯定還有其他幾個選項,但我們的目標是讓你的事件循環緊,這樣你就不會採取從用戶體驗了,等