我知道,在編寫擴展時,除了使用setTimeout調用外,沒有辦法延遲函數調用,但這是我試圖在插件中實現的功能正在開發用於Firefox(這是不適合的方式嵌入到網頁中的JavaScript):Firefox插件中的Javascript:延遲for循環
爲(VAR I = 0;我< t.length;我++){
//Load a URL from an array //On document complete, get some data
}
這個想法很簡單。我有一組我需要解析和提取一些數據的URL。這些URL中的每一個都需要一些時間來加載。因此,如果我嘗試從當前頁面獲取一些數據而不等待頁面加載,則會出現錯誤。現在,爲了做到這一點,因爲我知道的唯一方法如下:
了firstFunction:函數(){
//Load the first url setTimeout("secondfunction", 5000);
}
secondfunction:函數(){
//Load the second url setTimeout("thirdfunction", 5000);
}
等等......我知道,這顯然是錯誤的。我只是想知道人們是如何在JavaScript實現這個...
編輯:對不起不是更詳細...
請添加一些更多的信息 - 也許我錯過了它,但我不明白你想要做什麼或問題是什麼。 –
你可以隱藏這個異步。編程風格更多,但這就是它。 – 2009-11-02 02:35:33
你在混淆你的問題。看起來你要求比setTimeouts更好的編寫代碼的方式(這樣你的邏輯就不會分散在多個函數中)。然後在對回覆的評論中說明你不想使用setTimeout的原因是因爲它不正確。如果是這種情況,請參閱James的回答 - 您應該使用適當的回調(不是基於時間的,而是基於事件的)。 – Nickolay