首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

jquery $(document).ready()与window.onload的区别

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。...在常规的 Javascript 代码中,通常使用 window.onload 方法,而在jQuery中,使用的是$(document).ready() 方法,极大的提高Web应用程序的速度。...要解决这个问题,可以使用 Jquery 中另一个关于页面加载的方法 ---load()方法。 Load()方法会在元素的onload 事件中绑定一个处理函数。...如果处理函数绑定给 window 对象,则会在所有内容(包括窗口、框架、对象和图像等)加载完毕后触发,如果处理函数绑定在元素上,则会在元素的内容加载完毕后触发。...为了确保回调总是运行,jQuery检查文档(reference)的“readyState” 属性,如果属性值变为complete或者interactive,则立即执行回调函数。

2.3K31
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【深入浅出jQuery】源码浅析2--奇技淫巧

    是这样使用它们的: // 选自 jQuery 源码中的 Sizzle 部分 function siblingCheck(a, b) { var cur = b && a, diff = cur...从设计模式的角度而言,这种钩子运用了策略模式。 策略模式:将不变的部分和变化的部分隔开是每个设计模式的主题,而策略模式则是将算法的使用与算法的实现分离开来的典型代表。...策略模式的优点: 策略模式利用组合,委托和多态等技术思想,可以有效的避免多重条件选择语句; 策略模式提供了对开放-封闭原则的完美支持,将算法封装在独立的函数中,使得它们易于切换,易于理解,易于扩展。...而 jQuery 将 getter 和 setter 方法压缩到单一方法中创建了一个连贯的接口,使得代码暴露更少的方法,但却以更少的代码实现同样的目标。...:在 setTimeout 中触发的函数, 一定会在 DOM 准备完毕后触发 return setTimeout(jQuery.ready); } // Remember that the

    1K92

    也谈 setTimeout

    jQuery 中的轮询 轮询,可能是 setTimeout 最典型的用法,jQuery 的兼容IE的 document ready 机制就用到了这个: // jquery 1.9.1 (function...为了理解定时器的内部机制,有一点必须着重强调:延迟时间的精确度无法保证,比如延迟 10ms ,回调函数不一定在 10ms 后执行。...另外,在第一个 js 块中,鼠标点击了,但是事件处理函数不会立刻执行,和 timer 一样,也要等到一个 js block 执行完后才执行。 终于,第一个 js 块执行完。...事件处理函数和 timer 都在等待,于是事件处理函数执行, timer 继续等待。 在事件处理函数执行过程中,10ms 的 interval 触发了,毫无疑问不会立刻执行,进入队列等待。...setTimeout 总是会在其回调函数执行后延迟 10ms (或者更多,但不可能少),而 setInterval 总是 10ms 执行一次,而不管 它的回调函数执行多久。

    1.3K10

    也谈 setTimeout

    jQuery 中的轮询 轮询,可能是 setTimeout 最典型的用法,jQuery 的兼容IE的 document ready 机制就用到了这个: // jquery 1.9.1 (function...为了理解定时器的内部机制,有一点必须着重强调:延迟时间的精确度无法保证,比如延迟 10ms ,回调函数不一定在 10ms 后执行。...另外,在第一个 js 块中,鼠标点击了,但是事件处理函数不会立刻执行,和 timer 一样,也要等到一个 js block 执行完后才执行。 终于,第一个 js 块执行完。...事件处理函数和 timer 都在等待,于是事件处理函数执行, timer 继续等待。 在事件处理函数执行过程中,10ms 的 interval 触发了,毫无疑问不会立刻执行,进入队列等待。...setTimeout 总是会在其回调函数执行后延迟 10ms (或者更多,但不可能少),而 setInterval 总是 10ms 执行一次,而不管 它的回调函数执行多久。

    1.5K100

    JavaScript 设计模式学习第十五篇-外观模式

    createRange 方法的源码参见 Github 链接 lodash/.internal/createRange.js 5.3. jQuery 源码中的函数参数重载 函数参数重载在源码中使用比较多,...jQuery 中也有大量使用,比如 on、off、bind、one、load、ajaxPrefilter 等方法,这里以 off 方法为例,该方法在选择元素上移除一个或多个事件的事件处理函数。...off 方法的源码参见 Github 链接 jquery/src/event.js 再比如 load 方法的源码: jQuery.fn.load = function(url, params, callback...对第二个参数进行了判断,如果是函数,就是 load(url [, callback]) 的使用方式。...load 方法的源码参见 Github 链接 jquery/src/ajax/load.js 5.4. jQuery 源码中的外观模式 当我们使用 jQuery 的 $(document).ready(

    49310

    加点JavaScript魔法

    我要运行的函数将搜索页面中用户名的所有链接,并使用Bootstrap中的弹出窗口组件配置它们。 jQuery JavaScript库作为Bootstrap的依赖项加载,因此我将利用它。...在本处,返回值将是具有该类的所有元素的集合 05 弹窗和 DOM 元素 通过使用Bootstrap文档中的弹出窗口示例并在浏览器的调试器中检查DOM,我确定Bootstrap将弹出窗口组件创建为DOM... 为了避免弹出窗口出现在元素中,我要使用的是另一个技巧。我要将元素封装在元素中,然后将悬停事件和弹出窗口与相关联。...如果在元素集合上调用这个函数,jQuery方便地将事件附加到所有元素上。这两个参数是两个函数,分别在用户将鼠标指针移入和移出目标元素时调用对应的函数。...我可以通过添加.done(function)来附加一个完成回调函数,所以一旦请求完成,我的回调函数就会被调用。回调函数将接收到的响应作为参数,你可以在上面的代码中看到,我将其命名为data。

    3.9K10

    jQuery源码浅析

    我觉得要看懂jQuery整体结构,需要搞懂js作用域链,闭包,js prototype继承,关于闭包网络上的定义实在太多了,这里参照了js权威指南里的定义,感觉从js的角度好理解一点。...闭包:js函数对象不仅包含函数的代码逻辑,还引用了当前的作用域链, 函数对象可以通过作用域链相互关联起来,函数体内部的变量都可以保存在函数作用域内 这种特性在计算机科学文献中称为闭包,所有的js函数都是闭包...源码 * 省略了一些规范,如AMD, Commonjs * 整个jQuery包含在匿名函数中,函数就是闭包 */ (function(window, factory){ factory...的选择器使用了Ssize,这里简单的使用一个id选择器 jQuery.fn.init = function(selector){ /* (在Javascript中,This关键字永远都指向函数...", completed ); jQuery.ready(); } //只暴露了两个变量到全局作用域 window.$ = window.jQuery = jQuery

    92130

    jQuery 自定义网页滚动条样式插件 mCustomScrollbar 的介绍和使用方法

    如果你构建一个很有特色和创意的网页,那么肯定希望定义网页中的滚动条样式,这方面的 jQuery 插件比较不错的,有两个:jScrollPane 和 mCustomScrollbar。...我还用了window load ((window).load()) 来激活我的插件功能,因为这样,就可以保证在页面对象全部加载完成之后,加载我的插件。...当然,你也可以使用常规的 jQuery 代码加载方法,但是你要明白 ready 和 load 方法之间的不同。...就上述示例代码来说,我们应该在页面中定义一个 class 为 content 的 内容块。...:{ onScrollStart:function(){} }:使用自定义的回调函数在滚动时间开始的时候执行 具体请看Demo callbacks:{ onScroll:function(){} }:自定义回调函数在滚动中执行

    14.2K30

    切图仔最后的倔强:包教不包会设计模式 - 结构型

    使我们不必手动在jQuery 内核中调用很多内部方法以便实现某些行为,也同时避免了手动与 DOM API 交互。 类似的还有D3.js 3....优点: 优点是把类(函数)的核心职责和装饰功能区分开了。 问题: 装饰链叠加了函数作用域,如果过长也会产生性能问题。 在JavaScript中: 装饰者模式提供比继承更有弹性的替代方案。...TypeScript 函数修饰符: @ ? “@”,与其说是修饰函数倒不如说是引用、调用它修饰的函数。 或者用句大白话描述:@: "下面的被我包围了。"...(参考卡片和表单组成) 该模式包含以下角色: Component - 声明组合中对象的接口并实现默认行为(基于Composite) Leaf - 表示合成中的原始对象 Composite - 在Component...插件 「Vue实践」武装你的前端项目 「中高级前端面试」JavaScript手写代码无敌秘籍 「从源码中学习」面试官都不知道的Vue题目答案 「从源码中学习」Vue源码中的JS骚操作 「Vue实践」项目升级

    87920

    一劳永逸地搞懂 JavaScript中‘this’

    这都是关于你来自哪里的 你知道在生活中,我们中的一些人根据我们所在的地方和我们与谁在一起会戴不同的帽子吗?常规函数也做类似的事情与 this。...而箭头函数呢?他们是直接的。他们从他们的周围抓住 this 的值,并坚持使用它。无论他们去哪里或如何被使用。...并坚持使用它的原始 this。 所以,箭头还是不箭头? 箭头函数就像你拥有的那个最喜欢的工具 —— 超级有用,但不适合每一项工作。当你想保持 this不变时,尤其是在回调中,它们是非常有价值的。...如果需要,使用bind或箭头函数来确保正确的上下文。 构造函数和箭头函数:如前所述,箭头函数不绑定自己的 this。尝试使用它们作为构造函数可能会导致错误。...从全局上下文到构造函数,从事件处理程序到常规函数,我们已经涵盖了你可能遇到的每一个场景。 现在,你已经武装了自己,准备好在你的代码中恰当地使用 this。

    14310

    jQuery 教程

    jQuery load() 方法 jQuery load() 方法是简单但强大的 AJAX 方法。load() 方法从服务器加载数据,并把返回的数据放入被选元素中。...,并把返回的数据放置到指定的元素中 serialize() 编码表单元素集为字符串以便提交 serializeArray() 编码表单元素集为 names 和 values 的数组 jQuery 属性...方法 描述 $.Callbacks() 一个多用途的回调列表对象,用来管理回调函数列表 callbacks.add() 在回调列表中添加一个回调或回调的集合 callbacks.disable() 禁用回调列表中的回调函数...() 确定回调是否至少已经调用一次 callbacks.firewith() 给定的上下文和参数访问列表中的所有回调 callbacks.has() 判断回调列表中是否添加过某回调函数 callbacks.lock...jQuery load() 异步载入文件内容中指定的元素内容并插入到 元素. jQuery load() – 使用回调函数(callback) 使用 jQuery load() 方法的回调函数

    17K20

    4000字讲清 《深入理解TypeScript》一书 【基础篇】

    ,是可以节省大量时间,因为你在编写的时候就能知道哪里有问题。...或者,你也可以创建一个针对于特定库的声明文件,如为 jquery 创建 jquery.d.ts 文件。...考虑使用 jquery 的用例,你可以非常简单快速的为它创建一个定义: declare var $: any; 有时候,你可能想给某些变量一些明确的定义(如:jquery),并且你会在类型声明空间中使用它...@types 你可以通过 npm 来安装使用 @types,如下例所示,你可以为 jquery 添加声明文件: npm install @types/jquery --save-dev @types 支持全局和模块类型定义...,而在 TypeScript 中,为防止初学者砸伤自己的脚(我总是看到 stackoverflow 上有很多 JavaScript 使用者都会这样。)

    1.9K30

    锋利的JQuery学习笔记之JQuery-Ajax的应用

    于是,我带着好奇的心情观看了itcast杨中科老师的2010版视频第13季Ajax,明白了应该是从XMLHttpRequest对象开始学起,它是Ajax的核心内容,也是实现的关键-发送异步请求、接收响应以及执行回调都是通过它来完成的...按需发送;4.减轻服务器和宽带的负担,即在客户端和服务器端增加了一个中间层,使用户操作与服务器响应异步化;金无赤金,人无完人,Ajax也是如此,那么Ajax的不足在哪里呢?...这个问题在去年秋季的中软国际校园招聘上被技术面试官问到过,我当时顿时没想起来,失误啊。Ajax主要有以下几点不足:1.浏览器对XMLHttpRequest对象的支持度不足!!..." type="text/javascript"> //通过这个函数来异步获取信息 function Ajax(){  var xmlHttpReq = null; //声明一个空对象用来装入XMLHttpRequest...;   幸运的是,我们强大的JQuery库为我们封装了许多Ajax操作,在JQuery中$.ajax()属于最底层的方法,第2层则是load,get,post方法,第3层是getScript和getJSON

    69540

    25个常规方法优化你的jquery代码

    我使用前一个例子,修改它以便于我们创建的每个LI有一个唯一的class。...由于jQuery提供的animate()方法十分易用和强大,我们很容易深入使用它。事实上,在jQuery源代码中不少方法就是通过animate()函数来实现效果的。...因此我们仅需要把这些HTML内容放入一个静态页面中,在页面加载完成之后通过load()函数加载它: 复制代码代码如下: $(‘#forms’).load(‘content/headerForms.html...所有你要做的就是在IMG上使用.load()方法,在其中添加一个回调函数。...给你的HTML属性增加JS类 我是从Karl Swedberg那学到这个技巧,过去学习jQuery时一直在看他的书。 他最近在我以前的文章留下了对该用法的评论,基本原则如下示之。

    1.6K10

    jQuery的编码标准和最佳实践

    所有用来存储/缓存jQuery对象的变量的名字应该有一个前缀$。 2. 在变量中缓存jQuery选择器返回的内容以便重用。...处理文档ready事件的回调也不要使用匿名函数。在一次强调,匿名函数很难进行调试,维护,测试和重用。...文档ready事件的处理函数应该包含在外部的javascript文件中,内联的javascript应该在初始化之后直接调用处理函数。...更好的使用无模式的url(将HTTP或者HTTPS从你的URL中移除)。 3. 不要在URL上发送请求参数,用数据对象来发送它们。...不要使用被弃用的方法,关注每一个新的版本上一些弃用的方法尽量避免使用它们是很重要的。这里有一些被弃用的方法的列表。 4. 需要的话将原生的javascript代码和jQuery代码合并。

    1K20

    实现图片懒加载的三种方式(前端路由懒加载原理)

    大家好,又见面了,我是你们的朋友全栈君。 1.什么是图片懒加载 图片懒加载就是鼠标滑动到哪里,图片加载到哪里。...实现图片懒加载的原理 图片懒加载的实现原理:将图片的地址放在data-set属性中,由于图片并没有在src中,并不会发送http请求。...比较图片到整个页面距离(Y)和 页面滑动的距离 (X) + 浏览器可视区域的大小(Z) ,Y小于两者之和,则图片就显示出来,将图片的data-set属性换为src属性 3....$('img').lazyload(); // 带参数(配置对象),下面配置对象中的各个属性值都是默认的 $('img').lazyload({ threshold : 0, //图片距离可视窗口的距离为多少...appear : null, //在img触发appear事件时执行的回调 load : null, //在img触发load事件时执行的回调 placeholder:"data:image

    1.8K10

    jQuery ajax - ajax()方法

    通过 jQuery AJAX 方法,您能够使用 HTTP Get 和 HTTP Post 从远程服务器上请求文本、HTML、XML 或 JSON - 同时您能够把这些外部数据直接载入网页的被选元素中。...jQuery load() 方法 jQuery load() 方法是简单但强大的 AJAX 方法。 load() 方法从服务器加载数据,并把返回的数据放入被选元素中。...callback 参数规定当 load() 方法完成后所要允许的回调函数。...第二个参数是回调函数。第一个回调参数存有被请求页面的内容,第二个回调参数存有请求的状态。...然后我们连同请求 (name 和 city) 一起发送数据。 "demo_test_post.asp" 中的 ASP 脚本读取这些参数,对它们进行处理,然后返回结果。 第三个参数是回调函数。

    9.4K20
    领券