JS ——window.onload与$(document).ready()

我们常常在页面加载完成以后做一些操作,比如一些元素的显示与隐藏、一些动画效果。我们通常有两种方法来完成这个事情,一个就是window.onload事件,另一个就是JQuery的ready()方法。那么这 两种方法有什么区别呢?往下看:

onload事件,是在页面中所有元素以及内容全部加载完成以后触发的;而ready()方法,则是在页面的DOM结构加载完毕以后就被触发了。也就是说ready()方法会在onload事件之前执行。

举一个例子:

假设有一个表现图库的页面,这种页面中可能会包含许多大型图像,我们可以通过jQuery隐藏、显示或以其他方式操作这些图像。如果我们通过onload页面设置界面,那么用户在能够使用这个页面之前,必须要等到每一幅图像都下载完成。更糟糕的是,如果行为稍微添加给哪些具有默认行为的元素(比如链接),那么用户的交互可能会导致意想不到的结果。然而当我们试用$(document).ready(){ }进行设置时,这个界面就会更早地准备好可用的正确行为。

使用$(document).ready(){ }一般来说都要优于试用onload事件处理程序,但必须要明确一点的是,因为支持文件可能还没有家在完成,所以类似图像的高度和宽度这样的属性此时不一定有效。

onload事件通常写成如下形式:

function myfunction() {

    //your code

};

window.onload = myfunction;

或者:

window.onload = function(){

  //your code

};

ready()方法通常如下:

$(document).ready(function(){

    //your code

});

或者:

$().ready(function(){

    //your code

});

再或者:

$(function(){

    //your code

});

接下来再看两个例子:

function first(){

    alert("first");

}

function second(){

    alert("second");

}

window.onload = second;
window.onload = first; 

这段代码会弹出“first”。

function first(){

    alert("first");

}

function second(){

    alert("second");

}

$(document).ready(function(){

    first();

});

$(document).ready(function(){

    second();

});

上面这段代码会分别弹出“first”和“second”。

为什么会这样呢?因为onload是一个事件,它只能绑定一个值,后面的会覆盖前面的;而ready()是一个方法,方法之间不会互相影响,所以会顺序执行。

OK,做了以上对比,onload和ready()的区别已经很明显了,

时间: 2024-10-21 11:55:16

JS ——window.onload与$(document).ready()的相关文章

jquery学习笔记一之window.onload与$(document).ready()区别

1.window.onload与$(document).ready()区别 执行时机:前者必须等待网页中所有的内容加载完毕后(包括图片)才能执行,后者 网页中说有的Dom结构绘制完毕后就执行,可能Dom元素关联的内容并没有加载完成. <!DOCTYPE html> <html> <head> <title>test</title> <script type="text/javascript" src="js/j

window.onload与$(document).ready()

在我们编写javascript代码的时候,我们开始会这样写的: window.onload = function (){ //编写代码 } 我并不知道为什么会是这样写的,看着别人这样写我也就这样写.今天我就来简单的说说:谈到onload我们要讲HTML的执行顺序.HTML的执行顺序是至上到下的,除非你特别的说明,javascript不会等到等到页面加载加载完成后才执行的. 例如:网页中有这样的一行代码 <p id="name">My name is Aaron</p&

浏览器加载模式:window.onload和$(document).ready()的区别(详解)

jQuery库文件是在body元素之前加载的,必须等待所有的DOM元素加载后,延迟支持DOM操作,否则就无法获取到. 在延迟等待加载,JavaScript提供了一个事件为load,方法如下: window.onload = function () {}; //JavaScript等待加载 $(document).ready(function () {}); //jQuery等待加载load和ready区别 window.onload $(document).ready() 执行时机 必须等待网页

JavaScript tips:window.onload与$(document).ready()的差异

1.window.onload在$(document).ready()之后执行 原因:二者触发与否,都是依据document.readyState这个属性. (1)document.readyState的值:uninitialized.loading.interactive.complete(这四个值,依据时间先后排序). (2)当其值为interactive时,会触发documentContentLoaded事件,JQuery.ready()就是对documentContentLoaded事件

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

<锋利的jQuery>上摘抄下来: window.onload $(document).ready() 执行时机 必须等待网页中所有的内容加载完毕后(包括图片)才能执行 网页中所有DOM结果绘制完毕后就执行,可能DOM元素关联的东西并没有加载完 编写个数 不能同时编写多个 以下代码无法正确执行:window.load = function() {  alert("test1"); }; window.load = function() {  alert("test

window.onload()和$(document).ready()区别

1 $(window).load(function() { 2 $("#btn-upload").click(function(){ //比如说: 3 uploadPhotos(); 4 }); 5 }); window.onload()和$(document).ready()区别

window.onload和document.ready的区别

window.onload和document.ready虽然两个方法的运行效果都一样,但他们之间是存在着区别的: 一.从执行的时间 window.onload在dom文档结构加载完毕以后就可以执行,不必等到页面中的其他文件(例如图片等文件)都加载完毕. 而document.ready则是必须要等到dom文档结构和其他包括图片在内放入所有文件全部加载成功后才可以执行 二.编写个数,被执行的次数不同 window.onload不能通知书编写多个,就算写了多个,也只能执行一个: document.re

菜鸟学JS(五)——window.onload与$(document).ready()

我们继续说JS,我们常常在页面加载完成以后做一些操作,比如一些元素的显示与隐藏.一些动画效果.我们通常有两种方法来完成这个事情,一个就是window.onload事件,另一个就是JQuery的ready()方法.那么这 两种方法有什么区别呢?往下看: onload事件,是在页面中所有元素以及内容全部加载完成以后触发的:而ready()方法,则是在页面的DOM结构加载完毕以后就被触发了.也就是说ready()方法会在onload事件之前执行. 举一个例子: 假设有一个表现图库的页面,这种页面中可能

Window.onload与$(document).ready()区别

这个对比图是从<锋利的jQuery>书上截取下来的,我自己也总结了一下: diff-1: Window.onload是网页中全部元素(包括元素的关联文件)完全加载到浏览器后才能执行,$(document).ready()解析出DOM树即可访问节点和属性. 举个例子: Flicker这种大型图片网站,为网页中所有图片添加某些行为,例如mouseover的时候可以显示放大图,如果用onload,那么必须等每一幅图都加载浏览器才能进行操作,如果用ready那么只要DOM树就绪就可以操作. DOM树就