Monday, February 15, 2016

AJAX (Asynchronous JavaScript and XML) 2

Daha önce AJAX isteklerinin nasıl işlendiğini incelemiştim. Bu yazıda da AJAX isteklerinin asenkron olmasından bahsetmek yararlı olacaktır.  Klasik istek işleme yönteminde aşağıdaki görüntüde de görülebileceği gibi istemci üzerinden bir tetiklemeyle sunucuya istek gönderilmekte ve sunucu tarafından bu istek işlendikten sonra geriye dönen sayfa üzerinden kullanıcı işlemlerine devam edebilmektedir. Arada geçen zaman diliminde kullanıcı aktivitesi kesilmektedir.




Klasik yönteme karşı AJAX fikri kullanıcı etkileşimini kesintiye uğratmadan işlemlerin devamlılığını sağlayan bir mimari ortaya koyar. Bu durumda yapılan istekler esnasında kullanıcı başka etkileşimlerde bulunabilmekte, böylece kullanıcı uygulama ile etkileşimine kesintisiz devam edebilmektedir. Bu duruma göre AJAX ile aynı anda birden fazla istek yapılabilmektedir.





Asenkron etkileşimin etkilerini kod üzerinden incelemek gerekirse daha önce w3schools'da yer alan örneği aşağıdaki gibi değiştirip sonuçlarını gözlemleyelim.





Yukarıda yer alan kod bloğu çalıştırıldığında aşağıdaki sonuçlar gözlemlenecektir:

Function Executing
AJAX Request Starting
Function Executed
AJAX Request Ended

Görüldüğü üzere AJAX istekleri ana iş ipliğini (Thread) çalışmasını engellememektedir. AJAX işlemindeki geçikme nedeniyle öncelikle fonksiyonun çalışması bitirilmekte ve sonra AJAX işleminin sonucu gecikmeyle elde edilmektedir.


No comments:

Post a Comment