比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 相关文章推荐
javascript下判断一个元素是否存在的代码
Mar 05 Javascript
IE和Firefox的Javascript兼容性总结[推荐收藏]
Oct 19 Javascript
基于jQuery的input输入框下拉提示层(自动邮箱后缀名)
Jun 14 Javascript
JavaScript之引用类型介绍
Aug 10 Javascript
jquery中常用的SET和GET$(”#msg”).html循环介绍
Oct 09 Javascript
JS实现多物体缓冲运动实例代码
Nov 29 Javascript
JavaScript判断访问的来源是手机还是电脑,用的哪种浏览器
Dec 12 Javascript
深入理解JavaScript系列(30):设计模式之外观模式详解
Mar 03 Javascript
Javascript中arguments用法实例分析
Jun 13 Javascript
如何根据百度地图计算出两地之间的驾驶距离(两种语言js和C#)
Oct 29 Javascript
ES6中javascript实现函数绑定及类的事件绑定功能详解
Nov 08 Javascript
使用webpack/gulp构建TypeScript项目的方法示例
Dec 18 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
Laravel 5框架学习之模型、控制器、视图基础流程
2015/04/08 PHP
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
2016/08/12 PHP
PHP实现获取第一个中文首字母并进行排序的方法
2017/05/09 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
javascript或asp实现的判断身份证号码是否正确两种验证方法
2009/11/26 Javascript
不同的jQuery API来处理不同的浏览器事件
2012/12/09 Javascript
jquery实现多级下拉菜单的实例代码
2013/10/02 Javascript
使用vue编写一个点击数字计时小游戏
2016/08/31 Javascript
Vue 短信验证码组件开发详解
2017/02/14 Javascript
微信小程序 基础知识css样式media标签
2017/02/15 Javascript
vue2.0嵌套路由实现豆瓣电影分页功能(附demo)
2017/03/13 Javascript
vue-scroller记录滚动位置的示例代码
2018/01/17 Javascript
[原创]js实现保存文本框内容为本地文件兼容IE,chrome,火狐浏览器
2018/02/14 Javascript
React性能优化系列之减少props改变的实现方法
2019/01/17 Javascript
JS大坑之19位数的Number型精度丢失问题详解
2019/04/22 Javascript
记录Django开发心得
2014/07/16 Python
python文字转语音实现过程解析
2019/11/12 Python
Pytorch转tflite方式
2020/05/25 Python
keras训练浅层卷积网络并保存和加载模型实例
2020/07/02 Python
Petmate品牌官方网站:宠物用品
2018/11/25 全球购物
德国的各种媒体在线商店:Thalia.de(书籍、电子书、玩具等)
2020/10/08 全球购物
会计专业自我鉴定范文
2013/10/06 职场文书
军训学生自我鉴定
2014/02/12 职场文书
《赵州桥》教学反思
2014/02/17 职场文书
小学生安全演讲稿
2014/04/25 职场文书
自主招生教师推荐信
2014/05/10 职场文书
四风对照检查剖析材料
2014/10/07 职场文书
党的群众路线教育实践活动组织生活会发言材料
2014/10/17 职场文书
安全保证书格式
2015/02/28 职场文书
幼儿园教师工作总结2015
2015/04/02 职场文书
刑事附带民事上诉状
2015/05/23 职场文书
爱国主义主题班会
2015/08/14 职场文书
Java基础之this关键字的使用
2021/06/30 Java/Android
iSCSI服务器CHAP双向认证配置
2022/04/01 Servers
Python学习之迭代器详解
2022/04/01 Python
Android Flutter实现图片滑动切换效果
2022/04/07 Java/Android