• 技术文章 >web前端 >js教程

    如何改变Javascript的执行顺序

    醉折花枝作酒筹醉折花枝作酒筹2021-07-19 14:45:56原创97

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

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

    1、利用onload

    <script type="text/javascript">
    //<![CDATA[
    window.onload = f;
    function f(){alert(1);}
    alert(2);
    //]]>
    </script>

    输出值顺序是 2、1。

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

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

    利用2级DOM事件类型

    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中有效,所以上面的例子可以修改成为

    <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的执行顺序的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:Javascript
    上一篇:javascript中的惰性求值是什么 下一篇:javascript运行没有效果是怎么回事?
    第16期线上培训班

    相关文章推荐

    • javascript怎么跳出循环• javascript怎么实现按钮隐藏div• javascript怎么打印• javascript怎么隐藏元素值• javascript可以写在body里吗

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网