14 Ağustos Salı ´12   —   4 Yorum
Eğer bir kaynak arıyorsanız, indexlerin güncelliği, genişliği gibi nedenlerden dolayı, diğer arama motorları yerine Google'ı tercih etmek, iyi bir karar olarak düşünülebilir. Yaptığınız Google aramalarını programatik olarak yapmak ve sonuçları herhangi bir şekilde kullanmanın sayısız örneği verilebilir.

Örneğin, sayfanıza site içi arama eklemek istiyorsunuz. Sayfanıza ait içeriği eğer Google zaten tarıyorsa, site içi aramanız aslında basit bir Google araması ile yapılabilir. Biliyorsunuz Google'da "site:mfyz.com" şeklinde arama yapılacak domaini filtreleyebiliyorsunuz. Dolayısıyla site içi aramanızı, herhangi bir algoritma yazmaya gerek kalmadan, hatta sadece tarayıcıda javascript ile yapabilirsiniz.

Google'un istemci altyapıları için sunduğu JSON tabanlı bir arama APIsi var. Bu api sayesinde normal bir Google araması yapabiliyorsunuz.

Bu API'yi basit bir HTTP isteği ile kullanabiliyorsunuz. Herhangi bir Google araması yapıyormuş gibi bir sorgu gönderip cevabını json olarak alıp işleyebiliyorsunuz.
http://ajax.googleapis.com/ajax/services/search/web?v=1.0
Aramanızı bu URL'e gerekli parametreleri ekleyerek yaptığınızda Google en fazla 8 sonuç verecek şekilde dönüyor.

Cevap olarak dönen JSON içeriği uzun olduğu için burada göstermeyeceğim. Ama birkaç parametreyle gelen sonuç kümesini kullanabilir, sayfalama ve sonuç boyutu gibi parametreler ile sayfalama yapabilirsiniz.

Asıl kullanacağınız sonuç değeri, arama sonuçlarının bulunduğu response.responseData.results sonuç kümesi olacaktır. Basit bir nesne dizisi olan bu değeri javascript ile ekrana doğrudan basabilir veya sunucu taraflı bir kod ile işleyebilirsiniz.

Google bu API ile tek istekte en fazla 8 sonuç döndürüyor. Nedenini kesin bir şekilde bilmiyorum fakat güvenlik nedeniyle olduğunu tahmin ediyorum. Eğer 8'den fazla sonuç göstermek istiyorsanız birden fazla api çağrısı yapmak zorundasınız veya istemci tarafında sayfalama yaparak sonuçları sayfalama ile gösterebilirsiniz.

Sayfalama için API çağırısında göndereceğiniz start parametresi, arama sonuçlarının başlangıç sırasını belirtiyor. Eğer belirtilmezse geçerli değeri 0 olacaktır. Bundan sonra 8, 16, 24... şeklinde ikinci, üçüncü sayfaya ait sonuçları, ek çağrı yaparak yükleyebilirsiniz.

Burada kontrol etmeniz gereken tek şey, toplam bulunan sonuç kümenizde yeterli sonuç olup olmamasıdır. Yani eğer kullanıcı son sayfada ise "Sonraki Sayfa" linkini göstermemeniz gerekir. Basit bir sayfalama için;
toplam sayfa sayısı = toplam sonuç sayısı / sayfa başına düşen sonuç sayısı
bölümünün üste yuvarlanması ile bulunur. Bunu Google size toplam bulunan sonuç sayısını tahmini şekilde söylüyor.

Sonuç kümesindeki response.responseData.cursor.estimatedResultCount parametresi size sayısal olarak tahmini sonuç sayısını söyleyecektir. Sayfa sayısını hesaplayarak gerekli sayfalama navigasyonunu oluşturabilirsiniz.

Örneği kodlayalım

Yazının başlarında verdiğim site içi arama örneğini javascript ile kodlayalım. Doğrudan tüm kodu verip açıklayacağım.
<!doctype html>
<html>
<head>
    <title>Page</title>
	<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
</head>
<body>
	<input type="text" placeholder="Search" id="searchInput" />
	<input type="button" value="Search" id="searchButton" />

	<ul id="searchResultsList"></ul>
</body>
</html>
HTML tarafında ihtiyacınız olan iki ana parça, arama formu ve sonuçları listeleyeceğiniz bir tablo veya liste.

Javascript tarafını jQuery kullanarak yazarak HTTP çağrısını, JSON sonucunu işleme, html elemanlarını yönetme gibi birçok kısmı kolayca halledebilirsiniz.

İlk yapmamız gereken şey arama formundan arama sorgusunu yakalamak ve arama butonundaki tıklama hareketini yakalamak olacak. Bunun için butonun tıklama olayını yakalayıp text alanının içeriğini alıyoruz.
$(function(){
    $('#searchButton').click(function(){
	    search();
    });
});

function search(){
	query = $('#searchInput').val();

	$('#searchResultsList').html('<li class="loading"><span>Aranıyor... (Google Search)</span></li>');

	loadResults(query, 0);
}
Google'un arama APIsini basit bir HTTP isteği ile kullanacağımızı söylemiştim, sonuç bir json nesnesi olduğu için jQuery'nin http istek yardımcı methodlarından getJSON methodunu kullanarak hem isteği yönetebilir hem de cevabı işleyebiliriz.
function loadResults(query, start){
    var apiURL = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&callback=?';
    $.getJSON(apiURL, {
	    q: query + ' site:mfyz.com',
	    rsz: 8,
	    start: start
    }, function(response){
	    var results = response.responseData.results;

	    $('#searchResultsList .nextPage, #searchResultsList .loading').remove();
	    resultsHTML = '';

	    if(results.length){
		    for(var i=0; i < results.length; i++){
			    r = results[i];

			    resultsHTML += '<li><a href="' + r.unescapedUrl +
				    '"><span class="title">' + r.title +
				    '</span><span class="preview">' + r.content +
				    '</span></a></li>';
		    }

		    if (response.responseData.cursor.estimatedResultCount > 8) {
			    resultsHTML += '<li class="nextPage"><a href="#" ' +
				    'onclick="loadResults(\'' + query + '\', ' + (start + 8) +
				    ');">Daha fazla sonuç göster</a></li>';
		    }
	    }
	    else {
			//resultsHTML = '<li class="notfound">Aradığınız kriterde içerik bulunamadı.</li>';
	    }

	    $('#searchResultsList').append(resultsHTML);
    });
}
Yukarıdaki javascript methodu basit bir HTTP çağrısı yapıp gelen json cevabını işliyor. Basitçe bir liste elemanı (ul) içeriği oluşturuyoruz. Gelen sonuç dizisini bir HTML koduna dönüştürüyoruz. Methodun sonunda ise oluşturulan HTML kodunu liste elemanınımıza ekliyoruz.

Bu methodda gördüğünüzü ilk parametre, arama formundan gelen arama sorgusu, ikinci parametre ise, sayfalama için Google APIsine gönderilecek olan sonuç başlangıç indeksi. Bu sayede bu fonksiyonu tekrar çağırarak ikinci, üçüncü ve diğer sayfalardaki arama sonuçlarını yükletebiliyoruz. İlk arama yapılırken yani yukarıda ilk verdiğim javascript kodunda çağırılan arama methodu "0" başlangıç parametresi ile çağrılıyor.

Bu methodda dikkatinizi çekmiş olan bir nokta da arama parametresin sonuna "site:mfyz.com" eklemiş olmam. Sorguya eklenen bu kısım, yapılan aramanın sonuçlarında sadece o domain'deki sayfaları döndürmesini sağlayacaktır.

Yukarıdaki HTML çıktısını CSS ile işleyebilirsiniz veya arama formunu "ara" butonu ile değil eş zamanlı arama gibi her tuşa basıldığında belirli bir zaman aşımı ile girilen kelimeyi yakalayıp arama yapabilirsiniz.
Her yerde ajax kullanımından geçilmez oldu. Ajax, hem kolaylıklarından hem de RIA'in (Rich Internet Applications) temeli olduğundan popülerliği gitgide artıyor. Karşımıza her yerde çıkıyor ve artık jquery gibi frameworkler sayesinde ajax çağrıları yapmak için tek satırda 5-10 karakterlik bir javascript kodu bile yeterli oluyor.

Bir php kodunda genelde çıktı verirken normal html etiketleri kullanıp tüm sayfayı tasarlıyoruz fakat genelde bu sayfalar bir verit yapısının görüntüleri (view) oluyor ve aynı çıktıyı javascript ile alıp basmak, hatta bazen ajax ile dışarıya bile vermek gerekebiliyor.

Artık az sonra bahsedeceğim method ile, dosyaları tasarlarken 2 türlü kullanımı için tasarlayacaksınız. Yani hem normal erişim ile hem de o sayfayı ajax ile kullanabilecek şekilde düşüneceksiniz. Burada ajax çağrısı olduğunu yakalamak için genel bir teknik olarak get methodu ile bir değişken gönderip onu izleyebilirsiniz. Mesela kayit.php?ajax=1

Bu, işin ilkel noktası. Ajax çağrısı olup olmadığını yakalamak için artık sunucu ortam değişkenleri arasında $_SERVER[HTTP_X_REQUESTED_WITH] değişkeni ile çağrı türünde değer xmlhttprequest ise yapan client'in kullandığı protokolu alabiliyorsunuz. Genellikle içindeki değer "xmlhttprequest" oluyor zaten. Yani bir çağrının ajax olup olmadığını bu şekilde kolayca kontrol edebilirsiniz.

Ufak şekilde örneklemek gerekirse :
$kisiler = array('Fatih', 'Ahmet', 'Mehmet', 'Zeynep');

// ekrana basalim
print "<ul>";
foreach( $kisiler as $kisi ){
    print "<li>$kisi</li>";
}
print "</ul>";
Bu kodda isimleri liste çıktısı alırsınız. Eğer javascript ile bu veriye erişmek istersek ajax çağrısı ile bu sayfayı çağırabiliriz ama işlenmiş html kodundan o isimleri almak zor olur. Ya da sadece belirli bir kısmını almak isteyebiliriz. Bunun için basitçe :
$kisiler = array('Fatih', 'Ahmet', 'Mehmet', 'Zeynep');

// ajax cagrisi ise json donelim
if( $_SERVER[HTTP_X_REQUESTED_WITH] ){
    die( json_encode($kisiler) );
}

// ekrana basalim
print "<ul>";
foreach( $kisiler as $kisi ){
    print "<li>$kisi</li>";
}
print "</ul>";
Bu kod eğer normal istek yapılırsa
<ul><li>Fatih</li><li>Ahmet</li><li>Mehmet</li><li>Zeynep</li></ul>
çıktısı; ajax ile istek yapıldığı zaman :
["Fatih","Ahmet","Mehmet","Zeynep"]
çıktısı verecektir.

Bu şekilde gelen çağrılardan ajax olanlarına sadece kisiler dizisini jsona çevirip sayfayı durduruyoruz. Javascript ile gelen json'u kolayca işleyebilirsiniz.

Burada json'a çevirip javascriptde işlemek zorunda değilsiniz. Ajax ile aldıktan sonra içeriği basmak istediğiniz yere uygun html kodu da üretebilirsiniz bu noktada.


Hazırlayan : Mehmet Fatih YILDIZ
6 Şubat Çarşamba ´08   —   11 Yorum

Ajax Nedir?


Ajax aslında modern tarayıcıların desteklediği XMLHttpRequest özelliğini kullanarak sayfa yenilemeden istek yapıp cevap almamızı sağlayan birşeydir.

XMLHttpRequest hakkında bilgi için buraya tıklayın.

Çoğu sitede görmeye alışık olduğumuz birşey haline gelmeye başladı aslında ajax. Çünkü web 2.0 uygulamalarının neredeyse ana çatısını oluşturuyor. Web 2.0 yazılımları 2.0 yapan şey aslında kullanıcı etkileşimi ve bu etkileşimden kastımız aslında bir web uygulamasının sanki masaüstü uygulaması gibi çalışması. Bu da aslında Sunucu-Kullanıcı istek-cevap ilişkisini sayfa yenilemeden yani kullanıcı için hazırladığınız ARAYÜZü yenilemeden birçok işi yapmaktan geçiyor. Tabiki bunu da XMLHttpRequest'i kolay hale getirip kullanmamızı sağlayan ajax kütüphaneleri yapıyor.

İnternette çok sayıda ajax kütüphanesine rastlayabilirsiniz, genellikle 3-5 satır kod ile istek ve cevabı işleyebiliyor. Fakat bu sitede mootools odaklı gittiğim için bu dökümanda mootools ile ajax eklentisini kullanmayı göreceğiz. Diğer kütüphaneleri de kullanarak farkı görebilirsiniz.


Mootools ve ajax


http://mootools.net/ adresinden mootools'u ajax seçeneği ile derleyerek indirmelisiniz. Sayfa başında mootools.js dosyasını include edin. Basitçe ajax isteği için kod bloğu şöyle :
new Ajax('icerik_alinacak_dosya.php', {
  method: 'get',
  update: $('icerik_basilacak_element_id')
}).request();
Çoğu mootools eklentisi, nesnesindeki gibi zorunlu kısımlar nesneye ilk parametrelerde veriliyor. Sonra da bir ayar dizesi (nesne olarak)
şeklinde 2. parametre belirleniyor.

Burada ilk parametre string olarak istek yapılacak url, yani istek yapılacak dosya adı. Bir php dosyası veya html dosyası veya dışarıda bir web sayfası urlsi olabilir. Ayar dizesindeki parametrelerden önemli olanların açıklamaları da şöyle :
data            Gönderilecek url parametreleri. Aşağıda açıklamasını yapacağım.

method          İstek methodu, get veya post olabilir.

update          Cevap geldiği zaman içeriğin yerleştirileceği html nesnesi adresi

onComplete      Cevap geldiği zaman işletilecek javascript kodu, fonksiyon olarak
                belirtilmesi gerekiyor ve fonksiyonun ilk parametresi cevap dönen
                içeriği string olarak fonksiyona sokar.

evalScripts     XMLHttpRequest ve çoğu diğer ajax kütüphanelerindeki ana sorun,
                cevap gelen içerik içerisinde eğer bir javascript kod bloğu veya
                dosya include varsa Normalde bu kısımlar çalıştırılmaz.
                Bu popüler bir sorundur, bu parametreye true değeri vererek
                bu sorunu aşabilirsiniz (Mootools'u seviyorum).
Şimdi bu parametreleri örneklerle açıklama çalışacağım. Önce bir bağlantıyı (link) ajax ile çağırıp dönen içeriği ekranda bir bölüme yazdıralım.
...
<a href="#" onClick="ajax_istek('hakkinda.html');">Hakkında</a>
<a href="#" onClick="ajax_istek('iletisim.html');">iletişim</a>
...
<div id="icerik"></div>
...
Bu sayfamız olsun. Linke tıklantığında ajax_istek fonksiyonunu url parametresiyle çağırıyor görüldüğü gibi. Ayrıca icerik kimlikli bir div var. İçeriği buraya basacağız.
function ajax_istek(hedef){
  new Ajax(hedef, {
    update: $('icerik')
  }).request();
}
Basit bir ajax isteği gördüğünüz gibi. Şimdi bunu biraz geliştirelim ve linke tıklandığında sayfa içeriği "Yükleniyor" olsun, içerik geldiğinde de zaten yükleniyor kalkacak.
function ajax_istek(hedef){
  $('icerik').setHTML('Yükleniyor');
  new Ajax(hedef, {
    update: $('icerik')
  }).request();
}
Biraz daha geliştirip yüklenme işlemi bittiğinde birşeyler yaptıralım.
function ajax_istek(hedef){
  $('icerik').setHTML('Yükleniyor');
  new Ajax(hedef, {
    update: $('icerik'),
    onComplete: function(){
      alert("Sayfa Yüklendi");
    }
  }).request();
}
Örneğin burada alert yerine sayfanın bir köşesinde bu uyarıyı gösterip gizletebilirsiniz, Ya da içeriği basmayıp bir işlem yaptırabilirsiniz. Bunu örneklemek için işe biraz form katacağım. mfyz.com'da üye kayıt sayfasında kullanıcı adı kontrol mekanizmasını anlatacağım. Kayıt formuna girdiğinizde kullanıcı adı seçip yazdıktan sonra bilgi giriş kutusundan çıktığınızda (yani başka bir nesenye odaklandığınızda) otomatik olarak kullanıcı adının veritabanında olup olmadığını sorgulayıp cevabı geliyor ve ona göre kutu yeşil veya kırmızı oluyor farkında iseniz.
<input type="text" id="kadi" onBlur="kullanici_adi_kontrol_et(this.value);">
şeklinde bir inputum var ve onBlur olayına yani kutudan odak gittiğinde bir fonksiyon çağırıyorum.
function kullanici_adi_kontrol_et(kadi){

  // kullanici adini veritabanindan kontrol
  // edecek php dosyasina sorgulatiyorum
  new Ajax('kullanici_adi_kontrol.php', {
    method : 'get',
    data: 'kadi = ' + kadi,
    onComplete: function(cevap){
      if(cevap == 'OK'){
        // kullanici adi giris kutusunun kenrlığını yeşil yapalım
        $('kadi').setStyles({
          'border' : '1px solid green'
        });
      }else{
        // kullanici adi giris kutusunun kenrlığını kırmızı yapalım
        $('kadi').setStyles({
          'border' : '1px solid red'
        });
        // ve gelen hatayi basalim
        alert(cevap);
      }
    }
  }).request();

}
Bakın burada 2 parametreyi örnekledim. Birisi data parametresi diğeri de update kullanmak zorunda olmadığımız. Ayrıca onComplete'de tanımladığımız fonksiyonun ilk parametresi yani cevap değişkeni ajax ile dönen içeriği alıyor.

Yukarıda yaptırdığım işlem özetle şöyle: kullanici_adi_kontrol.php dosyası get methodu ile gelen kadi değişkenindeki string'i veritabanında aratıyor. Eğer yoksa ekrana sadece "OK" basıyor. Eğer başka bir hata varsa hatayı basıyor. Mesela kullanıcı adında geçersiz karakterler var veya veritabanında o kullanıcı mevcut. Yani hata varsa "OK" dışında birşeyler oluyor. PHP hatası da olabilir.

onComplete'da cevap değişkenini kontrol ettiriyorum. Eğer "OK" string'i ise kullanıcı adı yok yani ekrana başarı sinyali vermem gerek. Ben de etkileşimli olması için bilgi giriş kutusunun çerçevesini yeşil yapıyorum. Mootools ile css özniteliklerini değiştiriyorum. Eğer OK değilse bir hata vardır. Çerçeveyi kırmızı yapıp cevap değişkenini yani dönen hatayı ekrana yazdırıyorum alert ile.

Bu istekleri ve cevap işleme tekniklerini uygulamanıza göre geliştireceksiniz, Zaten burada o istek-cevap ilişkisinin boyutu önemli değil. Yani çok büyük istekler de yapabilirsiniz çok küçük de.


Formları otomatik ajax ile post etmek


Mootools'da çok güzel bir özellik daha var. Formunuzu çok pratik bir şekilde ajax ile göndermek.
<form id="bilgi_formu" action="kayit.php" method="post">
  Ad : <input type="text" name="ad"><br>
  Soyad : <input type="text" name="soyad"><br>
  <input type="submit" value="Gönder">
</form>
böyle bir formunuz olduğunu varsayalım. Oldukça basit yani. Gönder butonuna basıldığında normal şekilde kayit.php dosyasina post methodu ile 2 değişken gidiyor biliyorsunuz. kayit.php'de de bu değişkenleri işliyorsunuz.
$('bilgi_formu').send();
kodu sayesinde formu ajax ile gönderebilirsiniz. Gideceği url, methodu ve datası otomatik olarak bulunup gönderiliyor. Örnek kullanımını da şu kodlar özetleyebilirim :
<form id="bilgi_formu" action="kayit.php" method="post">
  Ad : <input type="text" name="ad"><br>
  Soyad : <input type="text" name="soyad"><br>
  <input type="button" onClick="gonder()" value="Gönder">
</form>

<script>
function gonder(){
  $('bilgi_formu').send({
    onComplete: function(){
      alert("Başarıyla gönderildi");
    }
  });
}
</script>
Gördüğünüz gibi submit yerine buton kullanarak bir fonksiyon çağırıyorum. ajax için kullandığımız send fonksiyonunun ilk parametresi ajax için kullandığımız ayar dizesi oluyor. Yani update ile gelen içeriği biryere yazdırabilir veya ajax için uyguladığımız taklaları burada da attırabilirsiniz.


Mootools ajax dökümantasyonu :http://docs.mootools.net/Remote/Ajax.js
Ajax Demoları :http://demos.mootools.net/Ajax
http://demos.mootools.net/Ajax.Form
Not : Nesnelere olay ekleyip bu işleri yaptırmak daha kolaydır. Mesela form ajax ile post etmek için submiti butona çevirmek ilkel bir mantıktır. Forma doğrudan onSubmit olayı ile kural belirleyerek yaparız aslında bu işlemleri. Fakat dökümanda daha fazla kafa karışıklığı yaratmaması için doğrudan fonksiyon çağırtıp işlem yaptırdım.
Hazırlayan : Mehmet Fatih YILDIZ
20 Ağustos Pazar ´06   —   4 Yorum

XMLHttpRequest Nedir?

XMLHttpRequest Microsoft'un bize kazandırdığı ender nimetlerden birisidir. Eskiden bi zamanlar ypaılmış tarih zırvalıklarına gerek olduğunu düşünmüyorum.

İlk önce Internet Explorer'ın bir ActiveX denetimi mi obje si midir nedir öyle çalışıyormuş ve XML ile tarayıcı yenilemeden url bazlı iletişim saplıyormuş. Tam yapılış amacını da bilmiyorum. Fakat daha sonra geliştirilmiş ve bazı web uygulamalarında kullanılmaya başlanmış. Ardından da Mozilla ve KHTML (Konqueror, Safari) gibi browser'lar da xmlhttprequest desteği sağlamaya başlamışlar. Tabi biz XMLHttpRequest olarak tanımadık bunu, birkaç (ne kadar bilmiyorum ama hatırladığım kadarıyla 5-6) sene kadar kullanıldıktan sonra AJAX denilen bir kod adıyla xmlhttprequest objesini kullanan bir kütüphane geliştirildi. Evet biz bu nesneyi ajax, sajax gibi adlarla tanıdık. Geliştiriciler için kolay (bence daha zor) javascript kütüphaneleri geliştirildikten sonra çok kısa sürede popüler kullanılan şeyler oldular.

Benim XMLHttpRequest ile maceram ise çook yeni, herhalde 5-6 ay olmuştur bununla tanışalı. Ajax kütüphanesi ilk çıktığında aşırı antipatik karşılamıştım. Duyduğum şeyler de zaten bu şeyin yeni olmadığı konusuydu, sonraki araştırmamda zaten bunu öğrendim. Sayfa yenilenmeden işlem yapmayı ben iframe'ler ile hallediyordum daha önceleri fakat xmlhttprequest sayesinde daha kompleks kodlar yazabiliyorum.

Tam olarak ne işe yapar?

Bu nesne söylediğim gibi ilk başta XML kodları şeklinde haberleştiriyormuş tarayıcı ile sunucuyu. Ama daha sonra plain text aktarımı da katılmış ve günümüzde biz genellikle sade metin transferi kullanıyoruz. Tabiki sade metin ile yapamadığımız bazı şeyleri XML transferi ile daha rahat çözebiliyoruz.

Tam olarak, sayfa yenilenmeden içerik alımı veya veri gönderimi yapmamızı sağlar. Şu an en yaygın bilinen proje olarak gmail'in arabirimini örnek verebilirim. Gmail'de mesaj kutularınız arasında veya mesaj formlarında sayfanız yenilenmez bildiğiniz gibi. Sadece gerekli içerik alınıp gerekli forma sokulup ekrana yerleştirilir. Aynı şekilde bir mesaj gönderdiğinizde de sonuç, sayfa yenilenmeden ekrana gelir “Mesaj gönderildi” veya hata mesajları.

Neden kullanmalıyız?

En önemli artısı, sayfa yenilenmediği için değişken olmayan diğer kısımların hem sunucuda yeniden işlenip sunucuyu yorması engellenir; hem de kullanıcıda tekrar yüklenmediğinden bant genişliği boşa harcanmaz, aynı zamanda kullanıcı tarafında sayfalarda daha hızlı işlem yapılır.
Sayfayı yenilenmeden içeriğimizi alıyor olmamız, web uygulamamıza bir masaüstü uygulama görünümü katar. Kurumsal projelerde bu tarz artılar her zaman iyidir. Çünkü web uygulamalarının tek sıkıntısı, hızlı ve pratik çalışamıyor olmanızdır. Yani kurumsal amaçla çalışan bir yazılım masaüstündeki yazılımlar gibi pratik kullanılan şeyler olmalıdır.

Sorunlar neler? (Eksiler/Dezavantajlar)

Böyle bir nesneyle yazılmış kütüphane kullanmak çyle çok daha rahat bişey değil. Tabiki bazı sorunlar var.
Türkçe karakter sorunu, eğer içerik aldığınız sayfa içinde hangi karakter seti ayarlıysa ona göre gelir. Bunun çözümü için içeriği aldığınız sayfa'ya ya HTML etiketi ile karakter seti ayarlaması belirtmeniz gerek. Ya da herhangi bir web programlama dili kullanıyorsanız onun sayfa başlık bilgisi fonksiyonlarını/methodlarını kullanarak karakter seti ayarlamanız gerekecektir. Mesela php için;
<?php
header("Content-Type:text-html;charset:utf-8");
?>
ile sayfa başlık bilgisini (header) ayarlayabilirsiniz. Böylece Türkçe karakter problemini çözmüş olursunuz. (Eğer iso kullanıyorsanız ona göre ayarlayın)

İkinci sorun ise iç sayfalara koyduğunuz javascript kod bloklarıdır.
-- İÇERİK --

<script>
  document.write('Selam');
  alert('Merhaba');
  // ...
</script>

-- İÇERİK --
şeklinde tanımladığınız tüm kodlar ignore edilmiş olacaktır.
Bu sorunların hepsini kolayca çözmek ve daha pratik ajax kullanmak istiyorsanız mootools kullanmanızı öneririm.
Hazırlayan : Mehmet Fatih YILDIZ

Popüler Etiketler

javascript js startups mssql php coding cms örnek kod imza html signature apple mail wordpress dokuman plugin wireless ipucu less css language development style facebook api opengraph fql optimization url twitter widget rss parse xml spam doritos kampanya tytz wanda assets framework blog mootools google chart osx applications free www subdomain redirect crossdomain apache kurulum istatistik social sosyal medya meta ie css3 support browser mobile nedir mysql sql optimizasyon analyse procedure htaccess route router mod_rewrite pharma hack db code query injection sitemap generator digital subversion svn table date tarih portfolio server media mfyz iphone internet explorer html5 gimp howto nasıl job developer mdb2 pear network ui ux icons ajax xmlhttprequest ios ipad app store store in-app purchase purchase verification integration storekit itunes connect itunes ruffles firefox download web app open source design laptop notebook share ubuntu workspace cookie cache browsers search jquery oyun linux konsol login box player license lisans terminal radio button switch graph database service subscription connect kitap seo object export tool macosx app while windows session proje icon ikon grafik xhtml newsletter git version control deployment lifestream select phpstorm jetbrains pgsql ide editor bootstrap compile kontrol yapıları if tebrik iOS webkit music fstab ntfs screen diff calendar form compiler on-the-fly zaman prepare execute banner logo input textarea insanlar auth http link statistics regex internet