Bilgi Merkezi
Bundan sıkıldım, bana başka bir şey göstersen?

AJAX (programlama)


AJAX (İngilizce:Asynchronous JavaScript and 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 olmadığı için bazıları yazıldığı gibi 'ajaks' olarak okurken, bazıları da aynı isimli futbol takımını örnek göstererek 'ayaks' demektedir.

En yaygın kullanım alanı sayfayı tekrardan yüklemeye gerek kalmadan sayfada görünür değişiklikler yapmaktır. XMLHttpRequest kullanarak birden fazla bağımsız işlemi 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.'ı bitirip, 3. evreye ulaştırdığını iddia etmişlerdir.



Konu başlıkları

Örnekler

Sayılamayacak kadar çok site, az ya da çok miktarda olmak üzere Ajax teknolojisini kullanmaktadır. Aşağıdaki siteler ve ürünler ileri düzeyde Ajax kullanarak kullanıcıyla etkileştikleri için listelenmişlerdir.

İlgili Olabilecek Siteler

AJAX kütüphaneleri




Bu sayfa başka bir dilden çevrilmektedir.

Şablon:Otheruses2

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üncellenebilen 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:

Tarihsel Bilgi

Bu terim ilk olarak Jesse James Garrett tarafından Şubat 2005 de kullanılmıştır [1], when he realized the need for a shorthand term to represent the suite of technologies he was proposing to a ">template:cite web kullanımında hata: Parametreler url ve başlık tanımlanmalı.</client[2].

Although the term "Ajax" was coined in 2005, most histories of the technologies that enable Ajax start a decade earlier with Microsoft's initiatives in developing Remote Scripting. Techniques for the asynchronous loading of content on an existing Web page without requiring a full reload date back as far as the IFRAME element type (introduced in Internet Explorer 3 in 1996) and the LAYER element type (introduced in Netscape 4 in 1997, abandoned during early development of Mozilla). Both element types had a src attribute that could take any external URL, and by loading a page containing JavaScript that manipulated the parent page, Ajax-like effects could be attained. This set of client-side technologies was usually grouped together under the generic term of DHTML. Macromedia's Flash could also, from version 4, load XML and CSV files from a remote server without requiring a browser refresh.

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 Access supplied with the Microsoft Exchange Server 2000 release.

The Web development community, first collaborating via the microsoft.public.scriptingilizce: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[3] to Microsoft Remote Scripting was made to replace the Java applet with XMLHttpRequest.

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

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ı

Avantajları

Bantgenişliği ayarlama

HTML'i 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. Bu tekniğe örnek olarak bilginin birden çok sayfadan oluştuğu büyük miktarda veriyi ele alalım. Ajax ile sayfanın HTML kodu, örneğin bir tablo kontrolü ya da ilgili TD, TR etiketleri (tag) ağ tarayıcısı (browser) içinde oluşturulabilir, dolayısıyla dökümanın ilk sayfasını indirmeye gerek kalmaz.

İç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 bantgenişliği tüketimini önemli ölçüde hafifletir.

Kullanıcı Arabirimi

Ajax kullanmak için en önemli neden kullanıcı arabirimindeki iyileştirmedir. Ajax kullanan sayfalar tipik bir web sayfasından çok, tarayıcının çalıştığı bilgisayarda bir stand-alone uygulama gibidir. Sayfanın tamamının güncellenmesinin gerektiği linklere tıklandığı zaman işlemin epeyi "ağır" olduğu hissedilir, ancak Ajax ile sayfa çoğu kez dinamik olarak güncellenebilir.

Örnek Fisheye interface example

Dezavantajları

Tarayıcı Uyumluluğu

Dinamik olarak oluşturulan sayfalar tarayıcının önceden işlediği sayfaları yöneten mekanizmalarına kendini otomatik olarak kaydetmez, bu yüzden tarayıcının "Geri" tuşuna basıldığında istenen sayfa elde edilemeyebilir.

Geliştiriciler bu problemi çözmek için değişik çözümler geliştirmiştir. Bu tip çözümler genelde tarayıcının Geri tuşu kullanıldığında geçmiş listesiyle ilgili işlemleri çalıştıran görünmez IFRAME'leri kullanır. Örneğin Google Maps, arama suretiyle istenen bilgileri önce görünmez bir IFRAME içinde işler, sonra sayfanın görünen kısmında ilgili elemanın içine yerleştirir. World Wide Web Consortium (W3C) iframe elemanını XHTML 1.1 Çalışmasına eklememiştir, bunun yerine object elemanını önermiştir.

Başka bir problem de kullanıcının bazı uygulamaları bookmark'lamasını zorlaştıran dinamik web sayfası güncellemeleridir. Bu problemle ilgili çözümler vardır, çoğu URL fragment identifier (URL'nin '#'dan sonraki kısmı [6] [7]) bilgisini analiz eder ve bookmark'lama anında kullanıcıya bilgiyi verir. Bu teknik olarak mümkündür, zira URL'nin fragment identifier kısmının güncellenmesi için birçok tarayıcı JavaScript'i desteklemektir, öyle ki kullanıcının ilgili işlemi gerçekleştirdiği anda Ajax uygulaması çalışabilsin. Bu teknik aynı zamanda Geri tuşunun işlevini de geliştirmektedir. Ancak henüz tam bir çözüm geliştirilememiştir.

Yanıt Verme Süresiyle Ilgili Kısıtlamalar

Ajax'la geliştirme esnasında network gecikmesi ya da kullanıcı isteğine sunucunun verdiği yanıt arasında geçen süre özellikle dikkate alınmalıdır. Gecikme denen şey, kullanıcıya bilginin düzgün gönderilmemesi ya da XMLHttpRequest objesinin doğru bir şekilde kullanılmaması durumunda kullanıcının beklemediği ya da anlamadığı bir olaydır.

Buna ek olarak, bütün bir sayfa render edilirken sayfanın içeriği değişimi esnasında insan gözünün adaptasyonu için geçen belli bir süre vardır. Ekranın değişiminin daha ufak adımlarla ayarlanması yapılmazsa bu gecikme daha çok hissedilir. Kullanıcıya arkaplanda bir işlemin yapıldığı ya da içeriğin yüklenmeye çalışıldığını söylemek için kullanılan görsel efektler bu tip gecikme problemlerine çözüm olarak önerilmektedir.

Genel olarak network gecikmesinin zamana bağlı olarak değişmesi gibi gecikmenin potansiyel etkileri, halihazırda bulunan açık kaynak Ajax araçlarının ve framework'lerin hiçbirince henüz çözümlenememiştir.

Arama Motorlarıyla Ilgili İyileştirmeler

Arama motorlarinca endekslenmesi gereken bilgileri yüklemek için Ajax kullanılan web sisteleri, Ajax işlevselliği için gerekli olan JavaScript kodunu arama motorlarının genelde çalıştırmamasından dolayı, arama motorlarının okuyabileceği bir formatta ve bir URL linki şeklinde bilgi koymalıdır. Bu problem Ajax'a özgü değildir, çünkü örneğin form gönderme (form submit) sonrası gereken tam sayfa güncellemesi gibi dinamik sayfalar üreten sitelerde de bu problem vardır (bu gibi problemler genelde hidden web olarak adlandırılır).

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.

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 taracı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.

Bunlara da Bak

References

↑ . Garrett thought of the term while in the shower<ref>{{cite web |url=http://online.wsj.com/public/article/SB113098635587487074-3diFzslPm_iutdYLU2C5e4DinUA_20061103.html |title=New Web-based Technology Draws Applications, Investors |publisher=[[Wall Street Journal]] |date=2005-11-03 |accessdate=2006-06-14 }}</li> <li id="_note-acronym">[[#_ref-acronym_0|↑]] At subsequent talks and seminars Garrett has made the point that Ajax is not an [[acronym]].</li> <li id="_note-1">[[#_ref-1|↑]] {{cite web |url=http://groups.google.ca/group/microsoft.public.scriptingilizce:remote/browse_thread/thread/99b7e6152b45b2e7/6b3689e2dc7401dc |title=HTTPRequest-enabled RS |publisher=microsoft.public.scriptingilizce:remote newsgroup |date=2002-06-18 |accessdate=2006-08-01 }}</li> <li id="_note-2">[[#_ref-2|↑]] {{cite web |url=http://arscif.dsi.unimi.it/ |title=ARSCIF: A Framework for Asynchronous Remote–Script Callback Invocation |publisher=Sebastiano Vigna |accessdate=2006-08-01 }}</li> <li id="_note-3">[[#_ref-3|↑]] {{cite web |url=http://msdn.microsoft.com/msdnmag/issues/04/08/CuttingEdge/ |title=Cutting Edge: Script Callbacks in ASP.NET |publisher=[[MSDN]] Magazine |date=2004-08-08 |accessdate=2006-08-01 }}</li> <li id="_note-rfc2396">[[#_ref-rfc2396_0|↑]] {{cite web |url=http://www.ietf.org/rfc/rfc2396.txt |title=Uniform Resource Identifiers (URI): Generic Syntax |publisher=The Internet Society |date=August 1998 |accessdate=2006-07-21 }}</li> <li id="_note-rfc3986">[[#_ref-rfc3986_0|↑]] {{cite web |url=http://www.ietf.org/rfc/rfc3986.txt |title=Uniform Resource Identifier (URI): Generic Syntax |publisher=The Internet Society |date=January 2005 |accessdate=2006-07-21 }}</li></ol></ref>

External links

Articles


Tutorials
ajax (programlama) ile ilgili Anahtar Kelimeler :with that çok [degistir] sayfa for the dinamik bütün daha Ajax gibi XMLHttpRequest Web <li Internet and JavaScript için web
Bu makale Wikipedia' dan çarpma olup GNU FDL lisansı altındadır. Bu yazıyı yazan arkadaşlar buradadır.
Bir Şey Öğren bir Ferruh Mavituna aksiyonudur ve aktivist bir Wiki forkudur.

Wußten Sie das? - Lernet was