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:
|
|
|
|
ID si "kodaman" olan div i seçmek için yazılan jQuery kodu:
|
|
|
|
jQuery de başlangıç fonksiyonunu yani window.onload fonksiyonunu 2 şekilde yazabiliriz.
|
|
|
|
Fakat bunu Prototype da
|
|
DOM Manupulasyonu (DOM Manupulation)(HTML yapısından istediğimiz elementi seçmek diyebiliriz.)
Prototype manupulasyon işlemi için
|
|
jQuery de ise
|
|
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
sonraki yazı Firebird Veritabanı Bozulma Nedenleri/Öneriler |
jquery'i tek geçerim :)
gözünü yidiğimin jquery'nin ajaxına bakın :)
$('secici').load('ajax.asp');
faydalı bir bildiri çok teşekkürler..
bi kez daha iyi ki jQuery kullanıyorum dedim
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.
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ığı.
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.
pillinetwork sitelerine yorum ekleyebilmek ve daha fazlası için, üye olun ya da giriş yapın.
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.