【javascript】onload load ready的那些事

  首先明确一下页面加载的步骤:

  1、下载解析HTML文档结构

  2、加载外部脚本文件与样式表文件

  3、解析并执行脚本代码

  4、构造HTML DOM模型

  5 、加载图片等外部文件

  6、页面加载完毕  



  接下来,我们分别介绍一下三者:

  load()方法:

    load()方法总共有两种,分别是 jquery的load()方法和jquery Ajax的load()方法。

    如何区别两个方法在于参数的不同。

    jQuery:

      当指定的元素(及子元素)已加载时,会发生 load() 事件。

      该事件适用于任何带有 URL 的元素(比如图像、脚本、框架、内联框架)。

      根据不同的浏览器(Firefox 和 IE),如果图像已被缓存,则也许不会触发 load 事件。

      语法:

        $(selector).load(function)

    jQuery Ajax:

      通过 AJAX 请求从服务器加载数据,并把返回的数据放置到指定的元素中。

      语法:

        load(url,data,function(response,status,xhr))

    load事件必须等到网页中所有内容全部加载完毕之后才被执行。即上述的第六步完成后再运行函数。如果一个网页中有大量的图片的话,则就会出现这种情况:网页文档已经呈现出来,但由于网页数据还没有完全加载完毕,导致load事件不能够即时被触发。所以当我们要加载一个特别大的图片时,如果没有在图片标签就限制了图片的大小,而是在load内设置图片大小,就会造成图片先把页面撑开,等到图片全部加载完毕后再改变其大小的问题。这样以来,用户体验就会非常的差。

  ready()方法:

    ready()方法在上述第4步完成后运行,即DOM结构绘制完成之后就绘执行。这样能确保就算有大量的媒体文件没加载出来,JS代码一样可以执行。

    语法:

      $(document).ready(function)

      $().ready(function)

      $(function)

    上面三种写法效果是一样的,后两种写法是第一种写法的简写方式。

    于是,上述特别大图片的加载情况最好就是把图片的设置放到ready()方法中来,这样等到开始加载图片时,就已经给图片设置了大小,这样就不会造成图片把页面撑开而破坏页面布局的情况发生了。

  onload()事件:

    前两者为jQuery的方法,而onload()是js的一个事件,就如同onclick()事件一样。

    onload 事件会在页面或图像加载完成后立即发生。

    语法:

      



  这样就可以看出来三者的区别了,load()和ready()是jQuery的方法,onload()是js的一个事件。

  如果文档中没有相关联的图片等媒体文件的话,使用load()和使用ready()性能上没有多大的区别,不过如果存在,则使用ready()会避免很多麻烦。

  还有load()方法只有一个起作用,即当你运行多个load()方法时,只有最后一个起作用,而ready()方法则可以同时运行多个,这也是ready()方法相对于load()方法的优势之处。

  所以在需要使用这一方法时,尽量使用ready()方法。

  至于onload()事件,则如同onclick()、onmouseover()等事件一样,使用方法也没有区别。这就是onload()和load()的区别,看起来似乎一样,不过却是完全不同的两者。

时间: 2024-10-11 16:07:15

【javascript】onload load ready的那些事的相关文章

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

引用:http://www.jb51.net/article/21628.htm Jquery中$(document).ready()的作用类似于传统JavaScript中的window.onload方法,不过与window.onload方法还是有区别的. 1.执行时间         window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行.         $(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕. 2.编写个数不同      

jQuery $(document).ready()和JavaScript onload事件

对元素的操作和事件的绑定需要等待一个合适的时机,可以看下面的例子: <!DOCTYPE html> <meta charset="utf-8"> <html> <head> <title>1-1</title> <script type="text/javascript"> document.getElementById("panel").onclick = fu

jQuery 的ready事件和 JavaScript 的load事件对比

为了理解2个事件的异同,先了解一下HTML文档加载顺序 HTML DOM文档加载步骤 HTML DOM文档加载是按顺序执行的,这与浏览器的渲染方式有关,一般浏览器渲染操作的顺序大致按如下几个步骤 1, 解析HTML结构 2,加载外部脚本和样式表文件 3,解析并执行脚本代码 4,构造HTML DOM模型 5,加载图片等外部文件 6,页面加载完毕 执行时机 load 事件必须等到页面中所有内容全部加载完毕之后,才被执行,如果一个页面中包含了大数据的多媒体文件,则就会出现页面文档已经呈现出来,二由于网

JQuery onload、ready概念介绍及使用方法(转)

页面加载完成有两种事件,一是ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件),二是onload,指示页 面包含图片等文件在内的所有元素都加载完成.(可以说:ready 在onload 前加载!!!) 一般样式控制的,比如图片大小控制放在onload 里面加载; jS事件触发的方法,可以在ready 里面加载; 用jQ的人很多人都是这么开始写脚本的: 通常的写法 $(function(){ // do something }); 其实这个就是jq ready()的简写,他等价于:

JQuery onload、ready概念介绍及使用方法

页面加载完成有两种事件,一是ready,表示文档结构已经加载完成,onload,ready概念容易混淆,下面为大家详细介绍下 页面加载完成有两种事件,一是ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件),二是onload,指示页 面包含图片等文件在内的所有元素都加载完成.(可以说:ready 在onload 前加载!!!) 一般样式控制的,比如图片大小控制放在onload 里面加载; jS事件触发的方法,可以在ready 里面加载; 用jQ的人很多人都是这么开始写脚本的: 通常

Web UI - Javascript之DOM Ready

最近终于稍微适应了工作环境,终于可以让自己缓口气.于是决定要写点东西,算是督促.记录和提升自己的学习.代码的世界,你不轮它,以后就会被它轮.这个系列尽量保持在一周或两周更一篇,目标是在创造内容的时候更深刻的理解和提升自己所学的知识, 本质上,接触Javascript编程之美,我转到前端工作,其实就是因为非常喜欢和好奇Javascript(当然,也是享受频繁的用代码和用户交互的感觉). 什么是DOM Ready 还记得刚学习Javascript的时候,老师就一直各种强调教导告诉你说js的代码一定要

JavaScript onload

The onload event occurs immediately after a page or an image is loaded.onload事件当一个页面或是一张图片加载完成时被触发. Parameter参数 Description注释 SomeJavaScriptCode所要执行的代码 Required. Specifies a JavaScript to be executed when the event occurs.必选项.当事件触发时所要执行的代码. Supported

javascript jquery document.ready window.onload

网易 博客 下载LOFTER客户端 注册登录 加关注 凡图的编程之路 2012年7月从一个编程新手的点点滴滴 首页 日志 LOFTER 相册 博友 关于我 日志 关于我 Holyson 闻道有先后,术业有专攻 加博友   关注他 文章分类 ·css(2) ·.net控件事件(3) ·帐号密码(0) ·JS与JQ(12) ·sql server指南(5) ·杂谈(2) ·C#基础指南(18) ·.net成长篇(38) ·更多 > LOFTER精选 注册免费冲印20张照片 > 网易新闻 清华毕业学

JS中onload方法,JQ中的load,ready方法

JS中的 onload 属性:网页中所有的内容加载完毕后(包括图片)才能执行: 页面中只能有一个onload window.onload = function() { …… }; JQ的 ready() 属性:网页中所有DOM结构绘制完毕后就执行,可能DOM元素关联的东西并没有加载完(例如图片): 页面中可以写用多个 $(document).ready(function() { …… }); 简写:$(function(){……}) JQ的 load() 属性:这个方法会等到页面所有内容加载完毕