zoukankan      html  css  js  c++  java
  • 使用Jquery promise 动态引入js文件

    动态加载一个js得方式很多,如下方式:

    /**
    *一般方式加载
    */
    function normalLoadScript(url) {
                var node = document.createElement('script');
                node.type = "text/javascript";
                node.src = url;
                document.getElementsByTagName('head')[0].appendChild(node);
            }
    cnblog_mc

    那么如果需要在这个js加载完成之后执行一些逻辑,该怎么做呢?可以使用jquery 提供的promise对象进行改造此方法

    function promiseLoadScript (url) {
                var dtd = $.Deferred();
                var node = document.createElement('script');
                node.type = "text/javascript";
                node.src = url;
                var onload = function () {
                    dtd.resolve();
                };
                $(node).load(onload).on('readystatechange', function () {
                    if (node.readyState == 'loaded') {
                        onload();
                    }
                });
                document.getElementsByTagName('head')[0].appendChild(node);
                
                return dtd.promise();
            }            

    使用方法如下:

     $.when(this.promiseLoadScript("js/validateRules.js?v=" + Math.random())).then(function () {
                    //your code
                });

    这样就可以保证指定的js加载完毕之后再执行你的代码

  • 相关阅读:
    SpringBoot2 application.properties方式加载配置文件
    php第三十节课
    php第二十九节课
    php第二十八节课
    php第二十七节课
    php第二十六节课
    php第二十五节课
    php第二十四节课
    DBDA
    php第二十三节课
  • 原文地址:https://www.cnblogs.com/Brose/p/promise_load_script.html
Copyright © 2011-2022 走看看