jquery的ready()方法与 <body onload=""> 有什么区别?

如题所述

一般情况下都是设置body标签的onload监听window的load事件.但load事件是要在页面的元素全部加载完了才触发的,如果页面上图片较多或图片太大,就会导致初始化的代码未被执行的时候用户就做了其它操作了. Jquery库提供了一个非常方便好用的函数( $(selector).ready()),让我们可以在页面的dom加载完后就可以做相应的操作(当然,这还得看用户浏览器的支持).,而不用等待全部元素加载完成.例如:
$(document).ready(function (){ alert('use in page script tag') });
$(document).ready(function (){ alert('use in import js file') });
现在让我们来研究一下这个函数的实现.
原理:
在jquery脚本加载的时候,会设置一个isReady的标记,监听DOMContentLoaded事件(这个不是什么浏览器都有的,不同浏览器,jquery运作方式不一样).当然遇到调用ready函数的时候,如果isReady未被设置,那就是说页面未加载完,就会把要执行的函数用一个数组缓存起来,当页面加载完后,再把缓存的函数一一执行.
详细出处参考:http://www.jb51.net/article/21268.htm

参考资料:http://www.jb51.net/article/21268.htm

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-02-10
jquery ready可以写好几个,每个都执行
onload只能写一个,你写好几个,也只执行一个,好像是执行最后一个本回答被提问者采纳

JQuery中$(document).ready()事件与<body> 元素的onload对比
兼容性都是一样的。js兼容所有游览器,jquery也是兼容所有游览器。jquery强大就强大在选择器和一堆封装好的函数。这些函数和选择器JS都写的出来,但是相当麻烦,为了达到兼容效果,这些函数或者选择器,需要写好几个if语句,而jquery它封装的时候帮我们都写好了这些IF。但其实最基本的理念上,兼容性都一样。

jquery ready和onload的区别
1、window.onload必须等到页面内包括多媒体等所有元素加载完毕后才能执行,(document).ready()是DOM结构绘制完毕后就执行,不必等到多媒体加载完毕,ready()快于onload;2、window.onload不能同时编写多个,如果有多个window.onload方法,只会执行一个 (document).ready()可以同时编写多个,并且都可以得到执...

body中onload函数和jquery中的$ready事件的区别
window.onload如果有多个,只会执行最后一个绑定 jq.ready会都执行,按绑定的顺序

jquery中$ready和window.onload的区别
JQuery的ready函数与JS的onload的区别:1.执行时间 window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行。(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕。2.编写个数不同 window.onload不能同时编写多个,如果有多个window.onload方法,只会执行一个 (document).ready()可以...

jquery中$ready和window.onload的区别
做web开发时常用Jquery中$(document).ready()和JavaScript中的window.onload方法,两者都是要在页面加载完成以后加载的方法,但是这两者还是有很大区别的。最近遇到了这样的问题,查询了多篇文章,做一下总结。简单来说,要以用以下张表来表示 :Jquery的ready()与Javascrpit的load()window.onload() $...

Jquery知识点一 Jquery的ready和Dom的onload的区别
onload 方法在所有的 DOM (文档对象模型)、文档流全都加载完之后执行。比如,页面中有内存量大的图片,一个 img 图片就大于 几M(兆)或者好几 M 而且图片内容很多 时,onload 方法会在所有图片都加载完之后才执行,而如果用户网速慢的话,体验非常不好。jQuery 的ready 就避免了这个弊端,简单来说...

JS 页面加载触发事件 document.ready和onload的区别
在Jquery里面,我们可以看到两种写法:$(function(){})和$(document).ready(function(){})这两个方法的效果都是一样的,都是在dom文档树加载完之后执行一个函数(注意,这里面的文档树加载完不代表全部文件加载完)。而window.onload是在dom文档树加载完和所有文件加载完之后执行一个函数。也就是说$(...

浅析document.ready和window.onload的区别讲解
相似,不同的是onload()的方法是在页面加载完成后才发生,这包括DOM元素和其他页面元素(例如图片)的加载,因此,使用document.ready()方法的执行速度比onload()的方法要快。最后要注意两点(来自jQuery文档):1.确保在 <body> 元素的onload事件中没有注册函数,否则可能不会触发$(document).ready()...

JS 页面加载触发事件 document.ready和onload的区别
纠正 原生js 是没有 document.ready 方法的 可以自己定义document.ready=function(){···} jQuery 有 用法$(document).ready(funcion(){})ready 和 onload 事件平时用几乎没区别 下面是区别 ready 比onload 先执行 当页面有较多图片时 建议用ready (dom对象加载完 而不是整个页面加载完)

jquery$(document).ready()与window.onload的区别
答案:jQuery中的$.ready与window.onload之间存在显著区别。主要区别在于两者的触发时机和用途不同。详细解释:触发时机:1. $.ready:这是jQuery提供的一个方法,它会在HTML文档被完全加载和解析完成之后,但在其他外部资源加载完成之前执行。换句话说,当DOM结构绘制完毕,就可以运行该函数中的代码了。2....

相似回答