比Jquery的document.ready更快的方法


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

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

复制代码 代码如下:

var phpstudy =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)
}
};
}
}
}
}



相关阅读:
SQLServer2005与SQLServer2008数据库同步图文教程
javascript实例教程(7)
JS统计Flash被网友点击过的代码
Oracle Apps DBA工作小结
如何通过程序修改ACCESS主窗体的标题和图标
关于HTML及UBB标记的闭合
出错提示与对策
ubuntu借助compiz实现终端嵌入桌面
作用相似html标记:strong与em、q、cite、blockquote
使用AJAX技术打造博客无刷新搜索引擎
提高网站性能之 如何对待JavaScript
Asp.NET生成各种网页快捷方式的代码(桌面url快捷方式,收藏夹/开始菜单快捷方式)
jQuery Tips 为AJAX回调函数传递额外参数的方法
字符ANSI代码查询工具vbs版
快速导航

Copyright © 2016 phpStudy |