`
kongxiantao
  • 浏览: 108496 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

学习Jquery 源码 有一收获 DOM 加载 重新认识

阅读更多

刚才看Jquery源码时,看见如下,一段不明白,上网一搜,豁然开朗啊

 

 // The DOM ready check for Internet Explorer
    function doScrollCheck() {
        if ( jQuery.isReady ) {
            return;
        }

        try {
            // If IE is used, use the trick by Diego Perini
            // http://javascript.nwbox.com/IEContentLoaded/
            document.documentElement.doScroll("left");
        } catch(e) {
            setTimeout( doScrollCheck, 1 );
            return;
        }

        // and execute any waiting functions
        jQuery.ready();
    }

 

“document.documentElement.doScroll("left")”是干啥用的,

http://www.cnblogs.com/maklove/ 介绍如下,不写了,copy如下。

 

 

“在大部分前端开发中,需要在DOM树载入时马上执行一些函数,但又不愿意仅为了这一个需求而引入整个jQuery库,于是就把jQuery的ready方法提取出来,单独使用了。 当然大家可以使用windows.onload事件, 但onload在浏览器看来,就是页面上的东西(img,iframe等资源)全部都加载完毕后才能发生, 如果页面内有大的图片的话,会在页面展现后好久时间后才执行。 如果只需要对DOM进行操作,那么这时就没必要等到页面全部加载了。我们需要更快的方法。 Firefox有DOMContentLoaded事件可以轻松解决,可惜的就是IE没有。 MSDN关于JSCRIPT的一个方法有段不起眼的话,当页面DOM未加载完成时,调用doScroll方法时,会产生异常。 那么我们反过来用,如果不异常,那么就是页面DOM加载完毕了! 所以 对于Mozilla & Opera 浏览器,在dom树载入后有现成的 DOMContentLoaded 事件 对于Safari 浏览器,有document.onreadystatechange事件, 当该事件触发时,如果 document.readyState=complete时,可视为dom树已经载入 对于ie,当在iframe内时,同样有document.onreadystatechange事件, 对于ie在非iframe内时,只有不断地通过能否执行doScroll判断dom是否加载完毕。 在本例中每间隔5毫秒尝试去执行 document.documentElement.doScroll('left') 另外要注意一点:在ie8下,貌视非iframe窗口也会有document.onreadystatechange事件,另外你也可以在构建自己的JS框架时使用此函数.”

 

貌似说的有道理,暂且认为就是这样,以后实验后,在总结

 

分享到:
评论

相关推荐

    jQuery权威指南366页完整版pdf和源码打包

    jquery开发入门/1 1.1 jquery概述/2 1.1.1 认识jquery /2 1.1.2 jquery基本功能/2 1.1.3 搭建jquery开发环境/3 1.1.4 编写第一个简单的jquery应用/3 1.1.5 jquery程序的代码风格/5 1.2 jquery的简单...

    jQuery1.9.1源码分析系列(十六)ajax之ajax框架

    AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。 您应当具备的基础知识 在继续学习之前,您需要对下面的知识有基本的了解: HTML / XHTML CSS JavaScript / DOM 如果您希望首先学习这些项目,...

    jQuery 源码分析笔记(4) Ready函数

    接下来回到最开始的jQuery.extend函数(268行)中的ready(fn)的定义。这个函数用来处理DOM加载完成的事件。差不多是jQuery最常用的函数之一了。

    基于PHP+Mysql的教学辅助网站源码+sql数据库+项目说明.zip

    + jQuery:主要用到 jQuery 的 ajax 方法处理异步请求和 DOM 操作 【后端】 + php:动态交互的服务器端脚本语言,本项目没有用到php框架,纯原生,主要用于数据库操作,响应并返回要用到的数据 + Apache:跨平台...

    最新Python3.5零基础+高级+完整项目(28周全)培训视频学习资料

    JQuery事件之页面框架和加载后自动执行 JQuery扩展以及自动执行函数的应用 JQuery阻止事件发生 JQuery扩展 作业 第18周 内容概要 JS正则详解 JS正则详解之验证 组件BootStrap、EasyUI、JQueryUI 插件轮播 Django_...

    模拟jQuery中的ready方法及实现按需加载css,js实例代码

    一、ready函数的实现经常用jQuery类库或其他类库中的ready方法,有时候想想它们到底是怎么实现的,但是看了一下jQuery中的源码,涉及到的模块比较多,(水平有限)代码比较难看懂;自己结合了一些书籍内容,总结一下。...

    jQuery ready方法实现原理详解

    今天闲来无事研究研究jQuery.ready()的内部实现,看JQ的源码一头雾水,由于自己很菜了,于是翻了翻牛人的播客,讲述详细,收获颇多。 先普及一下jquery.ready()和[removed],[removed]事件是在页面所有的资源都加载...

    jQuery is not defined 错误原因与解决方法小结

    通常出现这种状况有几种解决方法: 1:查看是否引入jquery文件 就算引入了文件了是不是...将jQuery库放在依赖于jQuery的JavaScript脚本之前,并且将这些代码放入document.ready来确保DOM加载完毕。 <script type="tex

    基于BootStrap和SpringBoot的学生信息管理系统,支持增删改查等基础操作,适合个人web开发学习,毕业设计或课设等

    发送 AJAX 请求获取 JSON 数据,并通过 Dom 动态加载页面;使用了 Spring - Test 与Junit 编写单元测试代码;使用了 Restful 设计风格,以 AJAX 发送 PUT 与 DELETE 类型请求;采用了双端校验,前端校验 JQuery,...

    基于BootStrap和SpringBoot的学生信息管理系统源码(毕业设计)

    发送 AJAX 请求获取 JSON 数据,并通过 Dom 动态加载页面;使用了 Spring - Test 与Junit 编写单元测试代码;使用了 Restful 设计风格,以 AJAX 发送 PUT 与 DELETE 类型请求;采用了双端校验,前端校验 JQuery,...

    JavaScript与Image加载事件(onload)、加载状态(complete)

    昨天用jQuery插件aeImageResize,发现它更有优势:每张图片加载完后,会马上进行等比缩放。 这归于图片对象Image的加载事件onload的功劳。 查看插件的源码,发现它也依赖图片对象的complete属性和onload事件,并且...

    传智播客SCM手把手开发文档

    jQuery AJAX框架-查询DOM对象,简洁,现成控件较少 ExtJS extjs.com 比较全面的AJAX框架 树,菜单,表格编辑器(Grid)学习比较困难 -->显示公告(页面内弹出窗口) 1. 导入CSS和EXT的JS 2. 写Ext.onRead 3. 写入功能...

    JavaScript权威指南(第6版)(附源码)

    本书不仅适合初学者系统学习,也适合有经验的 JavaScript 开发者随手翻阅。 作者简介  DavidFlanagan是一名程序员,也是一名作家,它的个人网站是 。他在O’Reilly出版的其他畅销书还包括《JavaScriptPocket ...

    jquery+javascript编写国籍控件

    一直苦于没有好的国籍控件可以用,于是抽空写了一个国籍控件,现分享给大家。 主要功能和界面介绍 国籍控件主要支持中文、英文过滤以及键盘上下事件。 源码介绍 国籍控件核心是两个文件,navtionality.js 和 mian....

    python入门到高级全栈工程师培训 第3期 附课件代码

    python入门到高级全栈工程师培训视频学习资料;本资料仅用于学习,请查看后24小时之内删除。 【课程内容】 第1章 01 计算机发展史 02 计算机系统 03 小结 04 数据的概念 05 进制转换 06 原码补码反码 07 物理层和...

    微思象棋播放器 1.2.0.rar

    微思象棋播放器是一个基于jQuery开发的简单迷你并且高效的在线中国象棋棋谱播放器,基于网络访问并且兼容IE 7.0 ,Firefox 3.0 ,Opera 9.6 ,Chrome 1.0 ,Safari 3.22 ,并对IE 6.0提供部分支持。微思象棋播放器完全...

    work_flow:前端工作流编辑器界面

    加载js文件前请确保jquery已正确加载并配置为全局变量,否则workflow不会进行初始化 目录 demo-- 事例目录 dist-- 代码文件目录 |- dom.jsPlumb-1.6.2.js为依赖库 |- workflow.js为未压缩代码 - workflow.min.js...

    sudoku_js:数独浏览器游戏

    在页面加载或用户输入时触发其他对象包括: 一个绑定对象,它在渲染的 DOM 元素上设置事件侦听器,并回调控制器一个 sudoStates 对象,用于保存起始配置(维基百科示例板)作为初始化板对象的输入###使用的技术(和...

    大名鼎鼎SWFUpload- Flash+JS 上传

     注:官方帮助文档的原文中对该事件的描述中有这样一句:“If you return 'true' or do not return any value then the upload proceeds.”,从中可以看到既定的设计是当不返回任何值的时候应该等同于返回true,...

Global site tag (gtag.js) - Google Analytics