菜鳥學JS(五)——window.onload與$(document).ready()


我們繼續說JS,我們常常在頁面加載完成以后做一些操作,比如一些元素的顯示與隱藏、一些動畫效果。我們通常有兩種方法來完成這個事情,一個就是window.onload事件,另一個就是JQuery的ready()方法。那么這 兩種方法有什么區別呢?往下看:

onload事件,是在頁面中所有元素以及內容全部加載完成以后觸發的;而ready()方法,則是在頁面的DOM結構加載完畢以后就被觸發了。也就是說ready()方法會在onload事件之前執行。


舉一個例子:

假設有一個表現圖庫的頁面,這種頁面中可能會包含許多大型圖像,我們可以通過jQuery隱藏、顯示或以其他方式操作這些圖像。如果我們通過onload頁面設置界面,那么用戶在能夠使用這個頁面之前,必須要等到每一幅圖像都下載完成。更糟糕的是,如果行為稍微添加給哪些具有默認行為的元素(比如鏈接),那么用戶的交互可能會導致意想不到的結果。然而當我們試用$(document).ready(){ }進行設置時,這個界面就會更早地准備好可用的正確行為。

使用$(document).ready(){ }一般來說都要優於試用onload事件處理程序,但必須要明確一點的是,因為支持文件可能還沒有家在完成,所以類似圖像的高度和寬度這樣的屬性此時不一定有效。


onload事件通常寫成如下形式:

function myfunction() {
    
    //your code
    
};

window.onload = myfunction;


或者:

window.onload = function(){
    
  //your code

};



ready()方法通常如下:

$(document).ready(function(){

    //your code
    
});



或者:

$().ready(function(){
    
    //your code
    
});



再或者:

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

 

接下來再看兩個例子:

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

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

window.onload = second;
window.onload = first; 

 

這段代碼會彈出“first”。

 

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

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

$(document).ready(function(){
    
    first();
    
});

$(document).ready(function(){
    
    second();
    
});

 


上面這段代碼會分別彈出“first”和“second”。


為什么會這樣呢?因為onload是一個事件,它只能綁定一個值,后面的會覆蓋前面的;而ready()是一個方法,方法之間不會互相影響,所以會順序執行。


OK,做了以上對比,onload和ready()的區別已經很明顯了,什么情況下用誰也不用我多說了吧!




免責聲明!

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



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