Web sayfaları geliştiren tüm heskesin bildiği gibi, projelerimizde inline (yani sayfa içinde) çeşitli scriptler yazabileceğimiz gibi, scriptleri (yani çalışan program parçacıklarını) bir başka dosya (veya dosyalar) içinde tutup ön sayfalara referans kodlarıyla dahil ederek, html kodlarımızda sadeliği (ve iş bölümünde kolaylığı) arttırmış oluyoruz.
Aşağıda yapacağımız çalışma için bize jQuery isimli javascript kütüphanesi gerekmektedir. Çünkü bu kütüphane AJAX işlemlerini kolay bir şekilde halledebiliyor. Gelin şimdi bu kütüphaneyi standart yollardan sayfamıza dahil edilecek örneği verelim. Böylece hem istemci taraflı tasarıma yeni başlamış arkadaşlarımıza include (dahil etme) için örnek oluşturalım hem de normal yollardan bir scriptin ne şekilde sayfaya dahil edildiğine yeniden bakmış olalım. Bu şekilde aşağılarda anlatacağımız gibi standardın dışına çıkarak web sayfalarımıza başka yollardan script dosyalarını dinamik bir şekilde yüklediğimizde meydana getirdiğimiz farklılığı gözler önüne sermiş olacağız.
Mesela artık bir düğmeye tıkladıktan sonra, istediğimiz bir script dosyasını sunucudan yükletebileceğiz! Ama normal yollardan include işlemi aşağıdaki gibi yapılır ve sayfamız yüklendiği anda referans edilen script gerekli yerden talep edilip o da yüklenir. Yani bir düğmeye tıklayayım da sonra scriptler gelsin (ya da benim özel bir scriptim var onu ben istediğim gibi yükleyebileyim) şansınız html'de yok!
|
|
Şimdi de dinamik yüklenen bir script örneği verelim.
|
|
Bu kodun çalışabilmesi için jQuery'nin son sürümünü web sitesinden indirmiş olmanız ve ilk verdiğimiz kod ile sayfanıza dahil etmiş olmanız gerekiyor.
Verdiğimiz örnekte yaptığımız şuydu;Hepsi bu kadar. Peki bu "gerekeni yap" ne demek oluyor? javascriptte güzel bir fonksiyon bulunuyor. Bu fonksiyon tarayıcı (browser) içine gömülmüş, hazır olarak gelmektedir. ismi "eval". Bir örnek verelim ve çalışma mantığını anlayalım.
|
|
Hemen altında ise yazi değişkenini eval fonksiyonundan geçirdiğimiz anda artık alert("deneme 1 2 3") ifadesi bir program koduna döüştürüldü ve çalıştırıldı (execute işlemi).
jQuery'nin de yaptığı eval fonksiyonun cilalayıp kullanmaktı aslında. Önce AJAX ile script sunucudan alındı, sonra alınan metinsel ifadeler (string) eval'den geçirildi.
Mesela bir script dosyasının yüklenmesini ziyaretçinin bir düğmeye basmasına bağlamanız artık mümkün. Diyelim ki web sayfanızda id parametresi "secim" olan bir düğme bulunsun;
|
|
Umuyorum ki faydalı bilgiler vermiş olduk. Güzel projelerde kullanmanız dileğiyle...
--------------------------------sonraki yazı Spry ile Efektler |
Bir önceki ajax yazımda az örnek olduğunu düşündüm ve bu yazıyı hazırladım. birbiriyle bağlantılı konulardır. umarım faydalı olur.
Güzel bir yazı teşekkürler.
Şöyle de bir sorun varaslında, web sayfalarında javascriptleri kapatma durumları oluyor. Firefoxta tek tıklama ile ie ile de ayarlardan yapılabiliyor.
Benim aklımda şu var, html şekline yüklenen js leri kapatmak kolay galiba. Biz jquery ide yada js dosyalarını başka bir şekdilde include edemezmiyiz dosyamıza.
Sizinv erdiğiniz örnekde de jquery i önceden yüklemeniz lazım. Bunun önüne nasıl geçebiliriz?
benim bildiğim bir çözümü yok.
eğer bir kullanıcı js'i kapatmışsa hiçbir şekilde çalıştıramıyoruz yani ister html ile yüklensin ister ajaxla js içinden çağırılsın ve evet ziyaretçi kolayca kapatabilir js'i. eğer kapatılmışsa, bir iki fonksiyonu vardı galiba onlar dışındakiler çalışmıyor. bahsettiğim fonksiyonlar da js'nin on-off durumunu bildiriyordu galiba.. yani js kapatıldığında browser'ın js yorumlayıcısı devre dışı kalıyor.
jQuery optimizasyon yapmak istediğimizde biraz fazla büyük gelebilir haklısınız. bu durumda tavsiyem şu olacaktır. Kendi ajax nesnenizi oluşturun ve sayfanıza dahil edin. Ardından bu nesne yardımıyla js dosyanızı sunucudan isteyip içeriğini bir değişkene yükleyin, bu değişkeni de eval'den geçirdiğinizde yine aynı şeyi yapmış olursunuz. kütüphanenin tümünü yükletmek yerine ihtiyacımız olan kısmını kullanmış oluruz bir bakıma. en hafif yolu bu.
(kendi site analizlerime baktığımda 250 ziyaretçiden 12 sinin javascripti kapalı geliyor.)
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 kolektif bir kod yazarları blogudur. Siz de katılabilirsiniz.