栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用jQuery $ .getScript()方法包含多个js文件

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用jQuery $ .getScript()方法包含多个js文件

答案是

您可以将promise与一起使用,

getscript()
并等待所有脚本加载完毕,例如:

$.when(    $.getscript( "/mypath/myscript1.js" ),    $.getscript( "/mypath/myscript2.js" ),    $.getscript( "/mypath/myscript3.js" ),    $.Deferred(function( deferred ){        $( deferred.resolve );    })).done(function(){    //place your pre here, the scripts are all loaded});

jsfiddle

ANOTHER FIDDLE

在上面的代码中,添加Deferred并将其解析在内部

$()
就像将其他任何函数放在jQuery调用中一样
$(func)
,就像,

$(function() { func(); });

也就是说,它等待DOM准备就绪,因此在上面的示例中

$.when
,由于调用在DOMready回调中解析,因此等待所有脚本加载以及
$.Deferred
DOM准备就绪。


对于更通用的用途,方便的功能

可以创建一个接受任何脚本数组的实用程序函数,如下所示:

$.getMultiscripts = function(arr, path) {    var _arr = $.map(arr, function(scr) {        return $.getscript( (path||"") + scr );    });    _arr.push($.Deferred(function( deferred ){        $( deferred.resolve );    }));    return $.when.apply($, _arr);}

可以这样使用

var script_arr = [    'myscript1.js',     'myscript2.js',     'myscript3.js'];$.getMultiscripts(script_arr, '/mypath/').done(function() {    // all scripts loaded});

该路径将添加到所有脚本的前面,并且也是可选的,这意味着如果该数组包含完整的URL,则也可以执行此操作,并将路径全部省略

$.getMultiscripts(script_arr).done(function() { ...

参数,错误等

顺便说

done
一句,请注意,回调将包含许多与传入的脚本匹配的参数,每个参数代表一个包含响应的数组

$.getMultiscripts(script_arr).done(function(response1, response2, response3) { ...

每个数组将包含类似的内容

[content_of_file_loaded,status,xhr_object]
。我们通常不需要访问这些参数,因为无论如何脚本都会自动加载,并且在大多数情况下,
done
回调是我们真正要知道的所有脚本都已加载的全部,我只是为了完整性而添加它,在极少数情况下,需要访问已加载文件中的实际文本,或者需要访问每个XHR对象或类似对象。

另外,如果任何脚本加载失败,则将调用失败处理程序,并且后续脚本也不会加载

$.getMultiscripts(script_arr).done(function() {     // all done}).fail(function(error) {     // one or more scripts failed to load}).always(function() {     // always called, both on success and error});


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/420634.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号