异步动态加载script

原创 2015年07月09日 11:51:40

首先是应用场景:因为项目需要,通过HTTP请求加载另一个项目的js文件并调用该js文件的方法;
实现思路:首先用document创建script并设置各个属性,使用Ajax获取该文件的地址并赋值,调用改js方法;
实现问题:必须要先去获取js文件才能调用改js的方法,由于是异步加载,所以无法保证是否在加载完之后调用该文件中的方法;
解决思路:创建script标签并在该创建函数里加入回调函数,在回调函数里判断该文件是否加载成功,成功则在回调函数里调用该文件中的方法
附上代码:

//动态插入script标签 
function createScript(url, callback){ 
    var oScript = document.createElement('script'); 
    oScript.type = 'text/javascript'; 
    //oScript.async = true; 
    oScript.src = url; 
    /* 
    ** script标签的onload和onreadystatechange事件 
    ** IE6/7/8支持onreadystatechange事件 
    ** IE9/10支持onreadystatechange和onload事件 
    ** Firefox/Chrome/Opera支持onload事件 
    */ 

    // 判断IE8及以下浏览器 
    var isIE = !-[1,]; 
    if(isIE){ 
        oScript.onreadystatechange = function(){ 
            if(this.readyState == 'loaded' || this.readyState == 'complete'){ 
                callback(); 
            } 
        } 
    } else { 
    // IE9及以上浏览器,Firefox,Chrome,Opera 
    oScript.onload = function(){ 
        callback(); 
        } 
    } 
    document.body.appendChild(oScript); 
} 

方法大家应该都能看懂,根据浏览器不同调用不同的插入方法;
调用该方法:

createScript(data.ssoJsUrl, function(){ 

                });

完毕;

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

【AJAX】使用getScript()方法异步加载并执行js文件

功能:使用getScript()方法异步请求并执行服务器中的JavaScript格式的文件,它的调用格式如下所示: jQuery.getScript(url,[callback])或$.getS...

jquery ztree 异步动态加载

  • 2013-07-30 16:29
  • 142KB
  • 下载

动态加载script文件

动态加载script到页面大约有俩方法 第一种就是利用ajax方式,把script文件代码从后台加载到前台,然后对加载到的内容通过eval()执行代码。第二种是,动态创建一个script标签,设...

概述 RequireJS是一个工具库,主要用于客户端的模块管理。它可以让客户端的代码分成一个个模块,实现异步或动态加载,从而提高代码的性能和可维护性。它的模块管理遵守AMD规范(Asynchronou

概述 RequireJS是一个工具库,主要用于客户端的模块管理。它可以让客户端的代码分成一个个模块,实现异步或动态加载,从而提高代码的性能和可维护性。它的模块管理遵守AMD规范(Asynch...

ligerui中的tree的异步动态加载数据库例子

原文:http://blog.csdn.net/vazumi/article/details/7063770 在线测试:  http://vazumihost.vip1.kingidc.ne...

使用LoaderManager管理Loader实现异步动态加载数据

Loader特性对于每个Activity或者Fragment都可用 提供异步加载数据 监视数据资源,当内容改变时重新更新 当配置改变时,自动重新连接最新的cursor,故不需要重新查询数据 Loade...

easy UI异步树的动态加载treegrid(实践记录)

JSP 页面     pageEncoding="UTF-8"%>               ...

AndroidのLoaderManager管理Loader实现异步动态加载数据

1.Loader特性: (1).对于每个Activity或者Fragment都可用 (2).提供异步加载数据 (3).监视数据资源,当内容改变时重新更新 (4).当配置改变时,自动重新...

jquery.autocomplete 异步动态加载

这里用的是jquery-ui.js 的 autocomplete 不是 jquery.autocomplete.js 希望可以帮到大家 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)