SORU
26 ŞUBAT 2010, Cuma


Zaman tarayıcı Javascript yürütmek mu? Nasıl yürütme imleci hareket eder?

Eğer bir tarayıcı imleç Javascript nasıl çalıştırdığını açıklayan mevcut herhangi bir kaynak olup olmadığını merak ediyordum.

Biliyorum yükler ve çalıştırır etiketlediğinde bir sayfa yükler, ve sen-ebilmek eklemek fonksiyonlar için çeşitli penceresi olaylar, ama nereye herşeyin bulanık olduğu zaman, örneğin, ben almak bir uzaktan sayfası üzerinden AJAX ve içeriğini bir div.

Eğer uzak sayfa "yükleniyor ve içeriğini idam ediliyor?" anotherscript.js <script src="anotherscript.js" /> gibi bir komut dosyası kitaplıkları yüklemek için varsa

Eğer "geçerli sayfamda, sonra yükü biraz uzak içeriği olan bu komut vardır yinelenen vardır?" anotherscript.js ben dahil ne olur Orijinal dosyanın üzerine yazmak mı? Ne orijinal "eğer" ben değişmiş olan bir var vardır, ve sonra o dosya... özgün değer kaybeder ya da bu senaryodan dahil sayılır mı? yükler yüklemez anotherscript.js

Ben AJAX kullanarak bazı usul Javascript yükle, ne zaman çalıştırılır? Hemen 2 ** ... sonra mı? Ya da ondan önce yürütülür?

CEVAP
26 ŞUBAT 2010, Cuma


Cevap script etiketinin bulunduğu ve eklediğiniz nasıl bağlı olarak değişir:

  1. Script etiketleri ile satır içi biçimlendirme yürütüldüğü eşzamanlı olarak ile tarayıcının işleme biçimlendirme dışında (bkz: #2), ve eğer öyleyse -- mesela -- bu etiketlerin dış referans dosyaları, eğilim yavaş işlem sayfası. (Bu tarayıcı inceliyorlar biçimlendirme değiştirmek document.write ifadeler işleyebilir.)

  2. defer öznitelik ile komut dosyası etiketleri, bazı tarayıcılarda DOM tam olarak işlenmiş kadar sonra idam olmayabilir. Doğal olarak bu document.write kullanamazsınız. (Komut asenkron yapan async bir niteliği var, ama bu konuda çok fazla ya da; details. desteklenen nasıl bilmiyorum aynı şekilde)

  3. Script etiketleri içerik atamak unsurlar sonra DOM load () innerHTML ve benzer) değildir idam, kısıtlama kullanımı bir kütüphane gibi bir WordPress kullanmak veya Prototip için.YANİ, eğer defer bir öznitelik varsa, onları çalıştırır. (tek istisna Andy E dikkat çekti: Diğer tarayıcılarda çalışmıyor.)

  4. Element#appendChild üzerinden belge script gerçek bir öğe eklemek eğer tarayıcı hemen senaryoyu indirme işlemi başlar ve yükleme tamamlandı olarak yürütülür. Komut bu şekilde eş zamanlı veya sırayla yürütülmez ekledi. İlk <script type="text/javascript" src="MyFct.js"></script>, ekleme ve daha sonra <script type="text/javascript">myFunction();</script> ekleme Evet satır içi (ikinci) yürütme (ilk) uzak bir önce. Olur ve MyFct.js myFunction(), bildirirse satır içi komut ile kullanmaya çalıştığımızda tanımlı olmayacaktır. Eğer ihtiyacınız işlerin yapılması amacıyla, belli bir uzak komut oldu dolu tarafından bakıyor load readyStateChange olaylar script Öğe Ekle (load olay birçok tarayıcı, readyStateChange bazı sürümleri IE ve bazı tarayıcılarda her ikisi de, yani, idare çoklu bildirimler için aynı komut dosyası).

  5. Script etiketi öznitelikleri olay işleyicileri (<a href='#' onclick='myNiftyJavaScript();'>) içinde yerine Script ilgili olay gerçekleştiğinde yürütülür.


"Biliyorsun, yaşadın . benim asıl İşim uzakta ve benim arka beyin dedi birden çalışıyordum ^em>söylediinnerHTML, onları atarsınız ama şahsen kontrol varsa idam olmayacaklar mı?" Ve -- FWIW, ben de öyle yaptım, ben olsaydım:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-type" content="text/html;charset=UTF-8">
<title>Script Test Page</title>
<style type='text/css'>
body {
    font-family: sans-serif;
}
</style>
<script type='text/javascript'>
function addScript()
{
    var str, div;

    div = document.getElementById('target');
    str = "Content added<"   "script type='text/javascript'>alert('hi there')<"   "/"   "script>";
    alert("About to add:"   str);
    div.innerHTML = str;
    alert("Done adding script");
}
</script>
</head>
<body><div>
<input type='button' value='Go' onclick='addScript();'>
<div id='target'></div>
</div></body>
</html>

Komut dosyası uyarısı 7, FF3 görünmüyor.6 veya Chrome4 (başkalarını kontrol etmeye zahmet etmedim, çalışıyor olmam gerekiyordu :-) ). here aşağıda gösterildiği gibi öğeleri ekleme ise eğer senaryoyu infaz ediliyor.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ETrade Supply

    ETrade Suppl

    23 Temmuz 2011
  • Philip DeFranco

    Philip DeFra

    16 EYLÜL 2006
  • Vsauce

    Vsauce

    30 Temmuz 2007