2013-04-10 12 views
13

Czy programy obsługi zdarzeń są wykonywane synchronicznie lub asynchronicznie w JavaScript? Oto JS bin, który pokazuje, że procedura obsługi zdarzeń jest wykonywana synchronicznie.Asynchroniczne lub synchroniczne wywoływanie procedur obsługi zdarzeń w javascript

Kod:

$('#toclick').bind('custom', function() { 
    for (var i=0; i<100000; i++) {} 
    console.log('Inside click handler'); 
}); 

$('#toclick').trigger('custom'); 
console.log('Outside click handler'); 

Output: 
Inside click handler 
Outside click handler 

Oznacza to, że jeśli mamy wyzwolić zdarzenie, kod poniżej nie zostanie wykonany, chyba że wszyscy obsługi zdarzeń są wykonywane. Czy mam rację ?

Bin with multiple event handlers

+2

wszystkie zdarzenia są synchroniczne. Możesz również zajrzeć do propagacji zdarzeń http://www.quirksmode.org/js/events_order.html – Ejaz

Odpowiedz

13

Zgadza się. Wszystkie programy obsługi zdarzeń są uruchamiane synchronicznie i w kolejności wiązania.

+0

Dzięki, dziwaczne! Właśnie się zdezorientowałem. Dzięki za wyjaśnienie. – sachinjain024

8

Niektóre programy obsługi zdarzeń są wykonywane synchronicznie, a inne asynchronicznie. Zobacz DOM-Level-3-Events

+2

Dzięki za przydatne informacje. Na marginesie, odradzam tylko odpowiedzi dotyczące linków. Spróbuj podać więcej informacji w odpowiedzi. W każdym razie dzięki!! – sachinjain024

Powiązane problemy