SORU
27 EYLÜL 2011, Salı


Nasıl JavaScript arka planda AJAX yanıtları ele?

JavaScript AJAX isteği yapıldıktan sonra tek bir iş parçacığı çalışır, beri, aslında arka planda ne oluyor ? JavaScript bir şekilde bir AJAX yanıt için yoklama mı ? Ve nasıl tek dişli ise böyle yapıyor ? İleri ve geri geçiş yapar mı ? readyState değişiklikler olduğunu biliyorum, ama bu daha derin bir anlayış almak istiyorum, herkes biraz ışık tutabilir ?

CEVAP
27 EYLÜL 2011, Salı


Yorganın altında, javascript bir olay sırası vardır. Her zaman yürütme javascript bir konu işlemeye sırada başka bir olay varsa görmek için kontrol eder ve bitiyor. Eğer varsa, sıra dışı çeker ve bu olay (örneğin bir fare tıklaması gibi) tetikler.

Ajax çağrısı altında yatan yerel kod ağ ajax yanıt bittiğinde bilecek bir olay javascript olay sırası eklenir. Ajax çağrısı yapıldığında bilir nasıl uygulanmasına bağlıdır. Konuları ile uygulanan olabilir ya da olayın kendisi (çok önemli değil) tahrik olabilir. Uygulama noktası ajax yanıt bittiğinde, bazı yerel kod yapıldığını biliyor ve JS kuyruğuna bir olay koyacağız.

Eğer Javascript anda çalışıyorsa, olay ajax yanıt işleyicisi çıkacak olan ve hemen harekete geçer. Eğer bir anda çalışıyorsa, o zaman olay yürütme geçerli javascript iş parçacığı sona erdiğinde işlenmiş. Javascript motoru tarafından herhangi bir yoklama olması gerekmez. Javascript bir parça yürütme tamamlandığında, JS motoru sadece sıra olayı eğer çalıştırmak için gereken başka bir şey olup olmadığını görmek için denetler. Eğer öyleyse, sıra dışı bir sonraki olay çıkıyor ve bu olay için kayıtlı bir veya daha fazla geri arama işlevleri arama) yürütür. Eğer hiçbir olay sırasındaki, sonra JS yorumlayıcısı bazı yabancı maddeler halinde başka bir sıraya koyar ve tekrar uyanana kadar serbest zaman (çöp toplama veya boşta).

Tüm olayların dışında olay sırası ve olay hiç javascript aslında başka bir şey çalışırken tetiklenir çünkü, tek dişli kalır.

İşte ayrıntılar üzerinde bazı makaleler:

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Michael Neal

    Michael Neal

    2 Mayıs 2009
  • RyanXLT

    RyanXLT

    22 Ocak 2011