比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里的prototype使用示例
Nov 19 Javascript
图片onload事件触发问题解决方法
Jul 31 Javascript
JQuery.Ajax之错误调试帮助信息介绍
Jul 04 Javascript
JavaScript中的变量定义与储存介绍
Dec 31 Javascript
jquery.cookie.js用法实例详解
Dec 25 Javascript
Vue.js表单控件实践
Oct 27 Javascript
将JSON字符串转换成Map对象的方法
Nov 30 Javascript
highcharts 在angular中的使用示例代码
Sep 20 Javascript
详解ES6 export default 和 import语句中的解构赋值
May 28 Javascript
vue-drag-chart 拖动/缩放图表组件的实例代码
Apr 10 Javascript
vue用elementui写form表单时,在label里添加空格操作
Aug 13 Javascript
js+css3实现炫酷时钟
Aug 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
php xml文件操作实现代码(二)
2009/03/20 PHP
整理的一些实用WordPress后台MySQL操作命令
2013/01/07 PHP
Windows下的PHP 5.3.x安装 Zend Guard Loader教程
2014/09/06 PHP
php类自动加载器实现方法
2015/07/28 PHP
PHP表单提交后引号前自动加反斜杠的原因及三种办法关闭php魔术引号
2015/09/30 PHP
javascript eval和JSON之间的联系
2009/12/31 Javascript
jQuery News Ticker 基于jQuery的即时新闻行情展示插件
2011/11/05 Javascript
jQuery中toggle()函数的使用实例
2015/04/17 Javascript
javascript实现PC网页里的拖拽效果
2016/03/14 Javascript
内容滑动切换效果jquery.hwSlide.js插件封装
2016/07/07 Javascript
深入浅出ES6之let和const命令
2016/08/25 Javascript
JavaScript 闭包详细介绍
2016/09/28 Javascript
使用Curl命令查看请求响应时间方法
2016/11/04 Javascript
详解Angular Reactive Form 表单验证
2017/07/06 Javascript
javascript基本常用排序算法解析
2017/09/27 Javascript
JavaScript判断日期时间差的实例代码
2018/03/01 Javascript
浅谈使用mpvue开发小程序需要注意和了解的知识点
2018/05/23 Javascript
layui监听select变化,以及设置radio选中的方法
2019/09/24 Javascript
使用Taro实现小程序商城的购物车功能模块的实例代码
2020/06/05 Javascript
[34:27]DOTA2上海特级锦标赛B组败者赛 VG VS Spirit第一局
2016/02/26 DOTA
Python 性能优化技巧总结
2016/11/01 Python
Python标准库之collections包的使用教程
2017/04/27 Python
python itchat实现微信好友头像拼接图的示例代码
2017/08/14 Python
Python操作word常见方法示例【win32com与docx模块】
2018/07/17 Python
Django数据库类库MySQLdb使用详解
2019/04/28 Python
详解python函数的闭包问题(内部函数与外部函数详述)
2019/05/17 Python
selenium+python实现自动登陆QQ邮箱并发送邮件功能
2019/12/13 Python
Python绘制组合图的示例
2020/09/18 Python
python 实现有道翻译功能
2021/02/26 Python
CSS3哪些新特性值得称赞
2016/03/02 HTML / CSS
Linux文件系统类型
2012/02/15 面试题
高中班主任评语
2014/12/30 职场文书
优秀党员主要事迹材料
2015/11/04 职场文书
python多线程方法详解
2022/01/18 Python
Windows Server 2019 安装DHCP服务及相关配置
2022/04/28 Servers
el-table-column 内容不自动换行的解决方法
2022/08/14 Vue.js