2011-10-19 37 views
16

我從另一個開發拿起一個現有的項目,並在它們執行JS在三個不同的事件處理程序代碼的代碼香港專業教育學院注意到...的jQuery的document.ready VS頁面加載

function pageLoad() { 
//execute code 
} 

$(document).ready(function() { 
//execute code 
}); 

$(function() { 
//execute code 
}); 

我的問題是 - 他們都完全一樣嗎?或者至少最後兩個?我明白,pageLoad是由.NET框架調用的,所以它不依賴於像第二個那樣加載的jQuery庫 - 這就是我的理解 - 是關於正確的?

+2

最後兩個是完全一樣的。至於'pageLoad'和jQuery ready處理程序之間的區別,我找到了下面的文章; http://encosia.com/document-ready-and-pageload-are-not-the-same/ – Matt

+0

2.和3.函數在'DOMContentLoaded'事件(DOM就緒)上執行,1.函數是隻是一個聲明。 –

回答

0

$(文件)。就緒,將不會觸發對部分回發(從AJAX發生)。在這種情況下,當頁面從完整的回發或部分加載時需要執行某些操作時,應該使用MS AJAX pageLoad函數。

在Encosia網站上給出的文章是一個很好的閱讀。

18

$(文件)。就緒()

  • 理想的一次初始化。

  • 優化黑魔法;可能比pageLoad()稍早運行。

  • 不會將功能重新附加到受部分回發影響的元素。

pageLoad的()如果與使用的UpdatePanel

  • 不宜用於一次性的初始化。

  • 在某些瀏覽器中略少,但一致。

  • 非常適合將功能重新附加到UpdatePanels中的元素。