ajax

1 /
cyberboy cyberboy
asynchronous javascript and xml javascript

bu nasıl hayvanca bir isim dediğinizi duyar gibiyim (ya da duyuyor gibi yapıyorum).

artık hiç bir şey eskisi gibi olmayacak, çünkü internet sitesi tarihi ajax öncesi ve sonrası olarak ikiye ayrılıyor.

html idi yaratılan, sunucu taraflı scriptler icat edildi, cgi php asp derken asp.net ile artık web bir program haline gelmişti. yavaş yavaş program haline gelmekteydi internet siteleri. bu nereye varacaktı? program haline getirmek iyi güzel de, ya bandwith gideri?

google suggest internetin kaderini değiştirdi. arama bölümüne yazılan şeylerin postback edilmeden hemen sonucunun gösterilmesi ile yepyeni bir dönem başladı: ajax. bir teknoloji değildi bu. xmlhttprequest + javascript gibi birşey idi.

ajax'ın yaptığı şey basit: herhangi bir request'i sayfa refresh edilmeden icra edip sonucunu ekrana basmak.

neler yapıldı bunla derseniz anlaşılması açısından: google suggest, google maps, start com gibi son zamanlara damga vuran/vuracak siteler.

internette onlarca kaynak bulunabilir bu konuda en güzeli ise şu adresi tavsiye edebilirim:
ajax (programming) wikipedia
wondrous wondrous
ajax, ehil olmayan ellerde tehlikeye dönüşebilen bir web teknolojisidir. bir kaç dikkat edilecek noktayı hemen sayalım:

- ajax ajax diye olmadık yerleri ajax ile geliştirmeyin. kullanacaksanız gmail gibi muhteşem şekilde kullanın, rezil olmayın.

- ajax bir web kullanıcısının en çok kullandığı butonlardan biri olan back butonunu disable eder. zira uygulamanız rasında gezinirken herhangi bir url değişikliği olmayacağı için back forward gibi navigasyon tuşları etkisiz kılacaktır. buna alternatif bir yöntem geliştirmeyi düşünebilirsiniz.

- bir ajax uygulamasında kullanıcı bir yere tıkladığında normal şartlarda herhangi bir değişiklik gözükmeyecek, ancak arka plandaki http request işini tamamladığında gerekli değişiklik yapılacaktır. bu aşamada ziyaretçiye bir şeylerin işlem halinda olduğunu göstermelisiniz. eğer bu yapılmazsa, aynı yere 15 kez tıklayan dummy user'larla muhatap olursunuz, canınız sıkılır.

- hayvani data alışverişleri yapmayın. ziyaretçi beklemeyi sevmez, ajax'ın en büyük avantajıysa bekleme süresini azaltmaktır. buna göre optimizasyonlarınızı gerçekleştirin.

- ajax uygulamanızı bazı browser'lar doğru şekilde göstermek istemeyeceklerdir. bunlara karşı gereken önlemi alın. "become formless and shapeless like water. when water is poured into a cup, it becomes the cup. when water is poured into a teapot, it becomes the teapot. be water, my friend" - jackie chan

- hayvani client side kodlar ziyaretçiniz üzerinde kötü etki bırakır, zira sistem kaynağı yer. celeron'la cirit atan faniler olduğunu unutmayın.

- ajax'la içerik yönetimi yapıyorsanız yapmayın. insanlar arkadaşlarına göndermek için linkler ararlar, ajax'ta bu yoktur.

- geldik en önemlisine: arama motorları ajax uygulamalarını tarayamaz. bunun için ajax'ı sadece kayıtlı kullanıcıların gördüğü interaktif şeylerle kullanın.
gibigibi gibigibi
ajax, yeni bir web teknolojisi veya programlama dili değildir. ajax, bir yönelim(yöntem)dir. basit bir örnekle açıklarsak;

online bir ingilizce - türkçe sözlük yaptığımızı varsayalım. kullanıcı her harfe bastığında alttaki kelimeler bastığı harfe göre şekillenecek. (bkz:moonstar). bunu normalde iki şekilde yapabiliriz.

1) tüm sözlük veritabanını istemci tarafında bir diziye doldururuz ve sonrasında javascript ile bu diziden ilgili kelimeleri çekeriz. bu verilerin sunucudan alınmasında, istemciye iletilmesinde ve istemcide işlenmesinde büyük sorunlar yaratır.

2) kullanıcı bir harf girdiğide bu harf alınıp sunucuya gönderilir ve sunucudan bu harf ile başlayan kelimeler çağırılır. bu yeni bir http isteği demektir. sunucudaki yoğunluğa göre hızı değişebilir ve yine yavaştır. tüm web sitesi tekrar derlenir, tekrar çağırılır.

ajax ise bu örneğe mükemmel bir çözümdür. 2. örnekteki gibi http isteği yollanacaktır fakat sadece çağırılmak istenen bölüm için. yani tüm site yeniden çağırılmaz. bu basit örnekte bile büyük performans artışı sağladığı görülüyor. daha komplike sistemlerde daha verimli olarak kullanılabilir.
(bkz: google suggest) (bkz: google earth)
wondrous wondrous
gelinen noktada ajax tabanlı bir web 2.0 uygulaması geliştirmek için kimse oturup da xmlhttprequest'lerle uğraşmamaya başlamış durumda. halihazırda birçok platform için hazırlanmış ajax framework'lerle dakikalarla ölçülebilecek sürelerde ajax uygulamaları yaratmak olası hale geldi. bunlardan benim de yakınen içli dışlı olduğum bir tanesi için: (bkz: xajax)

ki, kanımca hala en yetkin ajax uygulamalarını geliştiren google bile uygulamalarını java'yla yazıp kendi geliştirdikleri bir framework ile web ortamına aktarıyorlar. bu framework'lerini de geçenlerde halka açtılar. onun içinse: (bkz: google web toolkit)
ben cocugum deyip camdan atlayan pokemon ben cocugum deyip camdan atlayan pokemon
açılımı asynchronous javascript and xml javascript olan xmlhttprequest nesnesi yardımıyla http iletişimi kurmaya dayanan bir javascript tekniğidir (pek eski sayılmaz, zira xmlhttp nesnesi uzun zamandır bulunmasına rağmen javascript içinden her tarayıcıda adam gibi çalışacak kodlarla efektler koymayı düşünen yoktu - 28k ile kim ne yapsın ajax'ı hem). sürüyle php sınıfı, js nesnesi, kıl tüy fonksiyonu bulunmasına rağmen tüm işlemler salt javascript ile yapılırsa hata yönetiminin ve kalite de artacaktır. an itibariyle tamamen ajax ile geliştirilmiş web sitelerinin de diğerlerinden herhangi bir eksik gediğe sahip olmaması için bazı teknikler geliştirilmiştir (örn. query string'ten gelen veriyi parçalayacak bir init sisteminin hazırlanması, dinamik içerikli web sitelerinde web programlama dili içerisinden yapılacak bir yönlendirme).

tabi bir de (bkz: spry)
wondrous wondrous
asp.net framework'unu inceledim: aferin m$'ci çocuklar çok pratik yapmışlar. developer beş dakikada yalnızca iki satır kod yazarak bir butona basınca bir label'a text yazılmasını sağlayabiliyor.

ama sırf bunun için 30 kb js dosyası mı olur it sıpaları?
1 /