1. 程式人生 > >兩種方法實現在HTML頁面加載完畢後運行某個js

兩種方法實現在HTML頁面加載完畢後運行某個js

功能性 下載 事件 兩種 一點 方法 實現 代碼 寬度

js方法:

<script type="text/javascript">

window.onload=function(){

var userName="xiaoming";

alert(userName);
}

</script> 

jquery方法:

<script type="text/javascript">

$(document).ready(function(){

var userName="xiaoming";

alert(userName);
});

</script> 

$(function(){
var
userName="xiaoming"; alert(userName); });

當dom加載完就可以執行(比window.onload更早)。在同一個頁面裏可以多次出現.ready()

PS:兩者的主要區別

window.onload:

當一個文檔完全下載到瀏覽器中時,才會觸發window.onload事件。這意味著頁面上的全部元素對js而言都是可以操作的,也就是說頁面上的所有元素加載完畢才會執行。這種情況對編寫功能性代碼非常有利,因為無需考慮加載的次序。、

$(document).ready{ }:

會在DOM完全就緒並可以使用時調用。雖然這也意味著所有元素對腳本而言都是可以訪問的,但是,並不意味著所有關聯的文件都已經下載完畢。換句話說,當HMTL下載完成並解析為DOM樹之後,代碼就會執行。

舉一個例子:

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

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

兩種方法實現在HTML頁面加載完畢後運行某個js