pillinetwork hesabınızla giriş yapın.

Jquery mi? Prototype mı?

Merhaba Arkadaşlar,
Uzun zamandır kodaman.org üyesiyim ve yazıları sürekli takip etmekteyim. Bir ara bende bişeyler ekliyeyim diye düşündüm fakat iş yoğunluğundan ancak bu güne zaman bulabildim ve kodaman.org daki ilk yazımı yazıyorum.

Öncelikle kendimden kısaca bahsedeyim. Adım Fatih. Web dünyasında sürekli kullandığım teknolojiler ise XHTML, CSS, XML, XSLT, JavaScript, jQuery, Prototype dır. Şuan Silverlight öğrenmek için çaba harcıyorum.

Neyse gelelim konumuza. Öncelikle kısa bir kaç cümle ile nedir bu jQuery ve Prototype diye özetiyeyim. jQuery ve Prototype hepimizin bildiği gibi JavaScript in gücüne güç katmak için ortaya atılmış library ler yani kütüphanelerdir. Kodlarımızı JavaScript e göre kısaltan, JavaScript ile yapmamız hayli vakit alacak işleri(Drag And Drop yada kütüphaneler ile gelen efektler gibi) kolayca halletmemize yarayan olmazsa olmaz kütüphanelerdir.

Evet lafı daha fazla uzatmadan hemen giriş yapalım... jQuery vs. Prototype...

Neden jQuery...?
Zincirleme fonksiyonlar(chain) ve objeler ile elementlere fonksiyon atamak(bind) için elverişlidir.

Neden Prototype...?
Direk DOM (document object model) u ve JavaScript in objelerini extend(geliştirip genişlettiği için) ettiği için tercih ediliyor.

Ve iki kütüphane de daha da kolay kod yazabilmek için dizayn edilmiştir. İşin derinine inelim...

Kütüphane Boyutları

jQuery v.1.3.2 Minified // 55.9 Kb
jQuery v.1.3.2 Uncompressed // 117Kb

Prototype v.1.6.0.3 Uncompressed // 130Kb

Prototype v.1.6.0.1 Lastest Stable Version Uncompressed

Syntax(Yazım) Karşılaştırması
Prototype da $ işareti id ye yönelik bir şeçicidir(selector).
jQuery de ise seçici olarak CSS seçicileri tercih edilmiş ve bence çok da iyi yapılmış. Prototype daki karşılığı $$ dır.

ID si "kodaman" olan div i seçmek için yazılan Protoype kodu:

1
$('kodaman')

Class ı "kodaman" olan div i seçmek için yazılan Protoype kodu:
1
$$('.kodaman')

ID si "kodaman" olan div i seçmek için yazılan jQuery kodu:

1
$('#kodaman')

Class ı "kodaman" olan div i seçmek için yazılan jQuery kodu:
1
$('.kodaman')

jQuery de başlangıç fonksiyonunu yani window.onload fonksiyonunu 2 şekilde yazabiliriz.

1
$(function(){ ... })

1
$(document).ready(function(){ ... })

Fakat bunu Prototype da

1
Event.observe(window, 'load', function() { ... } );

içinde yazabiliriz.

DOM Manupulasyonu (DOM Manupulation)(HTML yapısından istediğimiz elementi seçmek diyebiliriz.)

Prototype manupulasyon işlemi için

1
2
3
4
5
next, nextSiblings
previous, previousSiblings
up, down
after, before,
bottom, top

vb. lerini kullanabilirken

jQuery de ise

1
2
3
4
5
6
next, nextAll
prev, prevAll
parent, parents
html, text
after, before
insertAfter, insertBefore

vb. lerini kullanabiliriz.

Ayrıca bir kullanıcı olarak, ben daha önceden de, bu yazıyı yazarken de
şunu farketmiştim. İsteyen arkadaşlar da deneyebilir. İki kütüphanenin de döküman sayfalarını açın ve aramak istediğiniz şeyleri yazın. Bakın bakalım hangisinde daha kolay ve tatminkar cevaplar bulabiliyorsunuz.

Buyrun linkler
Prototype API Documents
jQuery API Documents

Bu iki kütüphane arasında bu ve buna benzer daha bir çok farklar var. Sonuç olaraksa ben jQuery yi tercih ediyorum. En başta Prototype öğrenerek başlamıştım kütüphanelere sonra jQuery ve EXT JS ile devam ettim. Prototype dan sonra jQuery bana daha cazip geldi. Çünkü herşeyden önce en güzeli CSS seçicileri ile çalışıyor. Ajax yaparken Prototype kadar çok şey yazmak zorunda değilim.

Kısacası tercih meselesi... Elimden geldiği kadar bazı şeyleri açıklamak istedim. Daha değinilmesi gereken çok şey var bu konu bu kadar kısa değil tabiki de onu da 2.part da yazarız inşAllah :)

ajax
site search

/* diddyob yazdı. 10 Kasım 2009 08:45. 16 yorum var */

Yorumlar

jquery'i tek geçerim :)
gözünü yidiğimin jquery'nin ajaxına bakın :)
$('secici').load('ajax.asp');

Bence de jQuery. Hızlı ve basit :)

bi kez daha iyi ki jQuery kullanıyorum dedim

/* if life="" then call BatsinBuDunya() */

jQuery
Render süresi kesinlikle daha hızlı.

Bencede kesinlikle jquery.
Bir ara firefox jquery 'i bünyesine alacak diye duymustum hicbir gelisme olmadi...

bünyesine almak değil de browser içinde otomatik gelcek böylece her seferinde netten çekmicek diye duymuştum ben ama sadece jquery için değil tüm güncel kütüphaneler için yapacaktı bunu.

uzun zaman prototype kullandıktan sonra yaklaşık 1 yıldır jquery kullanıyorum. jquery kullanımı biraz daha basit ve hızlıca istediğinizi elde edebiliyorsunuz ama tamamen ajax ve js üzerine kurulu bir site yaptığımda jquery bi yerden sonra çok kasılmalara sebep oldu.

basit işler için jquery, profesyonel işler için prototype tercih tavsiye ederim.

karşılaştırmalar ve örneklerle güzel bir yazı olmuş eline sağlık. ben de jquery'yi tek geçiyorum.

"Bence jQuery" diyen arkadaşlar ne kadar Prototype bilgileri olduğunu da yazarsa daha objektif bir yorum olur bence. İki kütüphaneyi de iyice biliyorsanız ancak yorum yapmanız mümkün olur çünkü.

utkuy'nun dediğine katılıyorum ben, basit web siteleri için jQuery kolay ve hız sağladığı için tercih edilebilir ama ciddi işler için Prototype'ın özellik ve altyapısı daha uygun.

İstiyorum o zaman. Ama tamam demeden önce Prototype API sine bi bakın isterseniz.

jQuery ile performans kayıplarına bir örnek verebilir msiniz arkadaşlar? Hoş birkaç ms lik gecikmeler istatistiksel veriden öteye geçmediği için çoğu kişinin umurunda değil ama bahsettiğiniz sayfanın render suresine etki edecek birşeyse evet sorun var demektir.

jQuery inanılmaz basit sözdizimi ile sanki css ve dom un bir parçası gibi iş görüyor sanıyorum ki; performans olarak da gayet makul düzeylerde sonuçları var.

Eğer ciddi sorunlar yaşanıyorsa bu; JavaScript ve jQuery nin pek de iyi bilinmemesinden kaynaklanıyor gibi geliyor bana. http://www.learningjquery.com/ daki tips&tricks leri dikkatlice incelerseniz işin püf noktalarını yakalabilirsiniz.

Ben şimdilik jQuery kullanmaya devam ediyorum :) ama gerçekten performans sorunları ile ilgili örnekleri görmek isterim. En azından fikir sahibi oluruz.

/* bekara ev yok kardeşim!!! */

render süresini kendiniz de ölçebilirsiniz.

javascriptin kendi timer nesnesinden yararlanıp mesela yüzlerce element yaratabilir ve zamanlamayı bir yere yazabilirsiniz. Daha sonra bunları jQuery selector yapısıyla seçtirebilirsiniz. Bu zamanlamayı da yazın. Kriterler arttırılabilir.

ayrıca render süreleri browsera göre değişiklik gösterecektir. benim bildiğim en hızlı render engine'lerden biri opera diğeri de chromun kullandığı.

/* if life="" then call BatsinBuDunya() */

kim izin verdi bu yoruma?

Herkesin sorunu birini tercih etmek olmuş ama benim asıl sorunum ikisini bir arada kullanmak. Bilgi verebilecek olan var mı :)

@muratmoon "tamam demeden önce Prototype API sine bi bakın isterseniz" demişsina ama bunu demeden öncede jquery'nin plugin (eklenti) desteğine bakmak gerekmez mi?

proje başına bence değişir diye düşünüyorum eğer interaktif bir admin panel vs yazacaksanız dojo derim bende.

/* yarım yarım çok ses olacağına güçlü bir tek ses olalım. */

üye olunpillinetwork sitelerine yorum ekleyebilmek ve daha fazlası için, üye olun ya da giriş yapın.

Bu Yazıyı Tutanlar

Bu yazıyı rapor et. Kural dışı içeriğe rastladığınızda editörlerimize rapor ederek müdahale edilmesini sağlayabilirsiniz. (Hangi durumlarda rapor edebilirim?)

Bu site

Nokta ve pilli ortak yapımı olan kodaman.org hep birlikte içerik üretip gelirini yazarları ile paylaştığımız kolektif bir kod yazarları blogudur. Siz de katılabilirsiniz.

pilliilan

son yorumlar

arama

pillinetwork