Birden fazla js dosyaları jQuery kullanarak nasıl dahil $.() getScript yöntemi
Dinamik js dosyamı içine javascript dosyaları dahil etmek için çalışıyorum. Bu konuda biraz araştırma yaptım ve bir WordPress kullanmak bulmak dolar.() getScript yöntemi gitmek istediğiniz bir yol olacaktır.
// jQuery
$.getScript('/path/to/imported/script.js', function()
{
// script is now loaded and executed.
// put your dependent JS here.
// what if the JS code is dependent on multiple JS files?
});
Ancak bu yöntem, aynı anda birden fazla komut yük olup olmadığını merak ediyorum? Bazen benim javascript dosya, çünkü bu soruyorum neden birden fazla js dosyalar bağlıdır.
Şimdiden teşekkür ederim.
CEVAP
TL, DR cevap
getScript()
sözler kullanın ve bütün komut yüklenene kadar bekleyin gibi bir şey
$.when(
$.getScript( "/mypath/myscript1.js" ),
$.getScript( "/mypath/myscript2.js" ),
$.getScript( "/mypath/myscript3.js" ),
$.Deferred(function( deferred ){
$( deferred.resolve );
})
).done(function(){
//place your code here, the scripts are all loaded
});
Daha genel kullanım için, kullanışlı bir fonksiyon
Komut herhangi bir dizi kabul eden bir yardımcı işlevi aşağıdaki gibi tanımlanabilir :
$.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);
}
bu gibi kullanılabilecek
var script_arr = [
'myscript1.js',
'myscript2.js',
'myscript3.js'
];
$.getMultiScripts(script_arr, '/mypath/').done(function() {
// all scripts loaded
});
yolu tüm komut, e olacak, ve ayrıca isteğe bağlı olduğu, eğer dizi içeren tam URL bir anlamı da bu yolu hep birlikte dışarıda bırakın
$.getMultiScripts(script_arr).done(function() { ...
Tartışmalar, hatalar vb.
Bir kenara olarak, done
geri arama bağımsız değişkenleri komut dosyaları, her bir bağımsız değişken bir dizi tepki içeren temsil geçti eşleşen bir dizi içerir
$.getMultiScripts(script_arr).done(function(response1, response2, response3) { ...
her dizi [content_of_file_loaded, status, xhr_object]
gibi bir şey içerir.
Biz genellikle gerek yok erişim bu bağımsız değişken olarak komut yüklenmeye otomatik olarak zaten, ve çoğu zaman done
geri arama bütün olduğumuzu gerçekten bilmek sonra tüm senaryo yüklendiği, ben sadece ekleme için eksiksiz ve nadir durumlarda zaman gerçek metne yüklenen dosyada ihtiyaçları için erişilebilir, ya da ne zaman bir ihtiyacı erişmek için her XHR nesne ya da ona benzer bir şey.
Eğer komut herhangi bir yükleme başarısız olursa, başarısız işleyicisi çağrılır, ve sonraki komut dosyaları yüklü değil
$.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
});
Nasıl birden fazla çalıştırmak için .B...
Nasıl Git deposu, birden fazla silinmi...
Nasıl birden fazla dizin gnu cp komutu...
Nasıl birden fazla satır grep kullanar...
Nasıl ve HTML ve PHP ile birden fazla ...