2016-06-15 26 views
0

什麼是外部託管javascript文件相對於window.onload調用的執行流程。 假設我們有下面的代碼在外部文件:外部託管javascript文件的代碼是否可以與window.load並行執行?Page

(function() { 

    console.log('logging1...'); 
})(); 

var func1 = function() { 
    console.log('func1 invoked!'); 
}; 

func1(); 

的window.load被炒魷魚之前,

1)什麼是上面代碼的執行流程或輸出?

2.)是否有可能在window.load之後執行文件的任何代碼?

3.)與window.load並行,可以執行外部文件代碼。

+0

這個問題對我來說充滿了含糊之處。我建議閱讀http://stackoverflow.com/questions/8996852/load-and-execute-order-of-scripts和https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/加載並詢問更具體的問題。另外,JavaScript不是多線程的。你不能在js中並行運行任何東西(雖然你可以使用超時) –

回答

0

1.)以上代碼的執行流程或輸出是什麼?

通常是:

logging1... 
func1 invoked! 

有一個在這裏的函數調用的順序沒有歧義。但要注意的是console.log()沒有標準化來立即打印輸出。如果不按照console.log()函數調用的順序打印給定的參數,它可以很好地同步返回。

2.)是否有可能在window.load之後執行文件的任何代碼?沒有(當然除了事件監聽器,定時器等等的代碼之外)。

加載事件在文檔加載過程結束時觸發。在 這一點上,文檔中的所有對象都在DOM中,並且所有 圖片,腳本,鏈接和子幀已完成加載。 (https://developer.mozilla.org/de/docs/Web/API/GlobalEventHandlers/onload

3.)與window.load並行,可以執行外部文件代碼。

你是什麼意思與平行? JavaScript是單線程的。

相關問題