比Jquery的document.ready更快的方法
更新時(shí)間:2010年04月28日 19:31:13 作者:
這個(gè)是上次在博客園看到的一篇文章,經(jīng)測(cè)試,確實(shí)比jquery的$(document).ready(function(){....})更快,并且在ie和火狐等主流瀏覽器上都沒問(wèn)題
這個(gè)是上次在博客園看到的一篇文章,經(jīng)測(cè)試,確實(shí)比jquery的$(document).ready(function(){....})更快,并且在ie和火狐等主流瀏覽器上都沒問(wèn)題,
忘了原創(chuàng)是誰(shuí)了,如果主人看到可以聯(lián)系我, 我會(huì)立刻加上原文出處的,敬請(qǐng)見諒。
var jb51 =new function() {
dom = [];
dom.isReady = false;
dom.isFunction = function(obj) {
return Object.prototype.toString.call(obj) === "[object Function]";
}
dom.Ready = function(fn) {
dom.initReady();
//如果沒有建成DOM樹,則走第二步,存儲(chǔ)起來(lái)一起殺
if (dom.isFunction(fn)) {
if (dom.isReady) {
fn();
//如果已經(jīng)建成DOM,則來(lái)一個(gè)殺一個(gè)
} else {
dom.push(fn);
//存儲(chǔ)加載事件
}
}
}
dom.fireReady = function() {
if (dom.isReady) return;
dom.isReady = true;
for (var i = 0, n = dom.length; i < n; i++) {
var fn = dom[i];
fn();
}
dom.length = 0;
//清空事件
}
dom.initReady = function() {
if (document.addEventListener) {
document.addEventListener("DOMContentLoaded",
function() {
document.removeEventListener("DOMContentLoaded", arguments.callee, false);
//清除加載函數(shù)
dom.fireReady();
},
false);
} else {
if (document.getElementById) {
document.write("<script id=\"ie-domReady\" defer='defer'src=\"http://:\"><\/script>");
document.getElementById("ie-domReady").onreadystatechange = function() {
if (this.readyState === "complete") {
dom.fireReady();
this.onreadystatechange = null;
this.parentNode.removeChild(this)
}
};
}
}
}
}
忘了原創(chuàng)是誰(shuí)了,如果主人看到可以聯(lián)系我, 我會(huì)立刻加上原文出處的,敬請(qǐng)見諒。
復(fù)制代碼 代碼如下:
var jb51 =new function() {
dom = [];
dom.isReady = false;
dom.isFunction = function(obj) {
return Object.prototype.toString.call(obj) === "[object Function]";
}
dom.Ready = function(fn) {
dom.initReady();
//如果沒有建成DOM樹,則走第二步,存儲(chǔ)起來(lái)一起殺
if (dom.isFunction(fn)) {
if (dom.isReady) {
fn();
//如果已經(jīng)建成DOM,則來(lái)一個(gè)殺一個(gè)
} else {
dom.push(fn);
//存儲(chǔ)加載事件
}
}
}
dom.fireReady = function() {
if (dom.isReady) return;
dom.isReady = true;
for (var i = 0, n = dom.length; i < n; i++) {
var fn = dom[i];
fn();
}
dom.length = 0;
//清空事件
}
dom.initReady = function() {
if (document.addEventListener) {
document.addEventListener("DOMContentLoaded",
function() {
document.removeEventListener("DOMContentLoaded", arguments.callee, false);
//清除加載函數(shù)
dom.fireReady();
},
false);
} else {
if (document.getElementById) {
document.write("<script id=\"ie-domReady\" defer='defer'src=\"http://:\"><\/script>");
document.getElementById("ie-domReady").onreadystatechange = function() {
if (this.readyState === "complete") {
dom.fireReady();
this.onreadystatechange = null;
this.parentNode.removeChild(this)
}
};
}
}
}
}
您可能感興趣的文章:
- jquery中的$(document).ready()使用小結(jié)
- Jquery中"$(document).ready(function(){ })"函數(shù)的使用詳解
- JQuery的ready函數(shù)與JS的onload的區(qū)別詳解
- 模擬jQuery中的ready方法及實(shí)現(xiàn)按需加載css,js實(shí)例代碼
- jquery ready函數(shù)、css函數(shù)及text()使用示例
- jquery ready(fn)事件使用介紹
- JQuery onload、ready概念介紹及使用方法
- jQuery之$(document).ready()使用介紹
- jQuery 源碼分析筆記(4) Ready函數(shù)
- jQuery ready函數(shù)濫用分析
- Jquery知識(shí)點(diǎn)一 Jquery的ready和Dom的onload的區(qū)別
- jquery ready()的幾種實(shí)現(xiàn)方法小結(jié)
- jquery的$(document).ready()和onload的加載順序
- JQuery中的ready函數(shù)沖突的解決方法
- JQuery 引發(fā)兩次$(document.ready)事件
- jquery $(document).ready() 與window.onload的區(qū)別
- JQuery下關(guān)于$.Ready()的分析
- 提取jquery的ready()方法單獨(dú)使用示例
相關(guān)文章
jquery實(shí)現(xiàn)手機(jī)發(fā)送驗(yàn)證碼的倒計(jì)時(shí)代碼
這篇文章主要介紹了jquery實(shí)現(xiàn)手機(jī)發(fā)送驗(yàn)證碼的倒計(jì)時(shí)代碼,需要的朋友可以參考下2014-02-02jQuery實(shí)現(xiàn)動(dòng)態(tài)添加和刪除input框代碼實(shí)例
這篇文章主要介紹了jQuery實(shí)現(xiàn)動(dòng)態(tài)添加和刪除input框,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03jQuery實(shí)現(xiàn)表格行數(shù)據(jù)滾動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了jQuery實(shí)現(xiàn)表格行數(shù)據(jù)滾動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08jQuery 1.9.1源碼分析系列(十四)之常用jQuery工具
這篇文章主要介紹了jQuery 1.9.1源碼分析系列(十四)之常用jQuery工具的相關(guān)資料,需要的朋友可以參考下2015-12-12