比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 相关文章推荐
Gird事件机制初级读本
Mar 10 Javascript
ajax 同步请求和异步请求的差异分析
Jul 04 Javascript
JS实现程序暂停与继续功能代码解读
Oct 10 Javascript
JS判断不能为空实例代码
Nov 26 Javascript
Node.js安装教程和NPM包管理器使用详解
Aug 16 Javascript
浅析JavaScript Array和string的转换(推荐)
May 20 Javascript
vue vue-Router默认hash模式修改为history需要做的修改详解
Sep 13 Javascript
基于 jQuery 实现键盘事件监听控件
Apr 04 jQuery
Flutter 超实用简单菜单弹出框 PopupMenuButton功能
Aug 06 Javascript
详解Vue.js 作用域、slot用法(单个slot、具名slot)
Oct 15 Javascript
关于vue.js中实现方法内某些代码延时执行
Nov 14 Javascript
vue 添加和编辑用同一个表单,el-form表单提交后清空表单数据操作
Aug 03 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 5.3.0 安装分析心得
2009/08/07 PHP
建站常用13种PHP开源CMS比较
2009/08/23 PHP
PHP实现断点续传乱序合并文件的方法
2018/09/06 PHP
PHP CURL使用详解
2019/03/21 PHP
用js实现的抽象CSS圆角效果!!
2007/05/03 Javascript
JavaScript 利用Cookie记录用户登录信息
2009/12/08 Javascript
jQuery 性能优化手册 推荐
2010/02/23 Javascript
用JavaScript修改CSS属性的代码
2013/05/06 Javascript
js中的this关键字详解
2013/09/25 Javascript
Internet Explorer 11 浏览器介绍:别叫我IE
2014/09/28 Javascript
js跨域请求的5中解决方式
2015/07/02 Javascript
javascript中Number的方法小结
2016/11/21 Javascript
node.js Sequelize实现单实例字段或批量自增、自减
2016/12/08 Javascript
JavaScript用JSONP跨域请求数据实例详解
2017/01/06 Javascript
多个上传文件用js验证文件的格式和大小的方法(推荐)
2017/03/09 Javascript
ES6的Fetch异步请求的实现方法
2018/12/07 Javascript
jquery的$().each和$.each的区别
2019/01/18 jQuery
Vue程序调试的方法
2019/06/17 Javascript
微信小程序实现左侧滑动导航栏
2020/04/08 Javascript
开始着手第一个Django项目
2015/07/15 Python
浅谈python对象数据的读写权限
2016/09/12 Python
python 实现在tkinter中动态显示label图片的方法
2019/06/13 Python
Python with关键字,上下文管理器,@contextmanager文件操作示例
2019/10/17 Python
pycharm 设置项目的根目录教程
2020/02/12 Python
python实现手势识别的示例(入门)
2020/04/15 Python
如何解决pycharm调试报错的问题
2020/08/06 Python
Python基于opencv的简单图像轮廓形状识别(全网最简单最少代码)
2021/01/28 Python
澳大利亚快时尚鞋类市场:Billini
2018/05/20 全球购物
自动化专业职业生涯规划书范文
2014/01/16 职场文书
中学生个人自我评价
2014/02/06 职场文书
高三毕业典礼主持词
2014/03/27 职场文书
党的群众路线教育实践活动实施方案
2014/10/31 职场文书
2016特色励志班级口号
2015/12/24 职场文书
教师正风肃纪心得体会
2016/01/15 职场文书
python绘制箱型图
2021/04/27 Python
MySQL 百万级数据的4种查询优化方式
2021/06/07 MySQL