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
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.
Yii Çerçevesinde CSS,javascript dosyas...
Kısmi manzaralı JavaScript dosyası var...
Nasıl başka bir dizi ile mevcut JavaSc...
Javascript başka bir diziye dizi değer...
Başka bir javascript işlevi geçirmeden...