document.ready和onload的區別——JavaScript文檔加載完成事件
頁面加載完成有兩種事件:javascript
一是ready,表示文檔結構已經加載完成(不包含圖片等非文字媒體文件);css
二是onload,指示頁面包含圖片等文件在內的全部元素都加載完成。html
一、Dom Readyjava
使用jq時通常都是這麼開始寫腳本的:spa
$(function(){ // do something });
例如:code
$(function() { $("a").click(function() { alert("Hello world!"); }); })
這個例子就是給全部的a標籤綁定了一個click事件。即當全部連接被鼠標單擊的時候,都執行 alert("Hello World!");
也就是說頁面加載時綁定,真正該觸發時觸發。
其實這個就是jq ready()的簡寫,它等價於:htm
$(document).ready(function(){ //do something }) //或者下面這個方法,jQuer的默認參數是:「document」; $().ready(function(){ //do something })
這個就是jq ready()的方法就是Dom Ready,他的做用或者意義就是:在DOM加載完成後就能夠能夠對DOM進行操做。
通常狀況一個頁面響應加載的順序是,域名解析-加載html-加載js和css-加載圖片等其餘信息。
那麼Dom Ready應該在「加載js和css」和「加載圖片等其餘信息」之間,就能夠操做Dom了。blog
二、Dom Load事件
用原生的js的時候咱們一般用onload時間來作一些事情,好比: 圖片
window.onload=function(){ //do something } //或者常常用到的圖片 document.getElementById("imgID").onload=function(){ //do something }
這種就是Dom Load,他的做用或者意義就是:在document文檔加載完成後就能夠對DOM進行操做,document文檔包括了加載圖片等其餘信息。
那麼Dom Load就是在頁面響應加載的順序中的「加載圖片等其餘信息」以後,就能夠操做Dom了。
最後附上一段在全部DOM元素加載以前執行的jQuery代碼。
<script type="text/javascript"> (function() { alert("DOM還沒加載哦!"); })(jQuery) </script>