SORU
3 AĞUSTOS 2012, Cuma


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
3 AĞUSTOS 2012, Cuma


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

});

FIDDLE

ANOTHER FIDDLE


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
});

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Project Mooncircle

    Project Moon

    6 Aralık 2009
  • Sali Kaceli

    Sali Kaceli

    24 ŞUBAT 2009
  • SegaAmerica

    SegaAmerica

    5 Mart 2008