jQuery的頁面加載事件(2)


  作為剛實習半年的菜鳥來說,一直以來都覺得在五花八門的軟件行業必須要有自己的立場,我一直堅持將一門語言學精,同時注重算法內功,內外兼修,方可修成正果。最近項目做完閑來無事,想到做項目的時候JS用的多但是自己不是很會用,於是網上買了本一千多頁都書,每天花將近16個小時來看它。雖然之前有過Java和.net的基礎,但我覺得,從頭開始學,注重細節,才能將其學好。

  看書的同時,也在網上找Jquery的資料,個人覺得jQuery不僅是一個很好的框架,同時也是一個做的很好的JS項目,通過參考其源碼,不僅可以加深對JS的理解,同時也可以學習jQuery。兩得,豈不是很爽。

  昨天書上看到jQuery的頁面加載事件,於是將其和window.onload作了個對比,雖然后來發現了別人早就在自己的書上寫了這些東西,只是我自己沒有看到,不過畢竟是自己發現的,和在書上看到的自然當時的心情是不一樣的。

昨天上篇講到了window.onload事件和$()(或$(document).ready())事件的執行順序和執行數量

  • window.onload事件在頁面加載完全的時候才執行
  • $()在頁面框架搭好之后執行

今天又看到JS的命名空間看到這樣的代碼

( function() {
    
}()); //函數定義結束並調用它

於是寫了下面的測試代碼

( function() {
    alert("OK");
}());

頁面加載的時候,代碼運行如下:

那么這個是否也是一個頁面加載事件呢,於是我將其和昨天的代碼作了對比,例如:

window.onload = function() {
    console.log("---33---");
}

window.onload = function() {
    console.log("---33---");
}

$(function() {
    console.log("---11---");
});

$(function() {
    console.log("---121---");
}); 

( function() {
    console.log("---22---");
}()); 

( function() {
    console.log("---222---");
}());

運行結果出乎我的意料:

(function() {}());居然比$()還要快。我又看了jQuery的源碼發現居然和(function() {}());是一樣的。
(function( window, undefined ) 
//省略中間代碼
)( window );

於是我得出結論,JS是會在頁面加載的時候會加載所有的代碼,在聲明函數的時候調用自己,會立即執行。

對於JS的在瀏覽器中的運行,我還會繼續研究...


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM