国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

js頁面加載后執(zhí)行的幾種方式小結(jié)

2024-05-06 15:43:56
字體:
供稿:網(wǎng)友

在實(shí)際應(yīng)用中往往需要在頁面加載完畢之后再去執(zhí)行相關(guān)的js代碼,之所以這么操作是有道理的,如果是操作dom元素,如果相關(guān)元素沒有加載完成,而去執(zhí)行js代碼,可能會導(dǎo)致錯誤,下面就介紹一下如何實(shí)現(xiàn)頁面加載完成再去執(zhí)行代碼,這是最為基礎(chǔ)的知識了,可能初學(xué)者還不太了解,寄希望能夠給需要的朋友帶來一定幫助。

一.window.onload事件:

代碼如下:

原生js

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

jquery

$(window).load(function(){//code});

當(dāng)頁面完全加載完畢之后再去執(zhí)行code代碼。說明頁面需要dom操作,必須到最后才可以執(zhí)行。

二.使用jQuery的ready事件:

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

一般

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

當(dāng)穩(wěn)當(dāng)結(jié)構(gòu)加載完畢再去執(zhí)行code代碼。

通用的頁面加載后再運(yùn)行JS有兩種方式:1、在DOM加載完畢后,頁面全部內(nèi)容(如圖片等)完全加載完畢前運(yùn)行JS。 2、在頁面全部內(nèi)容加載完成(包括引用文件,圖片等)之后再加載JS

1、在DOM加載后,全部內(nèi)容加載前運(yùn)行
這種方式在同一文件中可以運(yùn)行多個且不會覆蓋。

由于在$(document).ready()方法只要DOM就緒就會被執(zhí)行,因此可能此時元素的關(guān)聯(lián)文件未下載完。例如與圖片有關(guān)的HTML下載完畢,并且已經(jīng)解析為DOM樹了,但很有可能圖片還未加載完畢,所以例如圖片的高度和寬度這樣的屬性此時不一定有效。要解決這個問題,可以使用Jquery中 load()方法在需要的文件加載完畢后對其進(jìn)行操作。

$(document).ready(function(){});
$().ready(function(){})  //簡寫 當(dāng)$()不帶參數(shù)時默認(rèn)就是document
$(function(){});       //簡寫

2、在全部內(nèi)容加載后運(yùn)行
這種方式中只能執(zhí)行一個 onload代碼,當(dāng)文件由多個onload或者load,只加載最后一個,前面的將會被覆蓋且前面的onload里面的代碼不會執(zhí)行。

window.onload = function(){}; // —-js
$(window).load(function(){});   //---jquery

3、DOM文檔加載步驟

1.解析HTML結(jié)構(gòu)
2.加載外部的腳本和樣式文件
3.解析并執(zhí)行腳本代碼
4.執(zhí)行$(function(){})內(nèi)對應(yīng)代碼
5.加載圖片等二進(jìn)制資源
6.頁面加載完畢,執(zhí)行window.onload

補(bǔ)充:

1:$(function){};

2:$(document).ready(function(){});

3:$(window).load(function(){});

4:window.onload = function(){};

5:在標(biāo)簽上靜態(tài)綁定onload事件,<body onload="aaa()">等待body加載完成,就會執(zhí)行aaa()方法。

注:第1種是第2種的簡寫方式。兩個是document加載完成后就執(zhí)行方法。第3種和第4種都是等到整個window加載完成執(zhí)行方法體。兩者也沒有區(qū)別,只是一個使用dom對象,一個使用jQuery對象。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 嘉善县| 如皋市| 寿光市| 泰来县| 广水市| 黄陵县| 恩平市| 裕民县| 崇明县| 西宁市| 江川县| 宁国市| 潜山县| 新安县| 增城市| 伊金霍洛旗| 长武县| 柳江县| 石门县| 乌拉特前旗| 密云县| 济源市| 杂多县| 徐水县| 江门市| 宜良县| 和顺县| 安泽县| 泰州市| 渑池县| 孝昌县| 金寨县| 铁岭县| 桐庐县| 高雄县| 成武县| 剑阁县| 东丰县| 新建县| 涟水县| 巴林左旗|