zoukankan      html  css  js  c++  java
  • 判断JS是否加载完成

      在正常的加载过程中,js的加载都是同步的,也就是在加载过程中,浏览器会阻塞接下来的内容的加载。这时候我们就要用到动态加载,动态加载是异步的,如果我们在后边要用到这个动态加载的js文件里的东西,就要保证这个文件加载完成后,再执行下面的内容。

      如何判断js是否加载完成?(实现loadScript(url,callback)异步加载脚本,完成后执行回调函数,要求支持IE)

    我们使用document的readyState属性:document.readyState

      readyState 属性返回当前文档的状态。

      该属性返回以下值:

    • uninitialized - 还未开始载入
    • loading - 载入中
    • interactive - 已加载,文档与用户可以开始交互
    • complete - 载入完成  (loaded)

    原生JS:

    function loadScript(url,callback){
      var script=document.createElement('script');
        script.type='text/javascript';
        script.async='async';
        script.src=url;
        document.body.appendChild(script);
        if(script.readyState){ //IE
          script.onreadystatechange=function(){
            if(script.readyState=='complete'||script.readyState=='loaded'){
              script.onreadystatechange=null;
              callback();
            }
          }
        }else{ //非IE
          script.onload=function(){callback();}
        }
    }

    Jquery:使用 $.holdReady(true);  $.getScript();   $.holdReady(false)   3个函数实现

    $.holdReady(true);    //hold住,等待a.js加载,后续代码不能执行
    $.getScript('a.js',function(){
      $.holdReady(false); //释放,a.js加载完成,继续执行后续代码
    });

    $.holdReady()函数表示 延迟加载。

  • 相关阅读:
    python Database Poll for SQL SERVER
    SQLAlchemy表操作和增删改查
    flask动态url规则
    flask配置管理
    一个Flask运行分析
    Function Set in OPEN CASCADE
    Happy New Year 2016
    Apply Newton Method to Find Extrema in OPEN CASCADE
    OPEN CASCADE Multiple Variable Function
    OPEN CASCADE Gauss Least Square
  • 原文地址:https://www.cnblogs.com/telnetzhang/p/5827791.html
Copyright © 2011-2022 走看看