摘要:在日常的開發(fā)中,我們常常用來(lái)觸發(fā)執(zhí)行函數(shù),但是這往往不能滿足我們的要求,比如,的時(shí)候,我們要取得大量的加載到圖片的父級(jí)上,這個(gè)時(shí)候如果要是等到圖片都加載完畢后再賦值,那么有的用戶沒(méi)等看到圖片就點(diǎn)擊了,這樣就會(huì)出問(wèn)題,所以,我們要在整個(gè)加載完
onload
在日常的開發(fā)中,我們常常用window.onload來(lái)觸發(fā)執(zhí)行函數(shù),但是這往往不能滿足我們的要求,比如,ajax的時(shí)候,我們要取得大量的url加載到圖片的父級(jí)上,這個(gè)時(shí)候如果要是等到圖片都加載完畢后再賦值,那么有的用戶沒(méi)等看到圖片就點(diǎn)擊了,這樣就會(huì)出問(wèn)題,所以,我們要在整個(gè)dom加載完畢后,就立即執(zhí)行一些函數(shù),所以就有了domReady。
domReadydomReady這種叫法,好像是在jq中才這么叫的,真正的內(nèi)容就是在火狐中有一個(gè)‘DOMContentLoaded’,而最近的也有很多現(xiàn)代瀏覽器接受了這種做法,但是在ie中就沒(méi)有辦法,但是在ie中,每個(gè)dom元素都有一個(gè)滾動(dòng)條屬性,所以,這樣可以用做判斷,下面就是一個(gè)例子
例子
/** * [domReady 監(jiān)聽(tīng)Dom樹創(chuàng)建完畢執(zhí)行參數(shù)] * @param {[List]} fnList [dom執(zhí)行完畢所執(zhí)行的函數(shù)數(shù)組] * @return {[void]} [] */ function domReady(fnList){ if(!fnList)return undefined; if(document.addEventListener){ document.addEventListener("DOMContentLoaded",function(){ doFnList(fnList);//先進(jìn)的瀏覽器 },false) }else{ try{ document.documentElement.doScroll("left");//在ie中每個(gè)元素都有一個(gè)doSroll屬性,看documentElement的滾動(dòng)條屬性是否完畢,如果完畢就證明整個(gè)dom樹創(chuàng)建完畢,如果沒(méi)有創(chuàng)建完畢就訪問(wèn)這個(gè)屬性會(huì)報(bào)錯(cuò),所以try catch了 }catch(e){ setTimeout(arguments.callee,50) } doFnList(fnList); } var b = false; //只執(zhí)行一次 /** * [doFnList 執(zhí)行函數(shù)列表的方法] * @param {[type]} fnList [dom執(zhí)行完畢所執(zhí)行的函數(shù)數(shù)組] * @return {[void]} [] */ function doFnList(fnList){ if(b)return; b = true; for(var i=0,fn;fn = fnList[i++];){ //console.log(i) fn(); } fnList = null; doFnList = null; } }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/85432.html
摘要:初始化參數(shù)可選參數(shù),必填參數(shù)可選,只有在請(qǐng)求時(shí)需要參數(shù)可選回調(diào)函數(shù)可選參數(shù)可選,默認(rèn)為參數(shù)可選,默認(rèn)為創(chuàng)建引擎對(duì)象打開發(fā)送普通文本接收文檔將字符串轉(zhuǎn)換為對(duì)象最后,說(shuō)明一下此函數(shù)的用法。即等待與成功回調(diào),后標(biāo)志位置為。 jquery限制文本框只能輸入數(shù)字 jquery限制文本框只能輸入數(shù)字,兼容IE、chrome、FF(表現(xiàn)效果不一樣),示例代碼如下: $(input).keyup(...
摘要:性能時(shí)間線以一個(gè)統(tǒng)一的接口獲取由和所收集的性能數(shù)據(jù)。瀏覽器支持下表列舉了當(dāng)前主流瀏覽器對(duì)性能的支持,其中標(biāo)注星號(hào)的內(nèi)容并非來(lái)自于性能工作小組。 頁(yè)面的性能問(wèn)題一直是產(chǎn)品開發(fā)過(guò)程中的重要一環(huán),很多公司也一直在使用各種方式監(jiān)控產(chǎn)品的頁(yè)面性能。從控制臺(tái)工具、Fiddler抓包工具,到使用DOMContentLoaded和document.onreadystatechange這種侵入式j(luò)ava...
摘要:這個(gè)時(shí)候就出場(chǎng)了,它定義為當(dāng)頁(yè)面文檔加載并解析完畢之后會(huì)馬上出發(fā)事件,而不會(huì)等待樣式文件圖片文件和子框架頁(yè)面的加載。 DOMContentLoaded 和 window.onload 的區(qū)別 當(dāng)頁(yè)面完全加載完畢后會(huì)觸發(fā) window.onload 事件,我們知道可以利用 window.onload 事件來(lái)觸發(fā)并執(zhí)行需要頁(yè)面完全加載完畢后才能執(zhí)行的 javascript 腳本,但是假如頁(yè)...
摘要:這個(gè)時(shí)候就出場(chǎng)了,它定義為當(dāng)頁(yè)面文檔加載并解析完畢之后會(huì)馬上出發(fā)事件,而不會(huì)等待樣式文件圖片文件和子框架頁(yè)面的加載。 DOMContentLoaded 和 window.onload 的區(qū)別 當(dāng)頁(yè)面完全加載完畢后會(huì)觸發(fā) window.onload 事件,我們知道可以利用 window.onload 事件來(lái)觸發(fā)并執(zhí)行需要頁(yè)面完全加載完畢后才能執(zhí)行的 javascript 腳本,但是假如頁(yè)...
摘要:再者,引入一大堆的文件也不美觀,而使用即可實(shí)現(xiàn)的模塊化異步加載。通過(guò)定義模塊的方式可分為以下兩類。當(dāng)和這兩個(gè)模塊加載完成之后將會(huì)執(zhí)行回調(diào)函數(shù)。插件可以使回調(diào)函數(shù)在結(jié)構(gòu)加載完成之后再執(zhí)行。最好的方式是使用字符串但這很難管理尤其實(shí)在多行的時(shí)候。 什么是Require.js Require.js是一個(gè)AMD規(guī)范的輕量級(jí)js模塊化管理框架,最新版本require.js 2.1.11壓縮后只有1...
閱讀 4091·2021-11-22 09:34
閱讀 1568·2021-11-04 16:10
閱讀 1795·2021-10-11 10:59
閱讀 3333·2019-08-30 15:44
閱讀 2104·2019-08-30 13:17
閱讀 3536·2019-08-30 11:05
閱讀 802·2019-08-29 14:02
閱讀 2672·2019-08-26 13:34