2011-08-11 19 views
14

Ajax yanıtı aldığım her seferinde bir sayacı arttırmak istiyorum. JavaScript eşzamanlı olayları ile eşzamanlılık modeli hakkında bilmiyorum. Düşüncesi olan var mı ?JavaScript'te atomik işlemler nasıl yapılır (Concurrency modeli)?

+0

Açıklamalara bakın [başka bir konuya verilen cevapta] (http://stackoverflow.com/questions/6944748/is-there-an-ie-render-complete-event/6987573#6987573). Esasen, tüm betikler yürütme için sıraya dizilmiş ve aynı anda 2 betik çalışmayacak. Bir komut dosyası yürütülürse, yeni tetiklenen komut dosyaları (kullanıcının neden olduğu olaylar veya AJAX istekleri tarafından tetiklenir) sıraya konur. Dolayısıyla, eşzamanlılık olmadığı için JavaScript'de eşzamanlılık sorunları yoktur. –

+2

İki komut dosyasının aynı anda yürütmesiyle ne demek istiyorsun? Tam olarak, senin açıklamasında bir senaryo birimi olarak ne sayılır? – smartnut007

+0

"Komut dosyası" ile kastedilen, verilen tüm JavaScript’in belirli bir olayla ilgili yanıtının tamamı olmalıdır. – Shavais

cevap

17

Bir tarayıcıda, bir seferde yalnızca bir tane javascript iş parçacığı çalışır.

Eşzamanlılık sorunları, ajax yanıtı beklemede iken, javascript ilişkisiz bir olaya yanıt olarak çalıştırılabilir. Fakat ajax çağrısından önce atomik olması amaçlanan bir operasyonu başlatmadıysanız ve yanıt işleyicide bitirdiğinizde güvende olursunuz.

+1

Evet. Her olay atomik olarak ele alınır. – JGWeissman

İlgili konular