初始化加载

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/angelsunshuli/article/details/52279490

初始化加载

一:jquery 和 js 初始化加载的区别

一般情况一个页面响应加载的顺序是,域名解析-加载html-加载js和css-加载图片等其他信息。


js (Dom Load):指示页面包含图片等文件在内的所有元素(整个document文档)都加载完成。

js是页面全部加载完成才执行初始化加载。js中的window.onload是等页面加载完所有的元素,包括图片等等资源要全部加载成功后才执行
特例

document.getElementById("imgID").onload=function(){
     //do something
}

jquery (Dom Ready):表示文档结构已经加载完成(不包含图片等非文字媒体文件)

等待页面加载完数据,以及页面部分元素(不包括图片、视频)。在DOM加载完成后就可以可以对DOM进行操作。


注意:window.onload不能同时编写多个,如果有多个window.onload方法,只会执行一个
$(document).ready()可以同时编写多个,并且都可以得到执行

二:js和jquery页面初始化加载函数的方法及先后顺序

运行下面代码。弹出A、B、C、D、E的顺序:A=B=C>D=E=F。

<!DOCTYPE html>
<html>
<head>
<title>首页</title>
<script type="text/javascript" src="js/jquery-1.8.0.min.js"></script>
<script>

$(function()
{
    alert("A");
});

$(document).ready(function(){
    alert("B");
});

jQuery(function($) {  
    alert("C");  
});

loads();
function loads(){
    alert("D");
};

window.onload=function(){
    alert("E");
};

$(window).load(function() {
   alert("F");
});


</script>
<body onload="loads();">
</body>
</html>

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

1、如果我们想同时加载多个函数,我们必须这样写
<body onload="fn1(),fn2()"></body>看起来极其丑陋,如果用$(window).load()我们可以这样加载多个函数

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

2、用body.Onload()不能够做到js和html完全分离,这是一个很严重的问题.

四、所有DOM元素加载之前执行的jQuery代码

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

IE只有在页面不是嵌入frame中的情况下才和Firefox等一样,先执行$(document).ready()的内容,再执行原来的onload方法。对于嵌入frame中的页面,也只是绑定在load事件上执行,所以自然是在原来的onload绑定的方法执行之后才轮到。而这个页面中正好在测试环境下有一个访问不到的资源,那十几秒的延迟正是它放大出的时间差。

猜你喜欢

转载自blog.csdn.net/angelsunshuli/article/details/52279490