İçeriğe atla

AJAX (programlama)

AJAX (İngilizce: Asynchronous JavaScript and XML, Türkçe: Eşzamansız JavaScript ve XML), İnternet sayfalarında JavaScript ve XMLHttpRequest kullanımı ile etkileşimli uygulamalar yaratan tekniğin adıdır.

Nasıl okunması gerektiği konusunda bir genel uzlaşma olmamakla birlikte çoğunlukla yazıldığı gibi ajaks olarak okunurken, kimileri tarafından aynı yazımlı ismiyle futbol takımı örnek gösterilerek ayaks olarak okunmaktadır. İngilizcede ey-ceks olarak okunur.

En yaygın kullanım alanı, sayfayı yeniden yüklemeye gerek kalmaksızın, sayfada görünür değişiklikler yapmaktır. XMLHttpRequest kullanılarak birden fazla bağımsız işlem yapılabilir. Bazı bilişim uzmanları, AJAX'ın HTML ve XML'den sonra en yenilikçi İnternet yazılımı olduğunu ve Web 2.0.'ı sonlandırıp, 3. evrenin kapısını açtığını öne sürmüşlerdir.

Asynchronous JavaScript and XML sözcüklerinin kısaltması olan Ajax, etkileşimli (interaktif) web uygulamaları yaratmak için kullanılan bir web programlama tekniğidir. Temel amacı arka planda sunucuyla ufak miktarda veri değişimi sayesinde sayfayı daha hızlı güncelleyebilen web sayfaları yapmak, dolayısıyla kullanıcının istediği her anda bütün web sayfasını güncellemek derdinden kurtulmaktır. Bu da web sayfasının etkileşimini, hızını ve kullanılabilirliğini artırmak demektir.

Ajax tekniği aşağıdaki teknolojileri kullanır:

  • Bilgiyi biçimlendirmek ve görüntüsünü değiştirmek için XHTML (ya da HTML) ve CSS.
  • Görüntülenecek bilgiyi dinamik olarak göstermek ve onunla etkileşimli çalışmak için özellikle JavaScript ve JScript gibi ECMAScript olan kullanıcı tarafındaki bir betik dili (İngilizce: scripting) yardımıyla erişilebilen DOM.
  • Web sunucusu ile bilgi değiş tokuşunda kullanılan XMLHttpRequest objesi. Bazı Ajax frameworklerde ve bazı durumlarda web sunucusuyla bilgi alışverişi için XMLHttpRequest yerine iframe de kullanılır; diğer uygulamalarda ise dinamik olarak eklenen JavaScript etiketleri (İngilizce: tag) de kullanılabilir.
  • Kullanıcıyla sunucu arasındaki bilgi alışverişlerinde genelde XML formatı kullanılır. Önceden hazırlanmış HTML, düz metin (İngilizce: plain text), JSON ve hatta EBML dahi olmak üzere herhangi bir format da kullanılabilir. Bu tip dosyalar sunucu tarafında herhangi bir script (PHP, ASP vs.) ile bile üretilmiş olabilir.
  • DHTML, LAMP ve SPA gibilerin aksine Ajax kendi başına bir teknoloji değildir, ancak terim birçok teknolojinin bir bütün olarak kullanıldığını ifade eder.

Tarihsel bilgi

Hazırdaki bir web sayfasına, tamamen yeniden yüklemeden asenkron (eş zamanlı olmayan) içerik ilave etme teknikleri 1996'da Internet Explorer'la birlikte gelen iframe ve 1997'de Netscape (Mozilla'nın ilk dönemlerinde geliştirilmesi durdurulmuştur) ile gün yüzüne çıkan layer öğesi kadar eskidir. Her iki öğe de herhangi bir harici URL'yi alarak esas sayfayı değiştirebilen src özniteliğine sahipti. Sonraları, tarayıcı tarafında çalışan bu teknolojiler DHTML adı altında anılmaya başladı. Macromedia firmasının Flash uygulaması da 4. sürümünden itibaren XML ve CSV formatındaki dosyaları sayfa yenilemeye gerek kalmaksızın uzak sunucudan yükleme özelliğini bulunduruyordu.

Microsoft's Remote Scripting (or MSRS, introduced in 1998) acted as a more elegant replacement for these techniques, with data being pulled in by a Java applet with which the client side could communicate using JavaScript.. This technique worked on both Internet Explorer version 4 and Netscape Navigator version 4 onwards. Microsoft then created the XMLHttpRequest object in Internet Explorer version 5 and first took advantage of these techniques using XMLHttpRequest in Outlook Web supplied with the Microsoft Exchange Server 2000 release.

The Web development community, first collaborating via the microsoft.public.scripting.remote newsgroup and later through blog aggregation, subsequently developed a range of techniques for remote scripting in order to enable consistent results across different browsers. In 2002, a user-community modification[1] to Microsoft Remote Scripting was made to replace the Java applet with XMLHttpRequest.

Remote Scripting Frameworks such as ARSCIF[2] surfaced in 2003 not long before Microsoft introduced Callbacks in ASP.NET.[3]

In addition, the World Wide Web Consortium has several Recommendations that also allow for dynamic communication between a server and user agent, though few of them are well supported. These would include:

Avantajları ve dezavantajları

Bant genişliğini ayarlamak;

HTML'yi ağ tarayıcısı (browser) programında oluştururken, JavaScript işlemlerini ve işlenecek verileri kullanırken, sunucudan gelen sayfa bilgisi gerektiğinden daha az yer tuttuğundan dolayı AJAX web sayfalarının görece olarak daha hızlı yüklendiği gözlenebilir.

İçeriğin “isteğe bağlı olarak yüklenmesine” ek olarak, bazı web uygulamaları ilk önce Olay Yöneticilerini (event handler), ardından ilgili fonksiyonları indirir. Bu teknik, karmaşık mekanizması ve fonksiyonu olan web uygulamalarının gereksinim duyduğu yüksek miktarda bant genişliği tüketimini önemli ölçüde hafifletir.

Erişilebilirlik

Web uygulamalarında Ajax teknolojilerini kullanmak, Bilgisayar Erişilebilirliği konusunda araçlar geliştiren tasarımcılar için birçok sorunu beraberinde getirmektedir. Buna ek olarak Section 508 gibi Amerikan Uyum Standartlarına sıkı bir şekilde uyulması gerektiği ABD devlet destekli birçok geliştirme projeleri bulunmaktadır. Bu standartlara uyulmaması, bazı durumlarda bilgisayar uyumluluğuyla ilgili birçok iş anlaşmalarının iptaline ve hukuki problemlerin doğmasına neden olmaktadır.

Bu yüzden Ajax'la yapılmış çözümlerin büyük bir kısmı grafik tabanlı tarayıcılara hitap ettiğinden dolayı, geliştiriciler başka platform ve tarayıcı kullanıcılarının da gereksinimlerini karşılamak zorundadır.

Ajax ile web programlama

Web tasarımcıları, web tarayıcısının bütün sayfayı renderlemesine gerek kalmaksızın veri işlemeye olanak tanındığı durumlarda bazen web sayfasının sadece belli kısımları için Ajax'ı kullanabilir. Ajax kullanamayanlar ise bütün bir sayfayı yenilemeye ve yüklemeye devam edebilmeli; geliştiriciler ise Ajax'ı destekleyen tarayıcılarla daha teknik olanaklar sunsa da -bütün erişilebilirlik konuları dahil olmak üzere- Ajax içermeyen ortamlardaki kullanıcıların yeteneklerini kısıtlamamalıdır.

Ajax Nerede Kullanılır

Ajax hemen hemen web'de birçok şey için kullanılır. Bunun bir örneği ise Google Maps. Kullanıcı sayfadakı haritaya tıklayıp resmi çektiği an, bütün sayfa yeniden yüklenmeden bilgi anında gösterilir. Bütün bunlar Ajax'ın senkron özelliği tarafından yapılmaktadır. Ajax aynı zamanda Gmail'de de kullanılmaktadır. Bilginin yüklenmesi için sayfanın tamamının yeniden yüklenmesi gerekmemektedir. Yeni posta geldiğinde, hemen otomatık olarak gelen kutusuna eklenir. Bu kullanıcının yenileme düğmesine sürekli olarak tıklaması ihtiyacını önler. Google Translate'de de Ajax kullanmaktadır. Kullanıcılar bir yazıyı bir dilden başka bir dile tercüme etmek için yazmaya başladıkları zaman, Ajax hemen diğer dildeki anlamı aynı sayfada gösterir.

Kaynakça

  1. ^ "HTTPRequest-enabled RS". microsoft.public.scripting.remote newsgroup. 18 Haziran 2002. 29 Mayıs 2010 tarihinde kaynağından arşivlendi. Erişim tarihi: 1 Ağustos 2006. 
  2. ^ "ARSCIF: A Framework for Asynchronous Remote–Script Callback Invocation". Sebastiano Vigna. 6 Eylül 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 1 Ağustos 2006. 
  3. ^ "Cutting Edge: Script Callbacks in ASP.NET". MSDN Magazine. 8 Ağustos 2004. 4 Aralık 2008 tarihinde kaynağından arşivlendi. Erişim tarihi: 1 Ağustos 2006. 

Ayrıca bakınız

  • Ajax framework
  • Comet (programlama)
  • HTTP streaming
  • Progressive enhancement
  • Reverse Ajax
  • Rich Internet application
  • Single usage application
  • Web 2.0
  • XMLHttpRequest

Örnekler

Dış bağlantılar

AJAX kütüphaneleri

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">JavaScript</span> programlama dili

JavaScript, HTML ve CSS ile birlikte World Wide Web'in temel teknolojilerinden biri olan programlama dilidir. Web sitelerinin %97'sinden fazlası, web sayfası hareketleri için istemci tarafında JavaScript kullanırlar ve kullanılan kodlar genellikle üçüncü taraf kitaplıkları içerir. Tüm büyük web tarayıcılarında, kaynak kodunu kullanıcıların cihazlarında yürütebilmek için özel bir JavaScript motoru bulunur.

<span class="mw-page-title-main">ASP</span>

Active Server Pages kısaca ASP, Microsoft'un ilk dinamik web sayfaları üretmek için geliştirdiği sunucu taraflı betik motoru. Klasik ASP ya da ASP Klasik olarak da bilinir.

Webmaster, web sitesi geliştiren kişi anlamında kullanılan bir terimdir. İngilizcedeki master kelimesi bu terimde uzman anlamında kullanılmaktadır. Webmaster'lar, yazılım, grafik, animasyon, sunucu taraflı işlemler vb görevlerde uzman olan kişilerin oluşturduğu ekipte koordinasyon sağlama görevi alabilirler.

<span class="mw-page-title-main">XMLHttpRequest</span>

XMLHttpRequest (XHR), aslında JavaScript ile sunulmuş bir UPA'dır. Web sitesinin eş zamanlı olarak arka planda çalışan olaylarını takip eder. XML CSS ve JavaScript ile sonucun anında görülmesini sağlar.

<span class="mw-page-title-main">Web sayfası</span> World Wide Web ve web tarayıcıları aracılığıyla doğrudan görüntülenebilen tek belge

Web sayfası, World Wide Web için hazırlanan ve web tarayıcısı kullanılarak görüntülenebilen dokümanlardır. Web sayfaları çoğunlukla HTML formatında kodlanır, CSS, betik, görsel ve diğer yardımcı kaynaklardan yararlanılarak son görünümüne sahip olur ve işlevsellik kazanır. Birden fazla web sayfasının bir araya gelmesi ile ortaya çıkan web sitesi ile karıştırılmamalıdır. Günlük konuşma dilinde internet sayfası terimi de çoğunlukla web sitesi anlamında kullanılmaktadır.

ASP.NET, Microsoft tarafından geliştirilmiş olan bir açık kaynak Web uygulama gelişimi teknolojisidir. Dinamik Web sayfaları, Web uygulamaları ve XML tabanlı Web hizmetleri geliştirilmesine olanak sağlar. Aynı işletme tarafından geliştirilen .NET çatısı'nın yazılım iskeleti parçası ve artık işletmece desteklenmeyen ASP teknolojisinin devamını teşkil etmiştir.

<span class="mw-page-title-main">Web 2.0</span>

Web 2.0, O'Reilly Media tarafından 2004'te kullanılmaya başlayan bir sözcüktür ve ikinci nesil internet hizmetlerini - toplumsal iletişim sitelerini, vikileri, iletişim araçlarını, folksonomileri- yani internet kullanıcılarının ortaklaşa ve paylaşarak yarattığı sistemi tanımlar. Kelimenin tam anlamı tartışmaya açıktır, Tim Berners-Lee gibi teknoloji uzmanları da kelimenin manasını sorgulamıştır.

<span class="mw-page-title-main">İnternet sitesi</span> tek bir web alanından sunulan ilgili web sayfaları kümesi

Web sitesi, Ortak bir alan adı ile tanımlanan ve en az bir web sunucusunda yayınlanan web sayfaları ve ilgili içeriklerden oluşan bir koleksiyondur. Web üzerindeki sayfalar; metin, görsel ve animasyon şeklinde ziyaretçisine bilgi aktaran veya hizmet sunan sayfaların tümünü kapsayan bir doküman topluluğudur. Ziyaretçiler bir web sitesine, HTTP veya HTTPS protokollerinde aşağıdaki bileşenlerden oluşan benzersiz bir adresi kullanarak erişirler:

Web yazılımları, Web sitelerinin temelini oluşturan HTML işaretleme diline özellikler katmak için kullanılan yazılımlardır. Bu yazılımlar sayesinde web siteleri bir kişinin düzenlemesine ihtiyaç duyulmadan kendisini otomatik güncelleyebilir. Buna örnek vermek gerekirse bir web sitesindeki RSS beslemeleri gösterilebilir. Birçok web sitesinin RSS beslemesi kendisini otomatik günceller.

<span class="mw-page-title-main">Adobe Flex</span>

Adobe Flex, çapraz platform tabanlı zengin İnternet uygulamalarının Adobe Flash platformu üzerinde geliştirilmesi ve dağıtılması amacıyla Adobe Systems tarafından yayımlanan bir yazılım geliştirme kitidir. Flex uygulamaları, Adobe Flash Builder kullanılarak ya da Adobe'den ücretsiz olarak kullanılabilen Flex derleyicisi kullanılarak yazılabilir. İlk sürümü Mart 2004'te bir yazılım geliştirme kiti, bir IDE ve Flex Data Services olarak bilinen bir Java EE entegrasyon uygulaması Macromedia tarafından dahil edildi. 2005 yılında Adobe, Macromedia'yı elde ettiğinden beri, artık Flex'in daha sonraki sürümleri, Flex Data Services için bir lisans gerektiriyor, LiveCylce Data Services gibi yeniden markalanmış ayrı bir ürün haline geldi. Adobe tarafından 2007 yılında kod katkısıyla başlayan bir açık kaynak projesi olan BlazeDS, Adobe LiveCycle Data Services'a bir alternatiftir. Şubat 2008'de Adobe, özgür Mozilla Kamu Lisansı altında Flex 3 SDK'yı yayınladı ve böylece Flex uygulamaları, herhangi bir standart IDE kullanılarak geliştirilebilir, örneğin Eclipse. Ayrıca Adobe Flash Builder denilen ticarî ve tescilli bir IDE vardır.

XSRF ya da CSRF, internet sitelerini hedef alan kötü niyetli bir exploit türüdür. XSRF ile internet sitesinin güvendiği bir kullanıcı üzerinden, siteye izin verilmeyen ya da kullanıcının farkında olmadığı komutlar gönderilir. Kötü niyetli bir web sitesinin bu tür komutları iletebilmesinin birçok yolu vardır; örneğin özel olarak hazırlanmış resim etiketleri, gizli formlar ve JavaScript XMLHttpRequests, kullanıcının etkileşimi ve hatta bilgisi olmadan çalışabilir. Bir kullanıcının belirli bir siteye güveninden yararlanan siteler arası komut çalıştırmanın aksine, CSRF bir sitenin kullanıcının tarayıcısında sahip olduğu güvenden yararlanır.

W3Schools, 1998 yılında kurulmuş programlama dillerini öğretmeyi amaçlayan ücretsiz bir eğitim sitesidir. Aynı zamanda bir uygulaması da bulunmaktadır. İsmi World Wide Web'den (W3) türetimiştir fakat W3C ile herhangi bir bağlantısı yoktur.

<span class="mw-page-title-main">Google Sites</span> Web sayfası oluşturma aracı

Google Siteler, Google tarafından sunulan Google Apps üretkenlik paketinin bir parçası olarak, yapılandırılmış bir viki ve Web sayfası oluşturma aracıdır. Google Sitelerin amacı herkesin bir ekip odaklı bir site oluşturmak mümkün olabilmesi ve birden fazla kişinin iş birliği ve dosyalarınızı paylaşabilmesidir.

<span class="mw-page-title-main">Seri 40</span>

Seri 40 veya S40 orta katman özellikli Nokia telefonlarında ve bazı Vertu lüks telefonlarda yazılım platformu ve uygulama kullanıcı arabirimi (UI) yazılımdır. Bu, dünyanın en yaygın kullanılan cep telefonu platformlarından biri oldu ve yüz milyonlarca cihazlarda bulundu. Nokia şirketi 1,5 milyar Seri 40 cihazları sattığını 25 Ocak 2012 tarihinde ilan etmiştir. S40 daha temel Seri 30 ve Seri 30+ platformundan, daha fazla özelliğe sahiptir. Onlar akıllı telefonlar için kullanılmadı, böyle ki, Nokia öncelikle Windows Phone ve 2012 yılına kadar Symbian kullandı. Ancak, 2012 ve 2013 yılında, örneğin 308, 309 ve 311 olarak Asha hattından birkaç Seri 40 telefonlar, aslında çoklu görev veya tam teşekküllü bir HTML tarayıcısı gibi akıllı telefon özelliklerini desteklememesine rağmen, "Akıllı telefonlar" olarak ilan edilmiştir.

İleri web uygulaması, yeni bir yazılım geliştirme metodolojisini ifade etmek için kullanılır. Geleneksel uygulamalar dışında, İleri Web Uygulaması bilinen web sitelerinin ve mobil uygulamaların hibrit halde geliştirilmesi olarak değerlendirilebilir. Bu yeni uygulama yaşam-döngüsü çeşitli özellikleri bir araya getirir ve en modern tarayıcılar tarafından desteklenerek mobil tecrübenin faydalarını kullanıcılara sunabilmektedir.

<span class="mw-page-title-main">Hızlandırılmış Mobil Sayfalar</span>

Hızlandırılmış mobil sayfalar açık kaynaklı bir kod yazılımı olup, interneti daha güzel bir yer haline getirmeyi amaçlamaktadır. Hızlandırılmış mobil sayfalar yapısı ile oluşturulan sayfaları yüksek performanslarla telefonlarda erişim imkânı tanımaktadır. Yüksek performans ve katılım ile kullanıcılara kaliteli internet deneyimi yaşatmak içi neredeyse sayfa yükleme oranlarını ortadan kaldırmaktadır. Mobil ve masaüstü uygulamalarında yüksek katılımlara ulaşmaktadır.

Siteler arası betik çalıştırma, genellikle web uygulamalarında görülen, genellikle HTML enjeksiyonu zafiyetiyle birlikte ortaya çıkan veya Java Script kullanan bazı aplikasyonlarda bulunan bir güvenlik açıklığıdır. XSS, diğer kullanıcılar tarafından görüntülenen web sayfalarına istemci taraflı Java Script kodunun enjekte edilmesine imkân verir. Siteler arası betik çalıştırma açıklığı, saldırganlar tarafından aynı kök politikası gibi bazı erişim kontrollerini atlatmak ve hedef adresin oturum katmanını ele geçirmek için kullanılabilmektedir. Web sayfaları üzerinde gerçekleştirilen siteler arası betik çalıştırma saldırıları, 2007 itibarıyla Symantec'in raporladığı tüm güvenlik açıklıklarının yaklaşık olarak %84'ünü oluşturmaktadır. Zafiyet içeren sitenin işlediği verinin hassasiyetine ve site sahibi tarafından uygulanan güvenlik tedbirlerine bağlı olarak, etkisi ufak bir aksamadan önemli bir güvenlik riskine kadar değişebilmektedir.

Aynı kök politikası web uygulamaları güvenlik modelinde önemli bir unsurdur. Bu politikaya göre, bir web tarayıcısı, bir web sayfasında yer alan betiklerin ikinci bir web sayfası üzerindeki veriye erişimine sadece bu iki sayfa aynı köke sahipse izin vermektedir. Bir kök, URI şeması, hostname ve port numarasının bir kombinasyonu olarak tanımlanmaktadır. Bu politika, bir sayfada bulunan kötücül betiğin başka bir sayfada bulunan hassas verilere erişimini, o sayfanın Belge Nesnesi Modeli aracılığıyla engellemektedir.

<span class="mw-page-title-main">Web servis</span> Web servis, elektronik cihaz tarafından başka bir elektronik cihaza sunulan, World Wide Web üzerinden birbirleriyle iletişim kuran yapıların bütününe verilen isimdir.

Web servis, elektronik cihaz tarafından başka bir elektronik cihaza sunulan, World Wide Web üzerinden birbirleriyle iletişim kuran yapıların bütününe verilen isimdir. Bir Web servisinde, HTTP gibi bir Web teknolojisi orijinal olarak insandan makineye iletişim için tasarlanmıştır. HTML, XML, JSON gibi makine tarafından okunabilen dosya formatlarını aktarmak için kullanılır.

Bir web geliştiricisi, istemci-sunucu modeli kullanarak World Wide Web uygulamalarının geliştirilmesinde uzmanlaşmış veya özel olarak ilgilenen bir programcıdır. Uygulamalar genellikle istemcide, PHP, ASP'de HTML, CSS ve JavaScript kullanır. NET (C#), Python, Node.js, sunucuda Go veya Java ve istemci ile sunucu arasındaki iletişim için http bağlantılarını kullanmaktadır. Bir web içerik yönetim sistemi genellikle web uygulamalarını geliştirmek ve sürdürmek için kullanılır.