比Jquery的document.ready更快的方法
比Jquery的document.ready更快的方法
发布时间:2016-12-30 来源:查字典编辑
摘要:这个是上次在博客园看到的一篇文章,经测试,确实比jquery的$(document).ready(function(){....})更快,并...

这个是上次在博客园看到的一篇文章,经测试,确实比jquery的$(document).ready(function(){....})更快,并且在ie和火狐等主流浏览器上都没问题,

忘了原创是谁了,如果主人看到可以联系我, 我会立刻加上原文出处的,敬请见谅。

复制代码 代码如下:

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();

//如果已经建成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);

//清除加载函数

dom.fireReady();

},

false);

} else {

if (document.getElementById) {

document.write("<script id="ie-domReady" defer='defer'src="//:"></script>");

document.getElementById("ie-domReady").onreadystatechange = function() {

if (this.readyState === "complete") {

dom.fireReady();

this.onreadystatechange = null;

this.parentNode.removeChild(this)

}

};

}

}

}

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类