javascript的执行顺序2

测试一:

test.html

<html>
    <head>
        <title>
            javascript记载顺序研究
        </title>
        <script type="text/javascript" src="1.js" ></script>
        <script type="text/javascript" src="2.js" ></script>
        <script type="text/javascript" src="3.js"></script>
    </head>
    <body>
        <div>
            this is just a Test 
        </div>
        <div id="container1">
        </div>
    </body>
</html>

*.js

alert("1") //1.js
alert("2") //2.js
alert("3") //3.js

执行结果:在“this is just  a Test出现前,alert()语句依次执行,执行完成后,this is just  a Test 出现”

测试2:

test.html

<html>
    <head>
        <title>
            javascript记载顺序研究
        </title>
        
    </head>
    <body>
        <script type="text/javascript" src="1.js" ></script>
        <div>
            this is just a Test 
        </div>
        <div id="container1">
        </div>
        <script type="text/javascript" src="2.js" ></script>
        <script type="text/javascript" src="3.js"></script>
    </body>
</html>

*.js

alert("1") //1.js
alert("2") //2.js
alert("3") //3.js

执行结果:alert("1")->"this is just a Test 出现"->alert("2")->alert("3")

测试3:

test.html

<html>
    <head>
        <title>
            javascript记载顺序研究
        </title>
    </head>
    <body>
        <script type="text/javascript" src="a.js" ></script>
        <div>
            this is just a Test 
        </div>
        <div id="container1">
        </div>
        <script type="text/javascript" src="b.js" ></script>
    </body>
</html>

a.js

alert("aaa");
document.getElementById("container1").innerHTML="aaa";

b.js

alert("bbb");
document.getElementById("container1").innerHTML="bbb";

执行结果:alert("aaa")->“运行document.getElementById("container1").innerHTML="aaa"报错,document.getElementById("container1")为空”->alert("bbb")->"运行document.getElementById("container1").innerHTML="bbb"成功"

由一,二,三测试可以看出,在页面中的<script></script>同样会被作为一般的页面元素,按页面顺序加载。与普通DOM不同的是,<script>中的脚本会在加载过程中解释执行。在执行过程中,不能使用未加载的DOM

测试四:

test.html

<html>
    <head>
        <title>
            javascript记载顺序研究
        </title>
        <script type="text/javascript" src="a.js" ></script>
    </head>
    <body>
        <div>
            this is just a Test 
        </div>
        <div id="container1">
        </div>
        <div id="container2">
            Test
        <div>
        <script type="text/javascript" src="b.js" ></script>
    </body>
</html>

a.js

window.οnlοad=function (){
    alert("aaa");
    document.getElementById("container1").innerHTML="aaa";
}

b.js

alert("bbb");
document.getElementById("container2").innerHTML="bbb";

执行结果:

alert("bbb");->document.getElementById("container2").innerHTML="bbb";->window.onload()->...

测试四表面:window.onload()函数是在页面元素全部加载后再执行。

测试五:

test.html

<html>
    <head>
        <title>
            javascript记载顺序研究
        </title>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
        <script type="text/javascript" src="a.js" ></script>
    </head>
    <body>
        <div>
            this is just a Test 
        </div>
        <div id="container1">
        </div>
        <div id="container2">
            Test
        <div>
    </body>
</html>

a.js

window.οnlοad=function (){
    alert("aaa");
    document.getElementById("container1").innerHTML="aaa";
}
$(function(){
    alert("$aaa");
})

测试结果:alert("$aaa")->alert("aa")表明jquery的$(document).ready(function(){})比window.onload先执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值