Bilqi Forum  

Geri git   Bilqi Forum > > >

ÖDEVLERİNİZİ BULMAKTA ZORLANIYOMUSUNUZ!

SORUN ANINDA CEVAPLIYALIM.

TÜM SORULARINIZA ANINDA CEVAP VERİLECEKTİR !

Sitemize Üye Olmadan Konulara Cevap Yazabilir Ayrıca Soru Cevap Bölümüne Konu Açabilirsiniz !

Yeni Konu aç Cevapla
 
Seçenekler Stil
Alt 01-07-2009, 17:39   #1
Yaso
Operator
 
Yaso - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: Jan 2008
Mesajlar: 32.967
Tecrübe Puanı: 1000
Yaso has a reputation beyond reputeYaso has a reputation beyond reputeYaso has a reputation beyond reputeYaso has a reputation beyond reputeYaso has a reputation beyond reputeYaso has a reputation beyond reputeYaso has a reputation beyond reputeYaso has a reputation beyond reputeYaso has a reputation beyond reputeYaso has a reputation beyond reputeYaso has a reputation beyond repute
Standart Ajax Nedir? (Asynchronous JavaScript and XML)

Ajax Nedir? (Asynchronous JavaScript and XML)
Ajax Nedir?

Ajax, web aplikasyonları için yeni bir yaklaşımdır ve Asynchronous JavaScript and XML'in kısaltmasıdır. Doğru kullanıldığı zaman ASP.Net ve diğer server tabanlı teknolojilerden çok daha hızlı kullanıcının isteklerine cevap verebilen daha interaktif çözümler bu yeni yaklaşım sayesinde üretilebilmektedir.

AJAX kullanılan Asp.Net tarzı web aplikasyonlarında server'a form gönderme ve cevap bekleme kısmı tamamen ortadan kaldırılmış. Asp.Net tarzı server tabanlı web aplikasyonlarında server kullanıcı tarafından gönderilen isteklere her kullanıcı bir istek gönderdiğinde cevap vermek zorunda olduğundan yazılımın cevap verme hızı web serverin hızıyla doğru orantılıydı. Web serverın hızlı cevap veremediği zamanlarda da kullanıcının web aplikasyonundan aldığı verim büyük oranlarda düşebiliyordu.

AJAX kullanımında browserla web server arasındaki veri alışverişi dramatik oranda azaltılıyor ve aynı zamanda da web server'in işlem gücü bu tür işlemler için kullanılmamış oluyor. Yani sayfa yenilemeden işlem yapılabiliyor.
Örneğin forumumuzda mesajı düzenlemek istediğimiz zaman Mesajı Düzenleye tıklıyoruz ve düzenlememizi yaptıktan sonra Tamam diyerek değişikliği yapıyoruz. Bu işlemler sırasında sayfa hiç yenilenmiyor.


Ajax aşsağıdaki teknolojilerin bir araya getirilmesiyle oluşmuş;
Javascript
XHTML ve CSS'in ortak kullanımı
Document Object Model kullanarak dinamik sayfa gösterimi ve interaktif kullanıcı arabirimi.
XML ve XSLT kullanılarak veri alim/gönderimi ve manipulasyonu
XMLHttpRequest kullanılarak yapılan asenkron veri alımı
Ajax bu özellikleri ile herkesin ilgisini çekemektedir ve Ajax kullanılarak bir çok uygulama geliştirilmiştir. Google tarafından geliştirilen gmail bunlara bir örnektir.

Güzel bişeymiş bu AJAX, nerden indiririz bunu?
AJAX indirilebilecek bir paket, elle tutulur veya gözle görülür birşey değildir. AJAX, yeni bir yazılım mimarisi yaklaşımıdır.

Basit bi örnek verelim. Şöyle bir uygulamamız olduğunu düşünelim. Bir sayfada aşağıdaki resimdeki gibi solda ufak resimler (thumbnail) sağında ise bu ufak resimlere tıklayınca büyük olarak getirileceği büyük resmimiz olsun. Kullanıcı hangi resmi tıklar sağda onu büyük olarak görecek.

<script>
function resimDegistir(resim) {
document.buyukresim.src= resim;
}
</script>
<img src="buyukresim.jpg" name="buyukresim">
<a href="#" onclick="javascirpt:resimDegistir('buyukresim1.jpg ');"><img src="kucukresim1.jpg" border="1"></a>
<a href="#" onclick="javascirpt:resimDegistir('buyukresim2.jpg ');"><img src="kucukresim2.jpg" border="1"></a>
<a href="#" onclick="javascirpt:resimDegistir('buyukresim3.jpg ');"><img src="kucukresim3.jpg" border="1"></a>


Resimlerin küçük hallerinine tıklanınca büyük halleri büyük resim alanında görüntülenecektir. Bu uygulama birçoğumuz tarafından yapılmış ve internette çok kolay bulabileceğimiz bir uygulamadır. Özünde bu uygulamada bir AJAX uygulamsıdır. resimDegistir fonksiyonu ile sunucudan resim dosyası istenmektedir.

Yazının başından beri belirtilen (yukarıdaki örneğin ışında :-) ) AJAX tanımını tekrarlamak istiyorum. AJAX sunucudaki PHP dosyalarının ( Bu dosyalar herhangi bir sunucu tabanlı yazılımlar olabilir Java, ASP ...) tarayıcı yenilenmeden (Javascript le) çağırılması ve oluşan çıktının (HTML, XML yada düz metin olabilir) tarayıcıda gösterilmesinde ibarettir.

Bu durumda AJAX ın üç temel bileşini olduğu söylenebilir. Tarayıcıda tetikleme işlemlerinin sağlayan ve dönen veriyi gösteren Javascript, sunucudaki tetiklenen betik ve sunucudan tarayıcıya döneni veri formatı.


Tarayıcıdaki javascript:

Sayfayı yenilemeden sunucudan istek göndermeyi ve sonuç almayı sağlayan javascript sınıfı XMLHttpRequest sınıfıdır. Bu sıkça kullanılan tarayıcıların (IExplorer, Firefox, Opera) hepsi tarafından desteklenmektedir.

Oluşturduğunuz XMLHttpRequest nesnesi sunucuya GET ve POST yöntemiyle istek göndermenizi sağlar. Bunu send() fonksiyonu ile yaparız.


<script>
var http;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
// IE ise activex ile çağır
http = new ActiveXObject("Microsoft.XMLHTTP");
}else{
http = new XMLHttpRequest();
}
http.open('get', 'dosya.php');
http.send(null);
</script>


Yukarıdaki kod basitce sunucudaki dosya.php dosyasını çağırır. Burada kullanılan open() işlevi sunucudaki dosya ile hangi methodla alış veriş yapacağımızı belirtmemizi sağlar. send() işlevi ise sunucuya göndereceğimiz ek değişkenleri belirtmemizi sağlar. Eğer hiç değişken göndermeyeceksek bile bu işlevi 'null' argümanı ile çağırmalıyız.

Buraya kadar ki kodlar sunucudaki dosyaya istek göndermekle ilgili idi. Şimdi dosyanın çalışması sonucu oluşan çıktıyı tarayıcı tarafında nasıl göstereceğimize geçelim. XMLHttpRequest ile sunucu ile veri alışverişinin durmunu takip edebiliyoruz. Nesenenin readyState özelliği ile ve onreadystatechange tetiğiyle (trigger) alışverişin durumunu takip edip başarılı olup olmadığını anlayabiliyoruz. Alışverişin durumunu belirten readyState özelliğine 5 ayrı atanır.
0 = Alışveriş başlamadı
1 = Sunucuya istek gönderiliyor
2 = Sunucuya istek gönderildi
3 = Alışveriş devam ediyor
4 = Alışveriş sonlandı
Bu değerlere göre alışverişin durumu takip edip işlemlerimizi yapabiliriz. gmail kullananlar bilirler mail gönderirken veya herhangi bir işlem yaparken işlemin devam ettiğine dair gmail sayfanın tepesine uyarılar yazar. readyState değiştiğini onreadystatechange tetiği ile takip edebilir ve bu değişime göre fonksiyonları atayabiliriz. Bu durumda yukarıdaki kodumuza söyle bir ekleme yapabiliriz.


<script>
var http;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
// IE ise activex ile çağır
http = new ActiveXObject("Microsoft.XMLHTTP");
}else{
http = new XMLHttpRequest();
}
http.open('get', 'dosya.php');
http.onreadystatechange = degisiklikOldu;
http.send(null);
funciton degisiklikOldu {
if(http.readyState == 4){
// alış veriş bitti
} else {
// işlem devam ediyor
}
}
}
</script>


onreadystatechange tetiği readyState değerinin her değiştitiğinde degisiklikOldu() işlevini çağırır. degisiklikOldu() içinde de eğer alışveriş tamamlanmış ise ilgili işlemler yapılır.

Şimdi ise sunucudaki dosyanın gönderdiği verinin nasıl gösterileceğine bakalım. Veri alışverişi bittiğinde oluşturduğumuz XMLHttpRequest nesnesinin responseText öğesinin değeri sunucudan gelen veri bulunur. Bu veriyi sayfanın istediğimiz yerinde kullanabiliriz.

Yukarıda yazdığımız kodu biraz daha değiştirerek şu hale getirelim.


<html>
<body>
<script>
var http;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
// IE ise activex ile çağır
http = new ActiveXObject("Microsoft.XMLHTTP");
}else{
http = new XMLHttpRequest();
}
function ajaxKullan() {
http.open('get', 'dosya.php');
http.onreadystatechange = degisiklikOldu;
http.send(null);
}
funciton degisiklikOldu {
if(http.readyState == 4){
document.getElementById('gosterDiv').innerHTML = http.responseText;
} else {
// işlem devam ediyor
}
}
}
</script>
<a href="javascript:ajaxKullan()">Ajax Kullan</a>
<div id="gosterDiv"></div>
</body>
</html>



Bu dosyadaki 'Ajax Kullan' linkine tıklanında 'dosya.php' oluşturduğu çıktı sayfa yenilenmeden tarayıcımızda görünür.

'dosya.php' dosyasına GET yöntemiyle değişken gönderebiliriz.

http.open('get', 'dosya.php?degisken1=1&degisken2=2');

Bu değişkenlere dosya.php de $_GET dizisini kullanarak ulaşabiliriz.

Yada POST yöntemini kullanmak istiyorsak aşağıdaki gibi değer gönderebiliriz.

http.open("post", "dosya.php");
http.send("degisken1=1&degisken2=2");

Bu değişkenlere dosya.php de $_POST dizisini kullanarak ulaşabiliriz.

Bu yazıda basitçe AJAX uygulamasının temel işlemleri anlatılmaya çalışılmıştır. Bu temel işlevleri kullanarak kendi uygulamalarınızı yapabilirsiniz.

Kaynak: Türkiye PHP Grubu
__________________



Tüm bölümlerimize yetkili alımları başlamıştır başvurmak için aşağıdaki linke tıklayınız


Yaso isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Cevapla

Bookmarks


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler
Stil

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
Sizin Konu Yanıtlama Yetkiniz var
You may not post attachments
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-KodlarıKapalı

Gitmek istediğiniz klasörü seçiniz

Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
ULUSLARARASI TİCARET YÖNETİMİ MESLEK ELEMANI nedir? Egitimi,iş imkanları nedir? Yaso Üniversiteler 0 09-14-2008 16:05
DİYETİSYEN (BESLENME UZMANI) nedir? Egitimi,iş imkanları ve çalışma alanları nedir? Yaso Üniversiteler 0 09-14-2008 09:58
AJAX - PSV EINDHOVEN / Hollanda Süper Kupa Maçı naklen kanal1 de Yaso Şifreli uydu yayınları 0 09-12-2008 13:58
Javascript Dersleri 1.0 Yaso Araçlar 0 06-25-2008 00:40
JavaScript Collector 1.1.0.4 Yaso Araçlar 0 06-18-2008 12:21


Şu Anki Saat: 23:17


İçerik sağlayıcı paylaşım sitelerinden biri olan Bilqi.com Forum Adresimizde T.C.K 20.ci Madde ve 5651 Sayılı Kanun'un 4.cü maddesinin (2).ci fıkrasına göre TÜM ÜYELERİMİZ yaptıkları paylaşımlardan sorumludur. bilqi.com hakkında yapılacak tüm hukuksal Şikayetler doganinternet@hotmail.com ve streetken27@gmail.com dan iletişime geçilmesi halinde ilgili kanunlar ve yönetmelikler çerçevesinde en geç 1 (Bir) Hafta içerisinde bilqi.com yönetimi olarak tarafımızdan gereken işlemler yapılacak ve size dönüş yapacaktır.
Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimisation provided by DragonByte SEO v2.0.36 (Lite) - vBulletin Mods & Addons Copyright © 2017 DragonByte Technologies Ltd.

Android Rom

Android Oyunlar

Android samsung htc

Samsung Htc

Nokia Windows