比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 相关文章推荐
特殊字符、常规符号及其代码对照表
Jun 26 Javascript
JavaScript异步调用定时方法并停止该方法实现代码
Mar 16 Javascript
Jquery实现侧边栏跟随滚动条固定(兼容IE6)
Apr 02 Javascript
javascript+ajax实现产品页面加载信息
Jul 09 Javascript
实例讲解JS中setTimeout()的用法
Jan 28 Javascript
微信小程序使用第三方库Immutable.js实例详解
Sep 27 Javascript
使用vue.js写一个tab选项卡效果
Mar 25 Javascript
Node.js利用断言模块assert进行单元测试的方法
Sep 28 Javascript
Vue 换肤的示例实践
Jan 23 Javascript
Vue源码探究之虚拟节点的实现
Apr 17 Javascript
如何优雅地取消 JavaScript 异步任务
Mar 22 Javascript
JavaScript实现像雪花一样的Hexaflake分形
Jul 07 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中截取字符串支持utf-8
2007/01/18 PHP
PHP版自动生成文章摘要
2008/07/23 PHP
基于PHP对XML的操作详解
2013/06/07 PHP
PHP 之 写时复制介绍(Copy On Write)
2014/05/13 PHP
Javascript计算两个marker之间的距离(Google Map V3)
2013/04/26 Javascript
利用JS延迟加载百度分享代码,提高网页速度
2013/07/01 Javascript
Javascript 实现复制(Copy)动作方法大全
2014/06/20 Javascript
extjs 如何给column 加上提示
2014/07/29 Javascript
7个让JavaScript变得更好的注意事项
2015/01/28 Javascript
JavaScript判断FileUpload控件上传文件类型
2015/09/28 Javascript
详解AngularJS中ng-src指令的使用
2016/09/07 Javascript
jQuery Dialog 打开时自动聚焦的解决方法(两种方法)
2016/11/24 Javascript
Bootstrap table两种分页示例
2016/12/23 Javascript
JavaScript数据结构之二叉树的删除算法示例
2017/04/13 Javascript
Cpage.js给组件绑定事件的实现代码
2017/08/31 Javascript
使用nodeJs来安装less及编译less文件为css文件的方法
2017/11/20 NodeJs
解决vue点击控制单个样式的问题
2018/09/05 Javascript
python在多玩图片上下载妹子图的实现代码
2013/08/13 Python
python实现目录树生成示例
2014/03/28 Python
跟老齐学Python之Python安装
2014/09/12 Python
Python字符串处理之count()方法的使用
2015/05/18 Python
python开发之文件操作用法实例
2015/11/13 Python
pycharm远程开发项目的实现步骤
2019/01/20 Python
Python3按一定数据位数格式处理bin文件的方法
2019/01/24 Python
Python实现PyPDF2处理PDF文件的方法示例
2019/09/25 Python
如何使用Python多线程测试并发漏洞
2019/12/18 Python
Python发送手机动态验证码代码实例
2020/02/28 Python
python 代码运行时间获取方式详解
2020/09/18 Python
AmazeUI 平滑滚动效果的示例代码
2020/08/20 HTML / CSS
瑞典多品牌连锁店:Johnells
2021/01/13 全球购物
低碳生活倡议书
2014/04/14 职场文书
竞选学习委员演讲稿
2014/04/28 职场文书
农村党员一句话承诺
2014/05/30 职场文书
如何使用PyCharm及常用配置详解
2021/06/03 Python
mysql分表之后如何平滑上线详解
2021/11/01 MySQL
vue中this.$http.post()跨域和请求参数丢失的解决
2022/04/08 Vue.js