$(window).load(function() {})和$(document).ready(function(){})的区别

在我之前的开发中,通常用到javascript,我都是采用jquery的模式,也就是大多数时候,第一行写的是:javascript

$(document).ready(function(){html

...java

});jquery

这个时候,不必定要等全部的js和图片加载完毕,就能够执行一些方法,不过有些时候,必需要等全部的

元素都加载完毕,才能够执行一些方法的时候,好比说,部分图片或者什么其余方面尚未加载好,这个时候,点击某些按钮,会致使出现意外的状况,这个时候,就dom

须要用到:ide

$(window).load(function() {函数

$("#btn-upload").click(function(){   //好比说:
uploadPhotos();
});
post

});
spa

下面是转载的内容,orm

用$(window).load(function(){...})而不用body.onload()的几个理由

首先它们都是在页面全部元素(包括html标签以及引用到得全部图片,Flash等媒体)加载完毕后执行的,这是它们的共同点.

不用body.Onload()理由1:

若是咱们想同时加载多个函数,咱们必须这样写

<body onload="fn1(),fn2()"></body>看起来极其丑陋,若是用$(window).load()咱们能够这样加载多个函数

 $(window).load(function() {
            alert("hello,我是jQuery!");
  });
 $(window).load(function() {
        alert("hello,我也是jQuery");
 });

这样写它会从上往下执行这两个函数,而且看起来漂亮多了.

不用body.Onload()理由2:

用body.Onload()不可以作到js和html彻底分离,这是一个很严重的问题.

另外用$(window).load(function(){...})和body.onload()都存在一样一个问题,由于开始也说到了,它们都须要等到页面的全部内容

加载完毕才执行,可是若是当网速比较慢的时候,加载一个页面每每须要较长的时间(几秒到十几秒不等,甚至更长...),因此咱们常常

会遇到页面尚未彻底加载完毕而用户已经在操做页面了这种状况,这样页面表现出来的效果就跟咱们预期的效果不同了,

因此在这里我推荐使用$(document).ready(function(){}),或简写为$(function(){}),由于他会在页面的dom元素加载完毕后就执行,

而无需等到图片或其余媒体下载完毕.

可是有时候确实咱们有须要等到页面的全部东西都加载完后再执行咱们想执行的函数,因此是该使用$(window).load(function(){...})仍是

该使用$(function(){})每每须要结合具体须要而做不一样的选择.

最后附上一段在全部DOM元素加载以前执行的jQuery代码

<script type="text/javascript">

(function() {
            alert("DOM还没加载哦!");
        })(jQuery)
  </script>

呵呵,有时候咱们也有这个需求!

相关文章
相关标签/搜索