SORU
25 Ocak 2012, ÇARŞAMBA


ve komut emri yük

Html sayfasında JavaScript dahil etmek için birçok farklı yolu vardır. Hakkında aşağıdaki seçenekleri biliyorum

  • kod satır içi veya dış URI yüklendi
  • < dahil;baş>veya <vücut>etiket [,*1*4]
  • , defer olan yok ya da async öznitelik (sadece harici komut dosyaları)
  • statik kaynağında bulunan veya dinamik olarak başka bir komut tarafından eklendi (farklı ayrıştırma Birleşik Devletleri, farklı yöntemler ile)

Harddisk, javascript:URI ve onEvent-öznitelikleri [3] browserscripts saymazsak, zaten 16 alternatifleri JS yürütülen var ve bir şey unuttum eminim.

Hızlı (paralel) yükleme ile o kadar ilgili değilim, icra emri, yükleme emri ve document order bağlı olabilir) merak ediyorum.Orada bir güzel(çapraz tarayıcı)gerçekten tüm davaları kapsayan bir başvuru?E. g. http://www.websiteoptimization.com/speed/tweak/defer/ sadece 6 ile ilgilenir, ve çoğunlukla eski tarayıcılar testleri.

Yok ben korku olarak, burada benim belirli bir soru: başlatma ve komut dosyası yüklemek için (dış) biraz kafa senaryolar var. Daha sonra vücudun sonunda iki statik, satır içi komut dosyaları var. Birincisi script loader dinamik vücut için başka bir komut öğesi (harici js başvuran) eklemek sağlar. Statik satır içi komut ikinci ilave, harici script js kullanmak istiyor. Diğer idam edilen güvenebilirsiniz (ve neden :-)?

CEVAP
25 Ocak 2012, ÇARŞAMBA


Eğer dinamik olarak komut yükleme ya da tecil veya zaman uyumsuz olarak sayar değilse, komut, sipariş sayfasında karşılaşılan yüklenir. Harici bir komut dosyası veya bir satır içi komut dosyası olsun farketmez - sayfa karşılaşılan sırayla yürütülür. Dış komut sonra gelen satır içi komut, onlardan önce gelen tüm dış komut yüklü ve çalıştırmak kadar tutulur.

Zaman uyumsuz komut dosyaları (zaman uyumsuz olarak belirtilen ne kadar olursa olsun) ve tahmin edilemez bir düzen içinde çalıştırmak yükleyin. Tarayıcı paralel olarak yükler ve istediği herhangi bir şekilde onları çalıştırmak için ücretsiz.

Birden çok zaman uyumsuz şeyler arasında tahmin edilebilir bir düzen var. Eğer bir tahmin edilebilir bir ihtiyaç varsa, o zaman uygun şeyler yüklendiğinde zaman uyumsuz komut yük bildirimleri için Kayıt ve elle javascript çağrılarını sıralama ile kodlanmış olmalı.

Script etiketi dinamik olarak eklendiğinde, yürütme sırasını nasıl davranacağını tarayıcı bağlıdır. Firefox this reference article nasıl davranacağını görebilirsiniz. Özetle, Firefox varsayılan yeni sürümleri dinamik olarak bir script etiketi aksi ayarlandı sürece uyumsuz script etiketi ekledi.

İşte o makaleden bir alıntı:

script eklenen komut dosyaları zaman uyumsuz olarak çalıştırmak IE ve Y, ama ve pre-4.0 Opera Firefox eşzamanlı olarak.

HTML5 spec (yeni uyumlu tarayıcılar için) ilgili Bölüm here. Çok uyumsuz davranışları hakkında orada yazılı. Belli ki, bu spec belirlemek için muhtemelen test etmesi gerekir davranışı olan eski tarayıcılar (veya mal-teyit tarayıcılar) için geçerli değildir.

HTML5 spec bir alıntı:

Sonra, durumu açıklayan aşağıdaki seçenekler ilk takip edilmelidir:

Eleman src özniteliği ve öğe erteleme bir özniteliği ve öğe olarak bayraklı, "ayrıştırıcı eklenen" ve eleman uyumsuz bir nitelik yok Öğe eklenmelidir belgeyi ne zaman çalıştırılacak komut listenin sonuna çözümleyici bu Belge ile ilişkili ayrıştırma tamamladı unsuru oluşturdu.

Ağ görev kaynak görev yerleri görev sonra sıra algoritma tamamlandı alma elemanı "hazır ayarlamanız gerekir çözümleyici-infaz" bayrak. Ayrıştırıcı komut dosyası yürütme idare edecektir.

Eleman src özniteliği ve öğe bayraklı, eğer "ayrıştırıcı eklenen" elementi uyumsuz bir nitelik yok Elemanın Belgenin ayrıştırma-engelleme bekleyen komut. elementi oluşturan ayrıştırıcı. (Sadece böyle olabilir bir anda Belge başına komut dosyası.)

Ağ görev kaynak görev yerleri görev sonra sıra algoritma tamamlandı alma elemanı "hazır ayarlamanız gerekir çözümleyici-infaz" bayrak. Ayrıştırıcı komut dosyası yürütme idare edecektir.

Eleman src özniteliği ve öğe varsa "ayrıştırıcı eklenen" HTML parser Belge ya da bayrak gibi Script öğesi oluşturulan XML ayrıştırıcı bir stil sayfasına sahip komut engellemeÖğe ayrıştırma-engelleme bekleyen komut. elementi oluşturan çözümleyici Belge. (Sadece orada bir anda Belge başına böyle bir betik.)

Eleman çözümleyici-infaz" bayrak. "hazır Set Ayrıştırıcı olacak komut çalıştırma kolu.

Eğer öğesinin src özniteliği varsa, zaman uyumsuz bir niteliği var,değil mi ve "kuvvet-zaman uyumsuz" bayrak . yoktur Öğe eklenmelidir için en kısa sürede çalıştırılacak komut listenin sonuna Olası senaryo elemanın Belge ile ilgili olarak zaman senaryoyu bir algoritma hazırlamak başladı.

Ağ görev kaynak görev yerleri görev sonra sıra algoritma tamamlandıktan getirme işlemini aşağıdaki adımları çalıştırmak gerekir:

Eğer eleman şimdi komut listesinde ilk öğe ise bu sırayla en kısa sürede eklendiği mümkün olduğu çalıştırır yukarıda,o zaman hazır olarak eleman işareti ama bu adımlar olmadan iptal betiğini henüz.

Yürütme: kod bloğu ilk komut için ilgili Yürütme öğe sırası olarak çalıştırılacak betikleri bu listede mümkün.

Çalıştırılacak komut bu listeden ilk elemanı çıkarın kısa sürede sipariş olarak.

Sırayla en kısa sürede çalıştırılacak komut listesi eğer hala ilk girdi olarak işaretlenir ve boş. hazır, sonra geri adım yürütme etiketli atlamak.

Eğer öğesinin src özniteliği varsaÖğe eklenmelidir en kısa sürede Belgenin çalıştırılacak komut kümesi script bir algoritma hazırlamak zamanda script öğesi başladı.

Ağ görev kaynak görev yerleri görev sonra sıra tamamladı getiriliyor algoritma komut yürütmek gerekir blok ve çalıştırılacak komut kümesinden eleman kaldırın en kısa zamanda.

Aksi takdirdeKullanıcı aracı hemen kod bloğu çalıştırmak gerekir eğer başka bir komut zaten yürütme bile.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Valdorsha

    Valdorsha

    8 Mayıs 2006
  • wafflepwn

    wafflepwn

    14 AĞUSTOS 2008
  • WK

    WK

    9 Ocak 2006