Hazır Kütüphaneler orhan
$A Fonksiyonu
Diziler (array) üzerinde hâkimiyet kurmamızı sağlayan bir fonksiyondur. Parametre olarak bir dizi veya dizi olmayan herhangi bir şey kabul eder ve bir dizi döndürür. Değişkenlerimizi diziler olarak işlemek veya diziler kullanarak sonuçlar elde etmek istiyorsak bu fonksiyonu kullanmalıyız. Değerleri “null”, “undefined” ve “false” olanlar boş bir dizi haline getirilir. Bu fonksiyonun kullanımına örnek olarak “document.getElementsByTagName()” sonuç olarak bir dizi döndürmez, “NodeList” deyimi ise Internet Explorer ile uyumlu değildir. Bu tür durumlarda “$A()” fonksiyonunu kullanabiliriz.
var paras = $A(document.getElementsByTagName('p'));
paras.each(Element.hide);
$(paras.last()).show();
Burada gördüğünüz gibi diziler ile çalışırken "each" metodunu kullanmamız gerekmektedir. Prototype’ın diziler üzerindeki bu tür metotları ile işlemler oldukça kolaylaşabilmektedir. Bu konuya Diziler bölümünde daha ayrıntılı değineceğiz.
$H Fonksiyonu
Bir "Hash" nesnesi yaratır
$R Fonksiyonu
Bir "ObjectRange" nesnesi yaratır. "ObjectRange" ardışık değerler içeren sayısal, metinsel veya anlamlı ifadeler kümesini belirten bir terimdir.
$R(0, 10).include(10)
// true
$A($R(0, 5)).join(', ')
// '0, 1, 2, 3, 4, 5'
$A($R('aa', 'ah')).join(', ')
// 'aa, ab, ac, ad, ae, af, ag, ah'
$R(0, 10, true).include(10)
// false
$R(0, 10, true).each(function(value) {
// 0'dan 9'a 10 defa istenen değer
});
$w Fonksiyonu
Bir metni (string) parçalayarak dizi değişken haline getirir. Beyaz boşluklar (whitespaces) ayraç olarak değerlendirilir.
$w('elma armut kivi çilek').each(function(fruit){
var message = 'Canım ' + fruit + ' yemek istiyor';
// diğer işlemleri yap
})
Ya da diğer hoş kombinasyonlardan biri:
$w('reklamAlani AnaMenu YorumLinkleri').each(Element.hide);
// boşluk şeklinde verilen ID'lere sahip elementleri gizler
Try.these Fonksiyonu
Try.these() fonksiyonu, değişik JavaScript yürütmelerine aldırmaksızın çoklu tarayıcı uyumlu olan (across browser) harika durum yönetimleri geliştirmenize olanak tanıyan oldukça kullanışlı bir fonksiyondur. Kendi kodlarınız ile tarayıcı belirleme veya nesne yakalama işlemleri yapmak yerine bu fonksiyonu kullanarak bir olay dizisi içerisinde hata oluşana kadar diziyi takip edip hata durumunda bir sonraki seçeneğe geçen uygulamalar yazabilirsiniz. Örneğin:
return Try.these(
function() {
alert("birinci mesaj");
jkgjhgjhg // kasıtlı hata yaratıyoruz
alert("birici hata!");
return 1;
},
function() {
alert("İkinci");
return 2;
}
);
Örnekteki kod bloğunda ilk kısımda yer alan kasıtlı hataya kadar olan kısım çalıştırılacak sonra ikinci kısma geçecektir. Böylece gelişmiş durum yönetimleri elde edebilmekteyiz.
PeriodicalExecuter
Belli bir fonksiyonun belirli bir aralıklar ile tekrar çağırılması işlemini gerçekleştirmek için kullanılan bu fonksiyon ile "setInterval()" fonksiyonundaki gibi milisaniye değil saniye cinsinden işlemin tekrarlanma sıklığını belirtebilmekteyiz.
new PeriodicalExecuter(HaberleriYukle, 10);
function HaberleriYukle() {
// Ajax işlemleri ve/veya DOM ağacı güncellemelerini içeren kodlar
}
Devam edecek …
Toplamda 15248 kez okunmuş.
Şu an 1 kişi okuyor.
En fazla 9 kişi aynı anda okumuş.
Bugün 0 kez okunmuş.
Etiketler: css, dom, javascript, kütüphane, library, orta, prototype
Trackback Yorumları takip et Baskı Önizleme

(38 oy, ortalama 4.37)
# yakuter | 03 Mart 2007, 14:27
Orhan, bu mükemmel kaynak ve rehber için sana ne kadar teşekkür etsek azdır. AJAX denildiği zaman akla ilk gelen js kütüphanesinin böyle açıklayıcı bir şekilde anlatılması büyük bir emek ister. Ellerine sağlık ve aramıza hoşgeldin
# grkn | 03 Mart 2007, 18:36
gerçekten de çok müthiş bir makale, çok teşekkür ederim : )
# kiirpi | 05 Mart 2007, 11:25
çok güzel bir kaynak olmuş ellerinize sağlık..
# caner | 05 Mart 2007, 11:29
Merhabalar.
Gerçekten güzel bir yazı olmuş. Tebrik ederim.
Birşey sormak istiyorum. Acaba bu Form.Serialize formdan gelen verilerin karakter kodlamasını değiştiriyor mu ? Bir de Türkçe için illaki Latin5 mi kullanmak lazım.
# ayşe | 05 Mart 2007, 16:26
Orhan,
Senin verdiğin koddaki last yerine first yazdım. Acaba birinciyi gösterir mi diye merak ettim. Birinciyi gösterdi. Diğer paragrafları göstermedi.
1. paragraf. Görülecek.
2. paragraf.
3. paragraf.
var paras = $A(document.getElementsByTagName(’p'));
paras.each(Element.hide);
$(paras.first()).show();
………………………………………………….
Dizilerle ilgili diğer örneğine mesaj ekledim. Mesaj kutusu 0 dan 5 e kadar olan sayıları gösterdi.
var dizi = $A($R(0, 5)).join(’, ‘)
// ‘0, 1, 2, 3, 4, 5′
alert(dizi); // 0, 1, 2, 3, 4, 5
………………………………………………
Diğer bir örneğe de mesaj ekledim. Çalışıyor.
var dizi = $A($R(’a', ‘h’)).join(’, ‘)
// ‘a, b, c, d, e, f, g, h’
alert(dizi);
…………………………………………
Meyveli kod hoştu. Mesaj ekledim. Her defasında mesaj kutusu başka bir meyvenin yenmek istendiğini söyledi.
$w(’elma armut kivi çilek’).each(function(fruit){
var message = ‘Canım ‘ + fruit + ‘ yemek istiyor’;
alert(message); // Mesaj kutusu aşağıdakileri gösteriyor.
/* Canım elma yemek istiyor.
Canım armut yemek istiyor.
Canım kivi yemek istiyor.
Canım çilek yemek istiyor.
*/
// diğer işlemleri yap
})
…………………………………………….
Mesaj eklediğim bir diğer kod ise 10 kere mesaj kutusu gösterdi ve her defasında sayı 1 sayı arttı.
var dizi = $R(0, 10, true).each(function(value) {
// 0′dan 9′a 10 defa istenen değer
alert(value);
});
……………………………………………………
İd’i verilen elemanların gizlenmesini de yapabildim.
Bunun id’i reklamAlani. Gizlenecek.
Bunun id’i AnaMenu. Gizlenecek.
Bunun id’i YorumLinkleri. Gizlenecek.
Bunun id’i katman. Gizlenmeyecek.
$w(’reklamAlani AnaMenu YorumLinkleri’).each(Element.hide);
// boşluk şeklinde verilen ID’lere sahip elementleri gizler
………………………………………………………
Bunlar çalışınca verdiğin kaynak sitedeki bir kodunda nasıl çalıştığını anladım.
.active { color:red; }
1. Bunun id’i comments. Görülecek.
1. Bunun id’i comments2. Görülmeyecek.
$(’comments’).addClassName(’active’).show()
$(’comments2′).addClassName(’active’).hide()
………………………………………………………
Yazıların devamını bekliyorum. Herkese teşekkürler…
# Orhan | 06 Mart 2007, 11:07
arkadaşlar öncelikle yazdıklarınız için çok teşekkürler. Yazının amacına ulaştığını görmek güzel bir duygu
form.serialize e gelince: bildiğim kadarıyla Prototype btünü talep işlemlerinde encoding olarak UTF-8 kullanıyor ama serialize de böyle bir işleme gerek yok yaptığı tek şey form verilerini uçö uca eklemek. Muhtemelen metinleri olduğu gibi bırakıyordur. Yaptığı tek işlem urlencode den geçirmek. Buda genelde sunucu tarafından geri de-encode edildiğinden sorun olmasa gerek ama her ihtimale karşı karşıda bi url_decode işleminden geçirilebilir tabi. Onun dışında birşey gelmiyor aklıma.
Bu arada yazıların devamı gelecek arkadaşlar merak etmeyin daha yazılacak ve yayınlanacak çok şey var Prototype hakkında, biraz sabır …
herkese iyi çalışmalar.
# Omer | 09 Mart 2007, 14:49
Site de harika içerik de. Arkadaşların dediğine göre harikaymış
JavaScript’i öğrenebilirsem ajax beni bekle
))
# ogalican | 17 Nisan 2007, 07:59
Merhaba , Moo.Fx ‘e değinecekmisiniz? Prototype ile bir karşılaştırma yaparsak ikisi arasında avantajları nelerdir.
Teşekkürler ve İyi Günler.
# AJAX-TR.COM » AJAX Puanlama Uygulaması | 15 Temmuz 2007, 17:43
[…] Ajax-Tr sitesinde yazıların her birinin altında görebileceğiniz, yazıyı puanlama mekanizmasının benzerini kendi sitenizdeki; yazılar, makaleler, haberler gibi her türlü metin içerikli bölüme uygulamak istiyorsanız AJAX sizin için çok iyi bir çözümdür. Bu yazıda elimden geldiğince bu mekanizmanın AJAX ile nasıl yapılabileceğini göstereceğim. Bunu yaparken de prototype.js’nin hazır AJAX fonksiyonlarından faydalanacağım. Tabii siz isterseniz aynı uygulamayı kendi kütüphanenizi, eyceks kütüphanesini ya da bir başka kütüphaneyi kullanarak yazabilirsiniz. […]