比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 相关文章推荐
浅析document.ready和window.onload的区别讲解
Dec 18 Javascript
js 异步操作回调函数如何控制执行顺序
Dec 24 Javascript
JS取request值以及自动执行使用示例
Feb 24 Javascript
js字符串操作方法实例分析
May 06 Javascript
JAVA四种基本排序方法实例总结
Jul 24 Javascript
javascript图片滑动效果实现
Jan 28 Javascript
jquery对所有input type=text的控件赋值实现方法
Dec 02 Javascript
js实现首屏延迟加载实现方法 js实现多屏单张图片延迟加载效果
Jul 17 Javascript
从理论角度讨论JavaScript闭包
Apr 03 Javascript
JS动态显示倒计时效果
Dec 12 Javascript
jQuery实现的分页插件完整示例
May 26 jQuery
浅谈Vue开发人员的7个最好的VSCode扩展
Jan 20 Vue.js
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
开启CURL扩展,让服务器支持PHP curl函数(远程采集)
2011/03/19 PHP
php开发时容易忘记的一些技术细节
2016/02/03 PHP
PHP针对多用户实现更换头像功能
2016/09/04 PHP
ThinkPHP简单使用memcache缓存的方法
2016/11/15 PHP
php实现与python进行socket通信的方法示例
2017/08/30 PHP
php+Ajax无刷新验证用户名操作实例详解
2019/03/04 PHP
laravel 使用事件系统统计浏览量的实现
2019/10/16 PHP
jquery中动态效果小结
2010/12/16 Javascript
jquery获取URL中参数解决中文乱码问题的两种方法
2013/12/18 Javascript
Nodejs中session的简单使用及通过session实现身份验证的方法
2016/02/04 NodeJs
JavaScript 继承详解(五)
2016/10/11 Javascript
HTML5基于Tomcat 7.0实现WebSocket连接并实现简单的实时聊天
2016/10/31 Javascript
Vue框架之goods组件开发详解
2018/01/25 Javascript
vue filters的使用详解
2018/06/11 Javascript
socket io与vue-cli的结合使用的示例代码
2018/11/01 Javascript
axios 实现post请求时把对象obj数据转为formdata
2019/10/31 Javascript
nodejs使用Sequelize框架操作数据库的实现
2020/10/21 NodeJs
在Python中使用列表生成式的教程
2015/04/27 Python
Python实现PS滤镜碎片特效功能示例
2018/01/24 Python
VSCode下配置python调试运行环境的方法
2018/04/06 Python
python的pytest框架之命令行参数详解(上)
2019/06/27 Python
解决django中ModelForm多表单组合的问题
2019/07/18 Python
CSS3 优势以及网页设计师如何使用CSS3技术
2009/07/29 HTML / CSS
戴森美国官网:Dyson美国
2016/09/11 全球购物
英国香水店:The Perfume Shop
2017/03/27 全球购物
ASOS亚洲:ASOS Asia
2018/03/04 全球购物
Traffic People官网:女式花裙、上衣和连身裤
2020/10/12 全球购物
什么是网络协议
2016/04/07 面试题
学生学习总结的自我评价
2013/10/22 职场文书
新三好学生主要事迹
2014/01/23 职场文书
《分一分》教学反思
2014/04/13 职场文书
考察现实表现材料
2014/05/19 职场文书
2014年质量工作总结
2014/11/22 职场文书
2015年超市员工工作总结
2015/05/04 职场文书
详细总结Python常见的安全问题
2021/05/21 Python
使用redis实现延迟通知功能(Redis过期键通知)
2021/09/04 Redis