比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 相关文章推荐
表头固定(利用jquery实现原理介绍)
Nov 08 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(四)用地图块拼成大地图
Jan 23 Javascript
Javascript排序算法之计数排序的实例
Apr 05 Javascript
AngularJS实现全选反选功能
Dec 08 Javascript
Angularjs结合Bootstrap制作的一个TODO List
Aug 18 Javascript
详解基于Vue+Koa的pm2配置
Oct 24 Javascript
Vue之mixin全局的用法详解
Aug 22 Javascript
vue3.0 CLI - 2.3 - 组件 home.vue 中学习指令和绑定
Sep 14 Javascript
js实现单元格拖拽效果
Feb 10 Javascript
Vue 监听元素前后变化值实例
Jul 29 Javascript
微信小游戏中three.js离屏画布的示例代码
Oct 12 Javascript
vue+Element-ui实现登录注册表单
Nov 17 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
实用函数4
2007/11/08 PHP
php教程 插件机制在PHP中实现方案
2012/11/02 PHP
JavaScript 无符号右移赋值操作
2009/04/17 Javascript
js 获取子节点函数 (兼容FF与IE)
2010/04/18 Javascript
详解JavaScript语法对{}处理的坑爹之处
2014/06/05 Javascript
javascript实现支持移动设备画廊
2015/08/24 Javascript
判断数组是否包含某个元素的js函数实现方法
2016/05/19 Javascript
JavaScript程序中实现继承特性的方式总结
2016/06/24 Javascript
canvas实现手机端用来上传用户头像的代码
2016/10/20 Javascript
angular异步验证防抖踩坑实录
2019/12/01 Javascript
JS如何操作DOM基于表格动态展示数据
2020/10/15 Javascript
[03:24]DOTA2超级联赛专访hao 大翻盘就是逆袭
2013/05/24 DOTA
[03:00]2014DOTA2国际邀请赛 Titan淘汰潸然泪下Ohaiyo专访
2014/07/15 DOTA
[00:32]DOTA2上海特级锦标赛 Ehome战队宣传片
2016/03/03 DOTA
Python中用Decorator来简化元编程的教程
2015/04/13 Python
python3 shelve模块的详解
2017/07/08 Python
django创建自定义模板处理器的实例详解
2017/08/14 Python
python+mongodb数据抓取详细介绍
2017/10/25 Python
linecache模块加载和缓存文件内容详解
2018/01/11 Python
python判断数字是否是超级素数幂
2018/09/27 Python
解决pandas.DataFrame.fillna 填充Nan失败的问题
2018/11/06 Python
Python处理session的方法整理
2019/08/29 Python
python Dijkstra算法实现最短路径问题的方法
2019/09/19 Python
使用 Python 读取电子表格中的数据实例详解
2020/04/17 Python
Python基于pandas爬取网页表格数据
2020/05/11 Python
css3 clip实现圆环进度条的示例代码
2018/02/07 HTML / CSS
在SQL Server中创建数据库主要有那种方式
2013/09/10 面试题
职工运动会邀请函
2014/01/19 职场文书
一年级语文教学反思
2014/02/13 职场文书
销售人员求职的自我评价分享
2014/03/15 职场文书
优秀护士先进事迹
2014/05/08 职场文书
设计大赛策划方案
2014/06/13 职场文书
爱国口号
2014/06/19 职场文书
结婚通知短信大全
2015/04/17 职场文书
分析mysql中一条SQL查询语句是如何执行的
2021/06/21 MySQL
改造DE1103三步曲
2022/04/07 无线电