比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 相关文章推荐
script标签属性type与language使用选择
Dec 02 Javascript
JS命名空间的另一种实现
Aug 09 Javascript
JS+CSS实现仿支付宝菜单选中效果代码
Sep 25 Javascript
详解js中构造流程图的核心技术JsPlumb
Dec 08 Javascript
jQuery Masonry瀑布流插件使用方法详解
Jan 18 Javascript
Angular排序实例详解
Jun 28 Javascript
ES6 系列之 WeakMap的使用示例
Aug 06 Javascript
JavaScript实现美化滑块效果
May 17 Javascript
深入浅析nuxt.js基于ssh的vue通用框架
May 21 Javascript
送你43道JS面试题(收藏)
Jun 17 Javascript
云服务器部署Node.js项目的方法步骤(小白系列)
Mar 23 Javascript
node.js如何操作MySQL数据库
Oct 29 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中文件下载功能实现超详细流程分析
2012/06/13 PHP
请离开include_once和require_once
2013/07/18 PHP
PHP数据库万能引擎类adodb配置使用以及实例集锦
2014/06/12 PHP
php截取html字符串及自动补全html标签的方法
2015/01/15 PHP
PHP MPDF中文乱码的解决方式
2015/12/08 PHP
PHP简单验证码功能机制实例详解
2019/03/27 PHP
JAVASCRIPT下判断IE与FF的比较简单的方式
2008/10/17 Javascript
Jquery拖拽并简单保存的实现代码
2010/11/28 Javascript
Javascript前端UI框架Kit使用指南之kitjs的对话框组件
2014/11/28 Javascript
简介JavaScript中substring()方法的使用
2015/06/06 Javascript
JavaScript学习笔记之创建对象
2016/03/25 Javascript
基于JS代码实现实时显示系统时间
2016/06/16 Javascript
javascript函数的四种调用模式
2017/01/08 Javascript
vue2.0移除或更改的一些东西(移除index key)
2017/08/28 Javascript
js es6系列教程 - 基于new.target属性与es5改造es6的类语法
2017/09/02 Javascript
JS写谷歌浏览器chrome的外挂实例
2018/01/11 Javascript
微信小程序日历插件代码实例
2019/12/04 Javascript
Python编程实现两个文件夹里文件的对比功能示例【包含内容的对比】
2017/06/20 Python
Python面向对象类的继承实例详解
2018/06/27 Python
详解Django解决ajax跨域访问问题
2018/08/24 Python
在python中对变量判断是否为None的三种方法总结
2019/01/23 Python
python设置环境变量的作用和实例
2019/07/09 Python
python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中
2019/08/24 Python
DJANGO-URL反向解析REVERSE实例讲解
2019/10/25 Python
python自动生成model文件过程详解
2019/11/02 Python
python机器学习库xgboost的使用
2020/01/20 Python
利用jupyter网页版本进行python函数查询方式
2020/04/14 Python
Python基于gevent实现高并发代码实例
2020/05/15 Python
Pretty Little Thing爱尔兰:时尚女性服饰
2017/03/27 全球购物
梅西百货澳大利亚:Macy’s Australia
2017/07/26 全球购物
Falconeri美国官网:由羊绒和羊毛制成的针织服装
2018/04/08 全球购物
中国专业的音频分享平台:喜马拉雅
2019/05/24 全球购物
NYX Professional Makeup官方网站:专业彩妆和美容产品
2019/10/29 全球购物
考试不及格的检讨书
2014/01/22 职场文书
小学德育工作总结2015
2015/05/12 职场文书
一道JS算法面试题——冒泡、选择排序
2021/04/21 Javascript