SORU
17 EYLÜL 2009, PERŞEMBE


belge kullanıyoruz.jQuery: hazır harici eğer JS sayfanın altındaki?

Sayfanın en altındaki yüklenen harici dosyalar olarak benim JS de dahil ediyorum. Bu dosyalar içinde, çeşitli yöntemler hazır olay dediğim gibi tanımlandığı gibi, var:

var SomeNamepsace = {};

SomeNamepsace.firstMethod = function () {
    // do something
};

SomeNamepsace.secondMethod = function () {
    // do something else
};

$(document).ready(function () {
    SomeNamepsace.firstMethod();
    SomeNamepsace.secondMethod();
});

Ben hazır fonksiyonu çıkarın ve yöntemleri-hemen arayın, ancak her şey aynı çalışır, ancak önemli ölçüde daha hızlı neredeyse bütün bir saniye daha hızlı oldukça basit bir dosya üzerinde yürütür! Belge, bu noktada tüm biçimlendirme komut etiketleri önce gelir gibi) yüklü olmalıdır beri, hala hazır olayı kullanarak, herhangi bir iyi bir neden var mı?

CEVAP
17 EYLÜL 2009, PERŞEMBE


Çok güzel bir soru.

Bütün "sayfanın altındaki komut koymak" tavsiye ve ne sorun(lar) çözmek için çalışır. etrafında biraz karışıklık var Bu soru için sayfanın alt kısmında komut koyarak performans/loadtimes etkileyip etkilemediğini hakkında konuşmak için gitmiyorum. Sadece $(document).ready gerekli olup olmadığı hakkında konuşmak için gidiyorumayrıca, sayfanın alt kısmında komut koyarsanız.

Hemen komut çağırma bu işlev DOM (bir şey document document.getElementById kadar basit) başvuran varsayıyorum. Ayrıca bu [DOM-başvuru] sadece dosyaları hakkında sorduğunu farz ediyorum. DOM-referans kod gerektiren DÜŞÜK, kütüphane komut veya komut dosyaları (jQuery gibi) sayfayı daha önce yerleştirilmesi gerekir.

Sorunuzun cevabı için: eğer sayfanın alt kısmında DOM-başvuran komut eklerseniz, Hayır, $(document).ready gerekmez.

Açıklama:olmadanyardım "onload"ile ilgili uygulamalar gibi $(document).ready başparmak kuralı: herhangi bir kod bu etkileşim ile DOM öğeleri içinde sayfayı gerektiğini yerleştirileceği/dahil daha fazla sayfa daha elemanları başvuruyor. Yapılacak en kolay şey, kapanış 8 ** bu kodu daha önce yerleştirmektir. here here bkz. Ayrıca IE "Operation aborted" error korkunç civarında çalışıyor.

Bunu söyledikten sonra, hiçbir şekilde bu $(document).ready kullanımı geçersiz kılar. Yüklenmiş için önce bir nesne başvuran [biri] en yaygın hatalardan DOM JavaScript itibaren zaman (bunu pek çok kez şahit sayısı). Bu sorun için bir WordPress kullanmak çözüm olur ve bu script DOM öğelerine göreli olarak eklenecektir nereye başvurular hakkında düşünmeye gerek yok. Bu geliştiriciler için çok büyük bir kazanç. Sadece onlar hakkında düşünmek için bir daha az şey.

Ayrıca, genellikle zor ya da pratik sayfa (örneğin document.write çağrı konularda herhangi bir script koymak kalmak zorunda) altına DOM-başvuran tüm komut taşımak için. Diğer zamanlarda, bazı şablon oluşturur veya dahil edilmesi gereken, içinde başvurular fonksiyonları dinamik javascript, parçaları oluşturan bir çerçeve kullanıyoröncejs.

Son olarak, "en iyi" reçel için tüm DOM-başvuru well document reasons $(document).ready uygulamaları tarafından gölgede olmuştur ancak window.onload içine kodu. uygulama eskiden

Tüm bu başvuru DOM elemanlarının sorunu çok erken çok daha üstün, pratik ve genel bir çözüm olarak $(document).ready kadar ekler.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • MofoHifi Records

    MofoHifi Rec

    15 HAZİRAN 2006
  • Ricardo Cerqueira

    Ricardo Cerq

    28 Mayıs 2008
  • WK

    WK

    9 Ocak 2006