比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模拟多线程
Feb 07 Javascript
js onpropertychange输入框 事件获取属性
Mar 26 Javascript
JQuery 文本框使用小结
May 22 Javascript
node在两个div之间移动,用ztree实现
Mar 06 Javascript
页面图片浮动左右滑动效果的简单实现案例
Feb 10 Javascript
用jquery.sortElements实现table排序
May 04 Javascript
js实现可兼容IE、FF、Chrome、Opera及Safari的音乐播放器
Feb 11 Javascript
jQuery基于ajax方式实现用户名存在性检查功能示例
Feb 10 Javascript
JavaScript之RegExp_动力节点Java学院整理
Jun 29 Javascript
js实现每日签到功能
Nov 29 Javascript
jquery+php后台实现省市区联动功能示例
May 23 jQuery
浅谈关于vue中scss公用的解决方案
Dec 02 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
星际中的相关伤害
2020/03/04 星际争霸
PHP冒泡排序算法代码详细解读
2011/07/17 PHP
使用Apache的htaccess防止图片被盗链的解决方法
2013/04/27 PHP
php的POSIX 函数以及进程测试的深入分析
2013/06/03 PHP
php的XML文件解释类应用实例
2014/09/22 PHP
php生成短域名函数
2015/03/23 PHP
[原创]php使用curl判断网页404(不存在)的方法
2016/06/23 PHP
PHP框架Laravel中实现supervisor执行异步进程的方法
2017/06/07 PHP
Sample script that displays all of the users in a given SQL Server DB
2007/06/16 Javascript
利用js跨页面保存变量做菜单的方法
2008/01/17 Javascript
JS面向对象编程浅析
2011/08/28 Javascript
导航跟随滚动条置顶移动示例代码
2013/09/11 Javascript
JavaScript中为什么null==0为false而null大于=0为true(个人研究)
2013/09/16 Javascript
利用原生JavaScript获取元素样式只是获取而已
2014/10/08 Javascript
用Node.js通过sitemap.xml批量抓取美女图片
2015/05/28 Javascript
Nginx上传文件全部缓存解决方案
2015/08/17 Javascript
jQuery EasyUI 右键菜单--关闭标签/选项卡的简单实例
2016/10/10 Javascript
jQuery取得元素标签名称小结(附代码)
2017/08/16 jQuery
webpack 从指定入口文件中提取公共文件的方法
2018/11/13 Javascript
微信小程序日历效果
2018/12/29 Javascript
Python中输出ASCII大文字、艺术字、字符字小技巧
2015/04/28 Python
Python实现查找系统盘中需要找的字符
2015/07/14 Python
实例讲解Python中SocketServer模块处理网络请求的用法
2016/06/28 Python
python使用mysql数据库示例代码
2017/05/21 Python
基于Python打造账号共享浏览器功能
2019/05/30 Python
pytest fixtures装饰器的使用和如何控制用例的执行顺序
2021/01/28 Python
大学生护理专业自荐信
2013/10/03 职场文书
两年的个人工作自我评价
2014/01/10 职场文书
煤矿班组长竞聘书
2014/03/31 职场文书
离婚起诉书范本
2015/05/18 职场文书
跳高加油稿
2015/07/21 职场文书
2015年社区国庆节活动总结
2015/07/30 职场文书
2019教师的学习计划
2019/06/25 职场文书
Redis实现短信验证码登录的示例代码
2022/06/14 Redis
python中validators库的使用方法详解
2022/09/23 Python
Li list-style-image 图片垂直居中实现方法
2023/05/21 HTML / CSS