2012-10-09 13 views
5

mdnJavascript [defer] özniteliği ve document.ready?

en defer özelliği hakkında okuduktan sonra bu Boole özellik komut belge çözümlenen sonra yürütülecek içindir tarayıcıya belirtmek için ayarlanır.

Güzel görünüyor.

yüzden daima $(function() { }); ve $(window).load(...)

<script> 
$(function() 
{ 
    alert('1') 
}); 
$(window).load(function() 
{ 
    alert('2') 
}); 
</script> 

<script defer="defer"> 
    alert('4'); 
</script> 

Bu kod çıkış 4,1,2 karşı tested ettik!

Tamam Şimdi belgenin ayrıştırıldığı zamanı tanıyabiliyorum.

document.ready (parse time complete (tamamlanma süresi tamamlandı)) öncesinde numaralı sahneye ne kadar gereksinim duymalıyım? fiili kullanım Hâlâ en komut olabilir olurdu src özelliğini

yok MDN

erteleme nitelik komut üzerine kullanılmamalıdır itibaren

+5

@downvoter lütfen açıklayınız. –

+1

Önemli bir uyarı: '' Bu özellik henüz tüm diğer büyük tarayıcılar tarafından kullanılmadığından, yazarlar betiğin yürütülmesinin gerçekten erteleneceğini varsaymamalıdırlar. '' – jbabey

+1

Bildiğim kadarıyla Jbabey yah. ama lütfen dikkat edin - bu ** tüm ** ana brwser'de uygulanacaktır. Bu yüzden onun davranışı hakkında öğrenmeye değer :-) –

cevap

3

Sayfanın üst kısmı ve tüm sayfa tamamlandıktan sonra tarayıcıyı yükler. YSlow

ERTELEME nitelik itibaren

W3 HTML spec

+0

öyleyse neden onları dibe oturtmuyorsunuz? fark ne ? –

+0

@RoyiNamir, bazı şablon sistemleri/CMS'ler için JavaScript yazan kişi HTML şablonuna erişemez. Ek olarak, ve 'da kalması halinde meta verilerinin düzenlenmesini basitleştirir. – zzzzBov

1

kontrol dışarı render onlar devam edebilir tarayıcılara bir ipucu komut document.write içermediğini gösterir ve geçerli:

Async ve erteleme öznitelikleri, boole öznitelikleridir betiğin nasıl yürütüleceğini belirtin. Src özniteliği yoksa erteleme ve async öznitelikleri belirtilmemelidir.

Yani, bu özellik harici komut dosyaları için geçerlidir.

+0

evet. iyi bir nokta. Uyarı komutunu içeren bir js dosyasına başvurabilirim. sadece numune içindi. ve tabii ki haklısın! –

+0

Evet, gerçekten davranışı test etmek için bunu yapmalısınız. – Bergi