onload()和$ .ready之间的区别?

时间:2010-12-09 07:14:53

标签: javascript jquery onload

您能否列出使用jQuery中onload()$(document).ready(function(){..})函数之间的区别?

6 个答案:

答案 0 :(得分:71)

一旦 all 加载了页面的内容,窗口和/或body元素上的load事件(也称为“onload”)将会触发 - 这包括所有图像,脚本等......一切。

相反,jquery的$(document).ready(...)函数将使用特定于浏览器的机制来确保在加载和访问HTML / XML dom后尽快调用您的处理程序。这是页面加载过程中最早的一点,您可以安全地运行打算访问页面的html dom中的元素的脚本。由于加载辅助资源(如图像等)所需的额外时间,此点比最终的load事件更早(通常更早)到达。

答案 1 :(得分:19)

两者之间的主要区别是:

  1. 仅在DOM和相关资源(如图像加载)之后才会调用Body.Onload()事件,但是一旦加载DOM就会调用jQuery的document.ready()事件,即它不会等待像图像这样的资源加载。因此,一旦加载HTML结构而不等待资源,jQuery就绪事件中的函数将被执行。
  2. 我们可以在页面中有多个document.ready()但Body.Onload()事件不能。

答案 2 :(得分:2)

一旦HTML DOM加载,Document.ready()函数就会触发。但onload()函数将在HTML DOM之后触发,所有正文内容都像图像一样加载。

答案 3 :(得分:1)

body.onload()关注HTML结构和相关资源,而document.ready()只关心HTML结构。

答案 4 :(得分:0)

Onload会关注DOM和资源:它会检查图像是否已加载,脚本是否已准备好运行等等。

$。准备好只需检查我们是否已阅读该页面的完整DOM。

请查看此链接以获取更多说明和示例:http://dailygit.com/difference-between-document-ready-and-window-load-in-jquery/

答案 5 :(得分:0)

  

onload()在目标元素上的所有内容(所有内容)完全加载时触发,如CSS,图像等。

     

$ .ready 表示一旦目标元素内容加载并准备好由脚本操作,其中的代码就需要执行。它不会等待加载图像来执行jQuery脚本。

.
  

Ex(身体上传):

<body onload="loadBody()">

<script>
function myFunction() {
    alert("Page is loaded");
}
</script>
</body
  

Ex(元素上的onload):

<img src="w3html.gif" onload="loadImg()" width="100" height="132">

<script>
function loadImg() {
    alert("Image is loaded");
}
</script>
  

Ex3($ .ready):

<script type = "text/javascript">
        $(document).ready(function() {
            alert("$(document).ready fired");
        });
    </script>