比Jquery的document.ready更快的方法


Posted in Javascript onApril 28, 2010

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

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

var 3water =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 相关文章推荐
js修改input的type属性及浏览器兼容问题探讨与解决
Jan 23 Javascript
12行javascript代码绘制一个八卦图
Apr 02 Javascript
javascript中html字符串转化为jquery dom对象的方法
Aug 27 Javascript
基于JS实现Android,iOS一个手势动画效果
Apr 27 Javascript
node.js版本管理工具n无效的原理和解决方法
Nov 24 Javascript
微信小程序 picker-view 组件详解及简单实例
Jan 10 Javascript
微信小程序 图片上传实例详解
May 05 Javascript
react+ant design实现Table的增、删、改的示例代码
Dec 27 Javascript
vue组件定义,全局、局部组件,配合模板及动态组件功能示例
Mar 19 Javascript
VUE的history模式下除了index外其他路由404报错解决办法
Aug 21 Javascript
Node.js中console.log()输出彩色字体的方法示例
Dec 01 Javascript
vue 解决兄弟组件、跨组件深层次的通信操作
Jul 27 Javascript
ExtJS Store的数据访问与更新问题
Apr 28 #Javascript
JS 事件绑定函数代码
Apr 28 #Javascript
javaScript checkbox 全选/反选及批量删除
Apr 28 #Javascript
JavaScript 类的定义和引用 JavaScript高级培训 自定义对象
Apr 27 #Javascript
jQuery EasyUI 中文API Layout(Tabs)
Apr 27 #Javascript
基于jquery实现的服务器验证控件的启用和禁用代码
Apr 27 #Javascript
jQuery 表格插件整理
Apr 27 #Javascript
You might like
PHP面向对象编程快速入门
2006/10/09 PHP
判断Keep-Alive模式的HTTP请求的结束的实现代码
2011/08/06 PHP
thinkphp3查询mssql数据库乱码解决方法分享
2014/02/11 PHP
php查找字符串出现次数的方法
2014/12/01 PHP
PHP、Java des加密解密实例
2015/04/27 PHP
php外部执行命令函数用法小结
2016/10/11 PHP
PHP实现向关联数组指定的Key之前插入元素的方法
2017/06/06 PHP
PHP基于面向对象实现的留言本功能实例
2018/04/04 PHP
javascript 建设银行登陆键盘
2008/06/10 Javascript
js面向对象 多种创建对象方法小结
2012/05/21 Javascript
document.createElement()用法
2013/03/13 Javascript
获取select元素被选中的文本内容的js代码
2014/01/29 Javascript
jquerymobile局部渲染的各种刷新方法小结
2014/03/05 Javascript
jQuery实现指定内容滚动同时左侧或其它地方不滚动的方法
2015/08/08 Javascript
jQuery Mobile操作HTML5的常用函数总结
2016/05/17 Javascript
Vue的Eslint配置文件eslintrc.js说明与规则介绍
2020/02/03 Javascript
vue使用过滤器格式化日期
2021/01/20 Vue.js
[02:36]DOTA2英雄基础教程 帕格纳
2014/01/20 DOTA
让Django支持Sql Server作后端数据库的方法
2018/05/29 Python
python将list转为matrix的方法
2018/12/12 Python
Python一行代码实现快速排序的方法
2019/04/30 Python
python做反被爬保护的方法
2019/07/01 Python
python Popen 获取输出,等待运行完成示例
2019/12/30 Python
详解pandas映射与数据转换
2021/01/22 Python
详解CSS3的图层阴影和文字阴影效果使用
2016/06/09 HTML / CSS
贝尔帐篷精品店:Bell Tent Boutique
2019/06/12 全球购物
mysql的最长数据库名,表名,字段名可以是多长
2014/04/21 面试题
人力资源管理专业毕业生推荐信
2013/11/07 职场文书
大学军训感想
2014/02/12 职场文书
中秋寄语大全
2014/04/11 职场文书
幼儿园教师的考核评语
2014/04/18 职场文书
经费申请报告范文
2015/05/18 职场文书
《索溪峪的野》教学反思
2016/02/19 职场文书
nginx里的rewrite跳转的实现
2021/03/31 Servers
python 自动刷新网页的两种方法
2021/04/20 Python
无线电知识基础入门篇
2022/02/18 无线电