SORU
4 HAZİRAN 2009, PERŞEMBE


Bir JavaScript başka bir JavaScript dosyası vardır?

Bir şey başka bir JavaScript dosyası içinde bir JavaScript dosyası eklemek için izin veren JavaScript CSS @import benzer var mı?

CEVAP
4 HAZİRAN 2009, PERŞEMBE


JavaScript hayır alma, içerir veya gerektirir. JavaScript için başka yollar harici JavaScript içeriği eklemek için olsa vardır.

Ajax Yükleniyor

Bir Ajax çağrısı ile ek bir komut dosyası yüklenemedi ve eval kullanın. Bu en basit yoldur, ama JavaScript sanal güvenlik modeli nedeniyle etki sınırlı. eval kullanarak aynı zamanda böcek ve kesmek için kapıyı açar.

jQuery Yükleniyor

jQuery kütüphane yükleme işlevselliği in one line:

$.getScript("my_lovely_script.js", function(){

   alert("Script loaded but not necessarily executed.");

});

Dinamik Script Yükleme

HTML kod URL ile bir komut dosyası etiketi ekleyin. Bir WordPress kullanmak yükünü önlemek için, bu ideal bir çözümdür.

Senaryoyu bile farklı bir sunucu üzerinde bulunabilir. Ayrıca, tarayıcı kodu değerlendirir. <script> etiket ya da web sayfası enjekte edilebilir <head> veya </body> kapanış etiketinden önce eklenir.

Bu çözümlerin her ikisi de tartışılmış ve gösterilmiştirJavaScript Madness: Dynamic Script Loading.

Komut çalıştırıldı tespit

Şimdi, bilmeniz gereken önemli bir konu var. Bunu yapmak anlamına geliruzaktan kod yük. Modern web tarayıcılarının dosya yükleme ve onlar her zaman uyumsuz olarak performansını artırmak için yük nedeniyle geçerli komut dosyası yürütme devam edecektir. (Bu bir WordPress kullanmak yöntemi ve manuel dinamik script yükleme yöntemi için geçerlidir.)

Eğer bu hileler doğrudan kullanırsanız, anlamına gelirdolu olmamı istedin sonra yeni yüklenen kod bir sonraki satıra kullanmak mümkün olmayacaktırhala yükleniyor olacak. çünkü ,

Örneğin: 12* *MySuperObject içerir:

var js = document.createElement("script");

js.type = "text/javascript";
js.src = jsFilePath;

document.body.appendChild(js);

var s = new MySuperObject();

Error : MySuperObject is undefined

Sonra sayfayı isabet doldurunF5. Ve işe yarıyor! Kafa karıştırıcı...

Bu konuda ne yapabiliriz ?

Sana linkini verdiğim yazar öneriyor hack kullanabilirsiniz. Acele insanlar için, Özet olarak, en olay komut dosyası yüklendiğinde bir geri arama işlevini çalıştırmak için kullanıyor. Tüm kodları geri arama işlevi uzaktan kütüphane kullanarak koyabilirsiniz. Örneğin:

function loadScript(url, callback)
{
    // Adding the script tag to the head as suggested before
    var head = document.getElementsByTagName('head')[0];
    var script = document.createElement('script');
    script.type = 'text/javascript';
    script.src = url;

    // Then bind the event to the callback function.
    // There are several events for cross browser compatibility.
    script.onreadystatechange = callback;
    script.onload = callback;

    // Fire the loading
    head.appendChild(script);
}

Sonra komut dosyası lambda function: bir dolu SONRA kullanmak istediğiniz kodu yazın

var myPrettyCode = function() {

   // Here, do what ever you want
};

Sonra hepsini çalıştırın:

loadScript("my_lovely_script.js", myPrettyCode);

Script DOM yüklendikten sonra çalıştırmak olabilir, ya da, tarayıcıya bağlı olarak önce 18 ** satırı dahil olmadığını unutmayın. Bu anlatılır great article on Javascript loading in general bir şey var.

Kaynak Kod Birleştirme

solution başka tek bir dosya içine iki dosya birleştirilecek. Bu normal olarak eklemek için, minimal JavaScript boyutunda tek bir dosya oluşturmak için minification ile kullanılabilir.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Capcom Unity

    Capcom Unity

    5 NİSAN 2010
  • EminemMusic

    EminemMusic

    9 ŞUBAT 2007
  • RyanXLT

    RyanXLT

    22 Ocak 2011