比Jquery的document.ready更快的方法
更新時間:2010年04月28日 19:31:13 作者:
這個是上次在博客園看到的一篇文章,經(jīng)測試,確實(shí)比jquery的$(document).ready(function(){....})更快,并且在ie和火狐等主流瀏覽器上都沒問題
這個是上次在博客園看到的一篇文章,經(jīng)測試,確實(shí)比jquery的$(document).ready(function(){....})更快,并且在ie和火狐等主流瀏覽器上都沒問題,
忘了原創(chuàng)是誰了,如果主人看到可以聯(lián)系我, 我會立刻加上原文出處的,敬請見諒。
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樹,則走第二步,存儲起來一起殺
if (dom.isFunction(fn)) {
if (dom.isReady) {
fn();
//如果已經(jīng)建成DOM,則來一個殺一個
} else {
dom.push(fn);
//存儲加載事件
}
}
}
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)是誰了,如果主人看到可以聯(lián)系我, 我會立刻加上原文出處的,敬請見諒。
復(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樹,則走第二步,存儲起來一起殺
if (dom.isFunction(fn)) {
if (dom.isReady) {
fn();
//如果已經(jīng)建成DOM,則來一個殺一個
} else {
dom.push(fn);
//存儲加載事件
}
}
}
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知識點(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 監(jiān)視按鍵,按下回車鍵觸發(fā)某方法的實(shí)現(xiàn)代碼
這篇文章主要介紹了jquery監(jiān)視按鍵,當(dāng)按下回車鍵時觸發(fā)事件的一個例子,有需要的朋友可以參考下2014-05-05
jquery 插件開發(fā) extjs中的extend用法小結(jié)
在jquery中,extend其實(shí)在做插件時還是用的比較多的,今天同時小結(jié)jquery和ext js中的extend用法,有需要的朋友可以參考下2013-01-01
jquery+ajax實(shí)現(xiàn)注冊實(shí)時驗證實(shí)例詳解
這篇文章主要介紹了jquery+ajax實(shí)現(xiàn)注冊實(shí)時驗證的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了jQuery基于ajax請求實(shí)現(xiàn)注冊時無刷新驗證的相關(guān)技巧,需要的朋友可以參考下2015-12-12
jQuery實(shí)現(xiàn)小球點(diǎn)擊發(fā)射動畫
這篇文章主要為大家詳細(xì)介紹了jQuery實(shí)現(xiàn)小球點(diǎn)擊發(fā)射動畫,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01
利用jQuery接受和處理xml數(shù)據(jù)的代碼(.net)
以下使用jQuery+Servlet接受和處理xml數(shù)據(jù),模擬判斷用戶名是否存在2011-03-03

