Ajax Konusunda Uzmanlaşma, Bölüm 8

0
butch
IBM Türkiye ve Fazlamesai.net işbirliği ile dilimize kazandırılan yeni bir IBM developerWorks makalesi ile karşınızdayız. Diğer makalelere buradan ulaşabilirsiniz.

Makalenin özgün haline bu adresten ulaşabilirsiniz.

Ajax'ta Uzmanlaşma, Bölüm 8: İsteklerde ve yanıtlarda XML kullanılması

Ajax istemci/sunucu iletişimi hassas bir iş olabilir

Düzey: Orta

Brett McLaughlin (brett@newInstance.com), Yazar ve Editör, O'Reilly Media Inc.

07 Kasım 2006

Bu dizinin son makalesinde, Ajax uygulamalarınızın sunucuya gönderilen istekleri nasıl XML şeklinde biçimlendirebildiğini gördünüz. Çoğu durumda, bunun neden iyi bir fikir olmadığını da okudunuz. Bu makale, genellikle daha iyi bir fikir olan bir şey üzerine odaklanır: İstemciye XML yanıtlarının gönderilmesi.

Esas olarak yapmamanız gereken şeylerle ilgili makaleler yazmaktan gerçekten hoşlanmıyorum. Böyle makaleler çoğu kez yazılması anlamsız olan şeyleri içerir. Makalenin yarısı bir şeyi açıklamakla geçer, makalenin kalan kısmında da, az önce öğrendiğiniz teknikleri kullanmanın ne kadar kötü bir fikir olduğunu açıklanır. Geçen ayki makale de büyük oranda böyle bir yazıydı (okuma fırsatı bulamadıysanız, Kaynaklar içinde verilen bağlantıyı izleyin). Bu yazıda size, Ajax uygulamalarınızın isteklerinde veri biçimi olarak XML'i nasıl kullanacağınız öğretildi.

Bu makalenin, XML isteklerini öğrenmek için harcadığınız zamanı geri kazanmanızı sağlayacağını umuyorum. Ajax uygulamalarında veri gönderme biçimi olarak XML kullanmanın çok az nedeni varken, bir sunucunun istemciye XML geri göndermesini istemeniz için de birçok neden vardır. Son makalede XML ile ilgili öğrendiğiniz her şey, bu makalede biraz değer kazanmaya başlayacak.

Sunucular çok şey söyleyemez (bazen)

Bir sunucudan XML yanıtı almaya ilişkin teknik ayrıntılara girmeden önce, bir sunucunun bir isteğe yanıt olarak XML göndermesinin neden bu kadar iyi bir fikir (ve bunun, bir istemcinin bu isteği XML olarak göndermesinden nasıl farklı) olduğunu anlamanız gerekir.

İstemciler ad/değer çiftleriyle konuşur

Son makaleden de hatırlayacağınız gibi, istemciler isteklerini ad/değer çiftlerini kullanarak gönderebildikleri için çoğu durumda XML kullanmalarına gerek yoktur. Şöyle bir ad gönderebilirsiniz: name=jennifer. Ardışık ad/değer çiftleri arasına bir ve (&) işareti ekleyerek bunları birleştirebilirsiniz (name=jennifer&job=president gibi). Basit metin ve bu ad/değer çiftlerini kullanarak, istemciler birden çok değere sahip istekleri sunucuya kolayca gönderebilir. XML'in sağladığı ek yapıya (ve ek yüke) nadiren gereksinim duyulur.

Aslında, bir sunucuya XML göndermenizi gerektirecek neredeyse tüm nedenler iki temel kategoride gruplanabilir:

  • Sunucu yalnızca XML isteklerini kabul ediyordur. Bu durumlarda, başka bir seçeneğiniz yoktur. Geçen ayki makalenin temel noktaları, bu tür istekleri göndermek için gereksinim duyacağınız tüm araçları sağlamış olmalıdır.
  • Yalnızca XML ya da SOAP isteklerini kabul eden bir uzak API çağırıyorsunuzdur. Bu, gerçekten de önceki noktanın biraz daha özel bir durumudur, ancak kendi başına söz etmeye değer bir noktadır. Google ya da Amazon'daki API'leri bir zamanuyumsuz istekte kullanmak isterseniz, bazı konuları göz önünde bulundurmanız gerekir. Bunlara ve bunun gibi API'lere istek gönderilmesine ilişkin birkaç örneğe gelecek ayın makalesinde değineceğim.

Sunucular ad/değer çiftlerini gönderemez (standart şekilde)

Ad/değer çiftleri gönderdiğinizde, istekleri gönderen Web tarayıcısı ve bu isteğe yanıt veren ve bir sunucu programını barındıran platform bu ad/değer çiftlerini, bir sunucu programının kolayca çalışabileceği verilere dönüştürmek için birlikte çalışır. Neredeyse her sunucu tarafı teknolojisi -- Java™ sunucu uygulamalarından PHP'ye, Perl'e, Ruby on Rails'e -- bir ada dayalı değerleri almanız için çeşitli yöntemler çağırmanızı sağlar. Dolayısıyla, name özniteliğinin alınması önemsizdir.

Diğer yönde farklı bir durum söz konusudur. Sunucu, name=jennifer&job=president dizesinin bulunduğu bir uygulamaya yanıt verdiyse, istemcide iki ad/değer çiftini ayırmak ve daha sonra her bir çifti bir ad ve değere bölmek için standartlaştırılmış, kolay bir yöntem bulunmaz. Döndürülen verileri el ile ayrıştırmanız gerekir. Sunucu, ad/değer çiftlerinden oluşan bir yanıt döndürürse, bu yanıt, noktalı virgüllerle ya da çubuk simgeleriyle ya da diğer standart dışı biçimlendirme karakterleriyle birbirinden ayrılmış öğelerden oluşan bir yanıtı yorumlamaktan daha kolay (ya da daha zor) değildir.

Bana biraz yer açın!

Çoğu HTTP isteğinde, tek bir boşluğu göstermek için kaçış sırası olarak %20 kullanılır. Dolayısıyla, "Live Together, Die Alone" metni, HTTP üzerinden Live%20Together,%20Die%20Alone olarak gönderilir.

Bu durumda karşılaşacağınız sorun, yanıtlarınızda düz metin kullanmanızın ve istemcinin bu yanıtı alıp standart bir yolla yorumlamasının (en azından yanıt birden çok değer içerdiğinde) kolay bir yolunun olmamasıdır. Örneğin, sunucunuz yalnızca 42 sayısını geri gönderseydi, düz metin harika olurdu. Peki, TV'deki dizilere (Lost, Alias ve Six Degrees) ilişkin en son seyredilme oranlarını bir defada gönderirse ne olur? Bu yanıtı düz metin kullanarak göndermeye ilişkin birçok yol seçebilirsiniz (birkaç örnek için bkz. Liste 1), ancak hiçbiri, istemcide bir çalışma yapılmadan kolayca yorumlanamaz ve hiçbir tamamen standartlaşmış değildir.


Liste 1. TV seyredilme oranlarına ilişkin sunucu yanıtı (çeşitli sürümler)
show=Alias&ratings=6.5|show=Lost&ratings=14.2|show=Six%20Degrees&ratings=9.1

Alias=6.5&Lost=14.2&Six%20Degrees=9.1

Alias|6.5|Lost|14.2|Six%20Degrees|9.1

Bu yanıt dizelerinin nasıl ayrılacağını anlamak çok zor olmasa da, bir istemcinin, noktalı virgüllere, eşittir işaretlerine, çubuklara ve "ve" işaretlerine dayanarak dizeyi ayrıştırması ve bölmesi gerekir. Bu, diğer geliştiricilerin kolayca anlayabileceği ve sağlayabileceği güçlü bir kod yazmak için nadiren kullanılan bir yoldur.

XML girin

Bu sunucunun istemcilere ad/değer çiftleriyle yanıt vermesi için standart bir yol olmadığını fark ettiğinizde, XML kullanmanın arkasında yatan mantık netleşmeye başlar. Sunucuya veri gönderirken, sunucular ve sunucu tarafında diller çiftleri kolayca yorumlayabildiği için ad/değer çiftleri harika birer seçimdir; istemciye veri döndürürken de XML kullanmak için aynı şey geçerlidir. Birkaç makale önce, XML'i ayrıştırmak için DOM'nin nasıl kullanıldığını görmüştünüz ve sonraki bir makalede XML'i ayrıştırmak için JSON'nin da başka bir seçenek sunduğunu göreceksiniz. Hepsinin üzerinde, XML'i düz metin gibi işleyebilir ve değerleri, bu şekilde alabilirsiniz. Dolayısıyla, bir sunucudan XML yanıtı almanın ve oldukça standartlaşmış kodla verileri çıkarmanın ve bir istemcide kullanmanın birkaç yolu vardır.

Ek bir bonus olarak XML'in anlaşılması genellikle oldukça kolaydır. Örneğin, programlama yapabilen kişilerin çoğu, Liste 2'deki verileri anlayabilir.


Liste 2. TV seyredilme oranlarına ilişkin sunucu yanıtı (XML)
<ratings>
 <show>
  <title>Alias</title>
  <rating>6.5</rating>

 </show>
 <show>
  <title>Lost</title>
  <rating>14.2</rating>
 </show>

 <show>
  <title>Six Degrees</title>
  <rating>9.1</rating>
 </show>
</ratings>

Liste 2'de, belirli bir noktalı virgül ya da kesme işaretinin anlamıyla ilgili herhangi bir gizemli nokta yoktur.



Sunucudan XML alınması

Bu dizinin odak noktası Ajax denkleminin istemci tarafı olduğundan, sunucu tarafındaki bir programın yanıtı XML olarak nasıl oluşturduğu üzerinde ayrıntılı bilgi vermeyeceğim. Ancak, istemciniz XML aldığında bazı özel konuları bilmeniz gerekir.

Birincisi, sunucudan gelen bir XML yanıtını iki temel şekilde işleyebilirsiniz:

  • XML olarak biçimlendirilen düz metin
  • DOM Document nesnesiyle gösterilen bir XML belgesi.

İkincisi, örnek olsun diye bir sunucudan basit bir XML yanıtı aldığınızı varsayın. Liste 3'te yukarıda ayrıntılı olarak verilen aynı TV listesi gösterilmektedir (aslında bu, sizin için yeniden yazılan, Liste 2'dekiyle aynı XML'dir). Bu bölümdeki konularda bu örnek XML'i kullanacağım.


Liste 3. Örnek olarak XML biçimli TV seyredilme oranları
<ratings>
 <show>
  <title>Alias</title>
  <rating>6.5</rating>

 </show>
 <show>
  <title>Lost</title>
  <rating>14.2</rating>
 </show>

 <show>
  <title>Six Degrees</title>
  <rating>9.1</rating>
 </show>
</ratings>

XML ile düz metin olarak çalışma

En azından yeni programlama tekniklerini öğrenme açısından, XML'i işlemenin en kolay seçeneği, XML'i sunucudan dönen herhangi bir metin parçası gibi ele almaktır. Diğer bir deyişle, veri biçimini dikkate almaz ve yalnızca sunucudan gelen yanıtı alırsınız.

Bu durumda, sunucunun size XML olmayan bir yanıt gönderdiğinde yapacağınız gibi istek nesnenizin responseText özelliğini kullanırsınız (bkz. Liste 4).


Liste 4. XML'nin olağan bir sunucu yanıtı olarak işlenmesi
function updatePage() {
  if (request.readyState == 4) {
    if (request.status == 200) {
      var response = request.responseText;

      // response has the XML response from the server
      alert(response);
    }
  }
}

Önceki makaleleri gözden geçirin

Çok sayıda kod yinelemesini önlemek için, dizinin sonraki makalelerinde yalnızca anlatılan konuyla ilgili kod kısımları gösterilmektedir. Bu nedenle, Liste 4'te yalnızca Ajax istemcisi kodunuzdaki geri arama yöntemi gösterilmiştir. Bu yöntemin zamanuyumsuz bir uygulamanın daha geniş bağlamına nasıl uyacağı konusunda şüpheleriniz varsa, dizinin, Ajax uygulamalarının temel noktalarını kapsayan ilk birkaç makalesini gözden geçirin. Bu eski makalelere ilişkin bağlantılar için Kaynaklar bölümüne bakın.

Bu kod parçasında, updatePage() geri çağrı ve request, XMLHttpRequest nesnesidir. XML yanıtı, response değişkeninde tümü bir arada dizilmiş bir şekilde ortaya çıkar. Bu değişkeni yazdırdıysanız, Liste 5'tekine benzer bir kod görmeniz gerekir. (Liste 5'teki kodun tek, sürekli bir satır olduğuna dikkat edin. Burada, görüntülenebilmesi amacıyla birden çok satırda gösterilmiştir.)


Liste 5. Yanıt değişkeninin değeri
<ratings><show><title>Alias</title><rating>6.5</rating>
</show><show><title>Lost</title><rating>14.2</rating></show><show>
<title>Six Degrees</title><rating>9.1</rating></show></ratings>

Burada belirtilmesi gereken en önemli şey, XML'in tamamının birlikte çalıştığıdır. Çoğu durumda, sunucular XML'i boşluklar ve satır başlarıyla biçimlendirmez; Liste 5'te gördüğünüz gibi tümünü tek bir dize halinde birleştirir. Elbette, uygulamalarınız boşluklarla çok ilgilenmediği için bu, bir sorun oluşturmaz; ancak, okumak biraz zorlaşır.

Bu noktada, bu verileri ayırmak için JavaScript split işlevini ve öğe adlarını ve değerlerini almak için temel dize işlemesini kullanabilirsiniz. Tabii ki bu, size gerçekten sıkıntı verecektir ve böyle bir durumda, dizinin önceki makalelerinde DOM'ye (Belge Nesne Modeli) bakmak için çok zaman harcadığınız gerçeği göz ardı edilir. Bu nedenle, responseText ile bir sunucunun XML yanıtını kolayca kullanabileceğinizi ve çıkarabileceğinizi aklınızda tutmanızı öneririm, ancak size daha fazla kod göstermeyeceğim; biraz sonra da göreceğiniz gibi, DOM'yi kullanabileceğiniz durumlarda, XML verilerini almak için bu yaklaşımı kullanmamanız gerekir.

XML'in XML olarak işlenmesi

Sunucunun XML biçimli yanıtını diğer metin yanıtları gibi işleyebilirsiniz, ancak bunu yapmanızı gerektiren herhangi bir neden yoktur. Birincisi, bu dizinin sadık bir okuruysanız, XML'i işlemek için yararlanabileceğiniz JavaScript dostu bir API olan DOM'yi nasıl kullanacağınızı biliyorsunuzdur. Daha da iyisi, JavaScript ve XMLHttpRequest nesnesi, sunucunun XML yanıtını almak ve bunu, bir DOM Document nesnesi biçiminde almak için mükemmel bir özellik sağlar.

Bunu çalışırken görmek için Liste 6'ya bakın. Bu kod, Liste 4'e benzer, ancak responseText özelliğini kullanmak yerine, geri çağrı responseXML özelliğini kullanır. XMLHttpRequest nesnesinde bulunan bu özellik, sunucunun yanıtını bir DOM belgesi biçiminde döndürür.


Liste 6. XML'in XML olarak işlenmesi
function updatePage() {
  if (request.readyState == 4) {
    if (request.status == 200) {
      var xmlDoc = request.responseXML;

      // work with xmlDoc using the DOM
    }
  }
}

Artık bir DOM Document öğeniz var ve bununla, diğer herhangi bir XML ile yaptığınız gibi çalışabilirsiniz. Örneğin, tüm show öğelerini alabilirsiniz (bkz. Liste 7).


Liste 7. Tüm show öğelerinin alınması
function updatePage() {
  if (request.readyState == 4) {
    if (request.status == 200) {
      var xmlDoc = request.responseXML;

      var showElements = xmlDoc.getElementsByTagName("show");
    }
  }
}

DOM ile daha önce çalıştıysanız, bu size tanıdık gelmeye başlamış olmalı. Şimdiye kadar öğrendiğiniz tüm DOM yöntemlerini kullanabilir ve sunucudan aldığınız XML'yi kolayca işleyebilirsiniz.

Elbette, olağan JavaScript koduna da karıştırabilirsiniz. Örneğin, Liste 8'deki gibi tüm show öğelerini yineleyebilirsiniz.


Liste 8. Tüm show öğelerinin yinelenmesi
function updatePage() {
  if (request.readyState == 4) {
    if (request.status == 200) {
      var xmlDoc = request.responseXML;

      var showElements = xmlDoc.getElementsByTagName("show");
      for (var x=0; x<showElements.length; x++) {
        // We know that the first child of show is title, and the second is rating
        var title = showElements[x].childNodes[0].value;
        var rating = showElements[x].childNodes[1].value;

        // Now do whatever you want with the show title and ratings
      }
    }
  }
}

Bu göreceli olarak basit kodla, bir XML yanıtını, yalnızca düz, biçimlendirilmemiş metin gibi değil, bir XML gibi işlediniz ve sunucunun yanıtıyla çalışmak için biraz DOM, biraz da basit JavaScript kullandınız. Daha da önemlisi, virgülle ayrılmış değerler ya da çubukla ayrılmış ad/değer çiftleri yerine standartlaşmış bir biçimle (XML) çalıştınız. Diğer bir deyişle, XML'i anlamlı bir yerde kullandınız ve sunucuya istek göndermek gibi anlamsız bir yerde kullanmaktan kaçındınız.

Sunucuda XML: Kısa bir örnek

Sunucuda XML oluşturma konusuna fazla değinmesem de, çok fazla açıklama yapmadan küçük bir örnek görebiliriz; böylece, böyle bir durumla nasıl uğraşacağınıza ilişkin kendi düşüncelerinizi oluşturursunuz. Liste 9'da, zamanuyumsuz bir istemciden gelmiş olabilecek bir isteğe yanıt olarak XML oluşturan basit bir PHP komut dosyası gösterilmektedir.

Bu, PHP komut dosyasının XML çıkışını manuel olarak zorla oluşturduğu kaba kuvvet yaklaşımıdır. PHP ve XML yanıtları oluşturabilmenizi sağlayan diğer birçok sunucu tarafı dillerine ilişkin çeşitli araç takımları ve API'ler bulabilirsiniz. Her durumda bu, size en azından XML ile istek oluşturan ve yanıtlayan bir sunucu tarafı komut dosyasının neye benzediğine ilişkin bir fikir verir.


Liste 9. XML döndüren PHP komut dosyası
<?php

// Connect to a MySQL database
$conn = @mysql_connect("mysql.myhost.com", "username", "secret-password");
if (!conn)
  die("Error connecting to database: " . mysql_error());

if (!mysql_select_db("television", $conn))
  die("Error selecting TV database: " . mysql_error());

// Get ratings for all TV shows in database
$select = 'SELECT title, rating';
$from   = '  FROM ratings';
$queryResult = @mysql_query($select . $from);
if (!$queryResult)
  die("Error retrieving ratings for TV shows.');

// Let the client know we're sending back XML
header("Content-Type: text/xml");
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
echo "<ratings>";

while ($row = mysql_fetch_array($queryResult)) {
  $title = $row['title'];
  $rating = $row['rating'];

  echo "<show>
  echo "<title>" . $title . "</title>";
  echo "<rating>" . $rating . "</rating>";
  echo "</show>";
}

echo "</ratings>";

mysql_close($conn);

?>

Kendi favori sunucu tarafı dilinizi kullanarak benzer bir şekilde XML çıkışı elde edebilmeniz gerekir. Çok sayıda IBM developerWorks makalesi, tercih edilen sunucu tarafı dili kullanılarak bir XML belgesinin nasıl oluşturulacağını anlamanıza yardımcı olur (bağlantılar için bkz. Kaynaklar).



XML'in yorumlanmasına ilişkin diğer seçenekler

XML'i biçimlendirilmemiş metin olarak işlemenin ya da DOM kullanmanın ötesinde, XML ile çalışmaya ilişkin önemli ve sözünü etmeye değer çok popüler bir seçenek daha vardır. Bu seçenek, JavaScript Object Notation'ın (JavaScript Nesne Gösterimi) kısaltması olan JSON'dir ve bu, JavaScript'e eklenen bir serbest metin biçimidir. Bu makalede JSON'yi anlatmak için yeterli yerim kalmadı, bu nedenle, bu konuya önümüzdeki birkaç ay içinde döneceğim; XML ve Ajax uygulamalarından söz eder etmez bu konuyla ilgili bir şeyler duyarsınız, dolayısıyla artık, çalışma arkadaşlarınızın neyle ilgili konuştuklarını bilebilirsiniz.

Genel olarak, JSON ile yapabileceğiniz her şeyi DOM ile de yapabilirsiniz ya da DOM ile yapabileceğiniz her şeyi JSON ile yapabilirsiniz; bu genellikle tercihle ve belirli bir uygulama için doğru yaklaşımı seçmeyle ilgilidir. Şimdilik, DOM ile çalışmaya devam edelim ve sunucunun yanıtını alma bağlamında bunun nasıl kullanılacağını öğrenelim. Birkaç makale içinde JSON üzerinde oldukça uzun duracağım ve bir sonraki uygulamanızda ikisi arasında bir seçim yapmak için hazır olacaksınız. Bu nedenle, bu diziyi izlemeye devam edin: Gelecek makalelerde XML ile ilgili anlatılacak daha çok şey var.



Sonuç

Bu dizinin son makalesinin başlamasından bu yana neredeyse durmaksızın XML ile ilgili konuşuyorum, ancak henüz XML'in Ajax denklemine katkısının yalnızca yüzeyini biraz kazıdınız. Gelecek makalemde, XML göndermek (ve XML almak) isteyebileceğiniz belirli durumlarla ilgili daha ayrıntılı bilgi vereceğim. Özellikle, Web hizmetlerini -- özel olanlar ve Google gibi API'ler -- Ajax etkileşimi ışığında inceleyeceksiniz.

Kısa dönemde en büyük göreviniz, uygulamalarınız için XML'in ne zaman anlamlı olacağı konusunda gerçekten düşünmek olacaktır. Birçok durumda, uygulamanız iyi çalışıyorsa, XML baş ağrılarına neden olan teknoloji terimi olmaktan öteye gitmez ve yalnızca uygulamanızda XML olduğunu söyleyebilmek için XML kullanma isteğinize direnmeniz gerekir.

Sunucunun size gönderdiği verilerin sınırlı olduğu bir durumda ya da virgül veya çubuklarla ayrılmış garip bir biçimde, XML gerçekten büyük yararlar sağlayabilir. Sunucu tarafı bileşenlerinizle çalışarak ya da bu bileşenleri değiştirerek, kesinlikle XML kadar sağlam olmayan bir özel biçimi kullanmak yerine yanıtları daha standart bir şekilde, XML kullanarak döndürmelerini sağlayabilirsiniz.

Sonuç olarak, Ajax'la ilgili teknolojiler hakkında ne kadar çok şey öğrenirseniz, kararlarınız konusunda o kadar dikkatli olmanız gerektiğini unutmayın. Bu Web 2.0 uygulamalarını yazmak eğlencelidir (ve gelecek makalelerde kullanıcı arabirimine dönecek ve yapabileceğiniz bazı güzel şeyleri göreceksiniz), çalışan bir Web sayfasına, ancak yalnızca arkadaşlarınızı etkilemek adına teknoloji eklemediğinizden emin olmak için biraz dikkatli olmanız gerekir. İyi bir uygulama yazabileceğinizi biliyorum, o zaman gidin ve bunu yapın. İşinizi bitirdiğinizde, buraya gelip gelecek ayın makalesini okuyun ve daha çok XML öğrenin.



Kaynaklar

Bilgi Edinme
  • Ajax'ta Uzmanlaşma: Bu dizinin önceki makalelerini okuyun.

  • developerWorks XML bölgesi: Çeşitli teknik makaleler ve ipuçları, senaryolar, standartlar ve IBM Redbook yayınları için developerWorks XML Zone sitesine bakın.

  • developerWorks Web Geliştirme bölgesi: Web 2.0, Ajax, wikis, PHP, mashup'lar ve diğer Web projeleriyle ilgili kaynaklar bulun.

  • developerWorks Açık kaynak bölgesi: Açık kaynak geliştirme ve uygulamasına ilişkin kaynakları keşfedin.

  • Cache in with JSON (Bakul L. Patel, developerWorks, Ekim 2006): İstemci tarafındaki doğrulama meta verilerini önbelleğe almayı öğrenin.

  • xml.com: Deneyimli bir XML programcısı değilseniz, XML konusunda anlaması en kolay çevrimiçi kaynaklardan biriyle başlayın.

  • "Write XML documents with StAX" (Berthold Daum, developerWorks, Aralık 2003): Düşük düzeyli, imleç tabanlı StAX API'sini verimli bir şekilde kullanarak XML belgeleri oluşturmaya ilişkin tek bir yöntemle ilgili bu kısa ipucunu okuyun.

  • "Servlets and XML: Made for each other" (Doug Tidwell, developerWorks, Mayıs 2000): Bu makalede, Java sunucu uygulamalarının XML ile nasıl çalıştığınız ve sunucu tarafında nasıl XML oluşturduklarını öğrenin.

  • "Using Python modules xml2sql and dtd2sql" (David Mertz, developerWorks, Haziran 2001): Python'dan XML ile ilgili daha popüler modüllerin birkaçına ilişkin bu örnekte bir veritabanı yaratmak ve doldurmak için SQL deyimleri oluşturun.

  • "Build dynamic Java applications" (Philip McCarthy, developerWorks, Eylül 2005): Java bakış açısını kullanarak sunucu tarafından Ajax'a bakın.

  • "Java object serialization for Ajax," Philip McCarthy (developerWorks, Ekim 2005): Ağ üzerinden nesne gönderme ve Ajax ile etkileşimde bulunma konularını Java bakış açısıyla inceler.

  • "Call SOAP Web services with Ajax" (James Snell, developerWorks, Ekim 2005): Ajax'ın var olan SOAP tabanlı Web hizmetleriyle bütünleştirilmesine ilişkin bu ileri düzey makaleyi inceleyin; Ajax tasarım şablonunu kullanarak Web tarayıcısı tabanlı SOAP hizmetleri istemcisini nasıl uygulayacağınızı gösterir.

  • World Wide Web Consortium'daki DOM Ana Sayfası: DOM ile ilgili her şeyin başlangıç noktasını ziyaret edin.

  • DOM Level 3 Core Specification (DOM Düzey 3 Çekirdek Belirtimi): Çeşitli dillerden Belge Nesne Modeli'nin kullanabileceği tipleri ve özellikleri kullanarak çekirdek DOM'yi tanımlayın.

  • ECMAScript language bindings for DOM (DOM için ECMAScript dil ilişkilendirmeleri): Bir JavaScript programcısıysanız ve kodunuz için DOM kullanmak istiyorsanız, Düzey 3 Belge Nesne Modeli Çekirdeği tanımlarına ilişkin bu ek ilginizi çekecektir.

  • "Ajax: A new approach to Web applications" (Jesse James Garrett , Adaptive Path, Şubat 2005): Ajax moniker teriminin ilk kez kullanıldığı bu makaleyi okuyun -- tüm Ajax geliştiricileri bu makaleyi okumalıdır.

  • developerWorks teknik etkinlikleri ve Web yayınları: Teknik geliştiricilere yönelik bu yazılım brifinglerini takip edin.


Ürün ve teknoloji edinme
  • Head Rush Ajax (Brett McLaughlin, O'Reilly Media, 2006): Bu makaledeki fikirleri Head First yöntemiyle öğrenin.

  • Java and XML, Second Edition (Brett McLaughlin, O'Reilly Media, Inc., 2001): Yazarın XHTML ve XML dönüşümleriyle ilgili görüşlerini okuyun.

  • JavaScript: The Definitive Guide (David Flanagan, O'Reilly Media, Inc., 2001): JavaScript ve dinamik Web sayfalarıyla çalışmaya ilişkin kapsamlı yönergeleri inceleyin. Yayınlanacak olan yeni basımda Ajax ile ilgili iki yeni bölüm vardır.

  • Head First HTML with CSS & XHTML (Elizabeth and Eric Freeman, O'Reilly Media, Inc., 2005): Standartlaşmış HTML ve XHTML ve CSS'yi HTML'ye uygulamayla ilgili daha fazla bilgi öğrenin.

  • IBM deneme yazılımı: developerWorks'deki yazılımı doğrudan yükleyerek bir sonraki geliştirme projenizi oluşturun.


Tartışma


Yazar hakkında

Brett McLaughlin'in fotoğrafı

Brett McLaughlin, Logo günlerinden bu yana bilgisayarlarla ilgili çalışmalar yapmaktadır (Küçük üçgeni hatırlıyor musunuz?) Son yıllarda, Java ve XML topluluklarında en çok tanınan yazarlardan ve programcılardan biri oldu. Kendisi, Nextel Communications şirketi için karmaşık kurumsal sistemler uygulaması, Lutric Technologies için uygulama sunucuları yazma görevlerini üstlendi ve en son O'Reilly Media, Inc. için önemli kitaplar yazma ve yayına hazırlama işlerini yürütüyor. Brett'in, yeni kitabı Head Rush Ajax, Ajax'a Head First adlı ödüllü ve yenilikçi bir yaklaşım getiriyor. Son kitabı Java 1.5 Tiger: A Developer's Notebook, Java teknolojisinin en yeni sürümüyle ilgili ilk kitap olma özelliğini taşıyor. Artık bir klasik olan Java and XML adlı kitabı ise, Java dilinde XML teknolojilerinin kullanılması üzerine en açıklayıcı çalışma olmaya devam ediyor.

Görüşler

0
FZ
Bu dizinin son makalesinde...

Çok şükür bitti :)
0
101
Bu dizinin son makalesinde...

"Kaç ajax dizisi" var acaba (:
Emeği geçenlerin ellerine sağlık.

0
butch
Bir yanlış anlama var sanırım. "Bu dizinin son makalesinde" ifadesi bir önce yayınlanan makaleye işaret ediyor. Üzmek istemem ama dizi bitmemiş olabilir.
0
sadettinpolat2
bu yararli makaleleri emek verip dilimize cevirenlerden allah razi olsun...
0
cross_fire
Tam da en heyecanlı bölümünde bitmiş. Keşke JSON ile ilgili bir örnek de yapılsaymış. ayrıca XML-JSON karşılaştırılması yapılabilirdi. Neyse en azından JSOn konusuna daha sonra girilecekmiş. İnşallah JSON ile ilgili makale de Türkçe'ye çevrilir. Bu yazı dizisinde emeği geçenlere teşekkür...
0
Kaner
Allah'ım bana bunların tamamını okuyup uygulama fırsatı ver. :)

PDF olarak var mı acaba?
0
Betelgeuse
PDF olarak var mı bilmiyorum ama ben buradan copy-paste ile open office odt formatında kaydedip yazıcıdan çıktı alıp ciltlemiştim. Böylece rahat rahat okuma fırsatım olmuştu. Aynı yöntemle open office programından PDF yapabilirsin.


Bu arada bu 8 bölümün devamı da varmış, onları da IBM web sitesinden bulup ingilizcelerini okumak zorunda kaldım. 8. bölümden sonrası çok daha sonra yayınlanmış, çevirenler çevirmeyi unuttular sanırım. Ama bence bu tip son kullanıcıya yönelik olmayan dökümanların çevirilmesi çok gerekli değil. Web tabanlı uygulama geliştirmeye kalkan ve JAX vb. ileri düzeyde işlere girişen biri zaten yenilikleri takip edebilmek için ingilizce bilmek zorunda. Çevirenler gönüllü bir iş yapmış, sağolsunlar ama daha ileri düzey dokumanlara ihtiyacı olanlar zahmet edip ingilizce öğrensinler böylece bilgiyi ikinci elden değil kaynağından öğrenebilirler.
Görüş belirtmek için giriş yapın...

İlgili Yazılar

Ajax Konusunda Uzmanlaşma, Bölüm 2

butch

IBM Türkiye ve Fazlamesai.net işbirliği ile dilimize kazandırılan yeni bir IBM developerWorks makalesi ile karşınızdayız. Diğer makalelere buradan ulaşabilirsiniz.

Makalenin özgün haline bu adresten ulaşabilirsiniz.

Ajax ve XML: Beş adet genel Ajax kalıbı

tongucyumruk

IBM Türkiye ve Fazlamesai.net işbirliği ile dilimize kazandırılan yeni bir IBM developerWorks makalesi ile karşınızdayız. Diğer makalelere buradan ulaşabilirsiniz.

Makalenin özgün haline bu adresten ulaşabilirsiniz.

Ajax Konusunda Uzmanlaşma, Bölüm 4

butch

IBM Türkiye ve Fazlamesai.net işbirliği ile dilimize kazandırılan yeni bir IBM developerWorks makalesi ile karşınızdayız. Diğer makalelere buradan ulaşabilirsiniz.

Makalenin özgün haline bu adresten ulaşabilirsiniz.

Yeni kullanıcılar için UNIX ipuçları, Bölüm 2:vi metin düzenleyicisi

butch

IBM Türkiye ve Fazlamesai.net işbirliği ile dilimize kazandırılan yeni bir IBM developerWorks makalesi ile karşınızdayız. Diğer makalelere buradan ulaşabilirsiniz.

Makalenin özgün haline bu adresten ulaşabilirsiniz.

Geniş bir Linux kümesinin kurulması, Bölüm 1: Giriş ve Donanım Konfigürasyonu

tongucyumruk

IBM Türkiye ve Fazlamesai.net işbirliği ile dilimize kazandırılan yeni bir IBM developerWorks makalesi ile karşınızdayız. Diğer makalelere buradan ulaşabilirsiniz.

Makalenin özgün haline bu adresten ulaşabilirsiniz.