原生onload方法和jQuery的ready方法。
ready事件發生在加載HTML文檔之後,而onload事件發生在稍後,此時所有内容(例如圖像)也已加載。
onload事件是DOM中的标準事件,而ready事件特定于jQuery。 ready事件的目的是它應該在文檔加載後盡早發生,以便為頁面中的元素添加功能的代碼不必等待加載所有内容。
例子:
ready表示圖檔還未加載,就已經發生了,而onload是圖檔加載之後才發生
window.load | $(document).ready() | |
---|---|---|
執行時機 | 必須等待網頁中所有内容加載完畢後才能執行(包括圖檔等) | 隻要網頁中的DOM結構繪制完畢就執行(與DOM相關的檔案此時可能還未下載下傳完畢) |
使用情況 | 1.不能同時執行多個,若編寫多個函數隻執行最後一個(前面的被覆寫)。window.onload = function() test1{undefined alert("function1");};window.onload = function() test2{undefined alert("function2");}最終輸出結果為"function2"。2.如果想實作多個函數的調用,可以建立一個新的函數來包含它們。window.onload = function(){undefined test1(); test2();} | 1.能夠同時編寫多個函數,按注冊順序執行。$(document).ready(function(){undefined test1();});$(document).ready(function(){undefined test2();})兩次都輸出。2.如果想實作window.onload一樣的功能,調用load()方法。$(window).load(function(){undefined //代碼}) |
簡化 | 無 | 以下兩種形式與$(document).ready()等價,但更簡潔。1.$().ready(function(){ //代碼 });2.$(function(){ //代碼 }); |