2014-05-07 18 views
0

將事物作爲div的高度或各種css規則操作時,文檔完全加載是件好事。那麼爲什麼不在操縱dom中的對象時總是使用(window).load而不是(document).ready?window.load使用jQuery進行所有dom操作?

+0

'將事物作爲div的高度或者各種css規則操作時,文檔完全加載是一件好事情。「並不是真的,事實上你最好使用文檔準備好。但可以肯定的是,這取決於你在尋找什麼 –

回答

1

因爲「準備好文檔」要早得多。它表示DOM已經加載並準備好進行操作。另一方面,「窗口負載」還包括圖像,視頻和可能的閃存元素 - 所有可能需要很長時間才能加載的元素(尤其是Flash,除非它具有合適的預加載器),並且您會必須等到你的頁面做任何事情之前,即使沒有理由。

+0

好點,但是爲了改變高度,讓我們說根據它們的高度window.load的div中的圖像。 –

+0

不是。一旦圖像開始下載,圖像就會暴露出它們的「寬度」和「高度」屬性,這在window.onload被觸發之前可能會持續幾秒鐘。 –

+0

我有一個我現在正在處理的博客,並且側邊欄需要伸展到與主要博客文章具有相同的高度。我使用jQuery來做到這一點,如果我正在做(文檔).ready,我有時會得到正確的結果,而其他時候我會得到完全錯誤的結果。如果我在(窗口).load內部執行它,我總會得到正確的結果。 –

3

這當然取決於你的需求。

假設您的網站有很多圖片,但您需要某些事件需要在文檔準備就緒後立即觸發,然後使用$(window).load(//您的事件)將等待所有首先加載圖像,然後觸發事件。 在這種情況下,最好使用$(document).ready(//你的事件)。

您可以按照在這裏這個問題,

What is the difference between $(window).load and $(document).ready?

0

因爲你今天可以做什麼,你不要等待明天。在Dom準備好之後立即啓動文件,因爲窗口加載等待所有資源下載。