如何改变Javascript的执行顺序


本文摘自PHP中文网,作者醉折花枝作酒筹,侵删。

方法:1、利用onload;2、IE中可以利用deferdefer,把代码加载下来,并不立即执行,等文档装载完毕之后再执行;3、利用Ajax中的xmlhttpRequest,判断外部文档加载的状态。

本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

1、利用onload

1

2

3

4

5

6

7

<script type="text/javascript">

//<![CDATA[

window.onload = f;

function f(){alert(1);}

alert(2);

//]]>

</script>

输出值顺序是 2、1。

需要注意的是,如果存在多个winodws.onload的话,只有最有一个生效,解决这个办法是:

1

window.onload = function(){f();f1();f2();.....}

利用2级DOM事件类型

1

2

3

4

5

6

7

8

9

if(document.addEventListener){

window.addEventListener('load',f,false);

window.addEventListener('load',f1,false);

...

}else{

window.attachEvent('onload',f);

window.attachEvent('onload',f1);

...

}

2、IE中可以利用deferdefer作用是把代码加载下来,并不立即执行,等文档装载完毕之后再执行,有点类似onload,但是没有onload那样的局限性,可以重复使用,但是只在IE中有效,所以上面的例子可以修改成为

1

2

3

4

5

6

7

8

9

10

11

12

13

14

<script type="text/javascript">

//<![CDATA[

document.write('<script type="text/javascript" src="test.js"><\/script>');

document.write('<script type="text/javascript" defer="defer">');

document.write('alert(2);')

document.write('alert("我是" + tmpStr);');

document.write('<\/script>');

//]]>

</script>

<script type="text/javascript">

//<![CDATA[

alert(3);

//]]>

</script>

这样IE就不报错了,输出值的顺序变成:1、3、2、我是1

3、利用Ajax。

因为xmlhttpRequest能判断外部文档加载的状态,所以能够改变代码的加载顺序。

【推荐学习:javascript高级教程

以上就是如何改变Javascript的执行顺序的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

javascript的结束方法有哪些?

为什么javascript小数相减会出现一长串的小数位数?

javascript的2种变量范围有什么不同

js中isnan和number.isnan的区别是什么

javascript怎么将数字转换成时间

reduce的用法技巧(代码示例)

javascript可以跳出函数吗

一招搞定javascript猜数字小游戏

如何理解javascript中的变量提升

javascript怎么将值转换为int类型

更多相关阅读请进入《javascript》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...