AJAX ve WebSocket Farkları
Web sayfası geliştirenlerin aşina olduğu 2 farklı sistemi tanıtmak istiyoruz. AJAX ve WebSocket, popüler 2 altyapı olmakta.
Web sayfası kodlarken bir sayfanın statik olması, bazı problemlere yol açar. Dinamiklik, büyük bir nimettir. Eğer sayfa statik olursa bu durum, gecikmeyi arttırır ve performans açısından siteye ek yük bindirir. Eğer sayfa dinamik olur ise belirli bir kısım güncellendiğinde daha az veri yükleneceği için sistemi daha az yorar. Özellikle büyük kullanıcı kitlesine hitap edenler için bu, oldukça önemli bir fayda sağlar. AJAX ve WebSocket, dinamik web sayfası geliştirmek için harika bir teknik.
AJAX ve WebSocket
AJAX
AJAX, 1999 yılının Mart ayında kullanıma açılan JavaScript tabanlı bir sistem. Bu sistemin amacı, web sayfasını yeniden yüklemeden diğer sayfalar üzerinden veri alışverişi sağlamak. XML dosyasından veri çekmeyi destekleyen AJAX, aynı zamanda PHP sayfalarıyla da iletişim kurarak arka planda iş yapabiliyor.
AJAX’ın temel amacı sayfa içerisindeyken güncelleme yapabilmek. Şöyle bir örnekle açıklayalım. Form etiketi içerisine POST veya GET metodu ile çalışan bir kod eklediniz. Bu veri, bir sayfaya yönlendirme yapacak. Form çalıştığında yeni sayfa açılır. AJAX kullanıldığında ise aynı sayfa üzerinde belirlenen sayfa arka planda çalışır.
AJAX, pek çok alanda kullanılıyor. Örneğin sohbet sistemlerinde kendine yer veriyor. Sohbet eden kullanıcılar, sayfa yenilenmeden güncel mesajlara ulaşabiliyor. Bunun yanı sıra bir paylaşıma yorum gönderirken veya bazı online oyunlarda da bu sisteme rastlanıyor.
WebSocket
WebSocket, AJAX yapısına göre biraz daha avantajlı fakat daha karmaşık kullanımı olan bir sistem sunuyor. Pratiklik açısından AJAX önerilir fakat performans gerektiren işler için WebSocket gerekir. Çünkü WebSocket, ayrı bir sunucu üzerinde çalışsa da daha kaliteli bir yapıya yer veriyor. Özellikle veri gönderiminin hızlı olması gerektiği alanlarda WebSocket tavsiye ediliyor.
WebSocket, AJAX’a göre daha yeni bir yapı. 2000’li yıllardan sonra geliştirildi. Amacı, web sayfasındayken veya bir uygulamadayken aktif bir bağlantı oluşturmak. Her kullanıcı için sunucuda ayrı bir bağlantı kurulur. Bağlantıların açık kalması, daha hızlı iletişim sağlar. AJAX, bağlantıyı açıp veri alışverişi sağlar ve işlem bitince kapatır. WebSocket, bir sunucuya girer gibi bağlanır ve sürekli veri alışverişi yaşanır. Yani bağlantı istenmedikçe sonlanmaz.
WebSocket, birkaç fonksiyona yer veriyor. Bunlardan birisi sunucu kurma. Sunucu, istenilen portta kurulabiliyor. Bir diğer fonksiyon sunucuya bağlanma. Kullanıcı, sunucuya bu fonksiyon ile bağlanıyor. Bunun yanı sıra veri iletişimi için de fonksiyonlar bulunuyor. Bunlar tek kullanıcıya veri gönderme, tüm kullanıcılara veri gönderme veya mesaj alma gibi fonksiyonlar. AJAX ve WebSocket arasındaki en önemli fark da bu olmakta.
WebSocket, daha çok hızlı veri alışverişi gereken alanlarda kullanılır. İnternet üzerinden oynanan online oyunlarda bu sistem ile karşılaşılır. Örnek olarak saniyede birkaç kez paket gönderimi yapan oyunlar için WebSocket, daha avantajlı bir yapı.