HTML tasarım yaparken bir butona tıklayınca birşey yapsın, biryere gelince birşey açılsın uçsun kaçsın gibi işlemleri nasıl yapıyorsunuz arkadaşlar? Mesela ben bir imaja tıklanınca yeni bir pencere açılmasını istiyorum. Bunu yapmak için çok klasik bir yöntem kullanıyorum.

<script>
function js_metodu() {
  window.open("https://facebook.com/sharer.php?falanfilan");
}
</script>
<img onclick="js_metodu()" src="fbshare.png" />

Şeklinde yapıyorum. Bu tekniğin yanlış olduğunu duydum ama daha başka nasıl yapacağımı bilmiyorum. Örneğin form kontrolü, uçan kaçan şeyler, fareye yada klavyeye göre dinamik olarak bazı şeylerin değişmesi falan filan. Event Driven olacak ve geliştirilmesi bir noktadan sonra sıkıntı çıkarmayacak bir yöntem lazım.

ASP.NET bu yüzden güzel. Mesela bir butona tıklayınca ne yapacağını C# yazarak belirliyorsunuz. Aynı şey Java için Vaadin, JSF gibi frameworklerde de var ama malesef PHP'de bunlar gibi standart birşey yok. Bilen varsa yardımcı olsun lütfen. Şimdiden teşekkür...

soruldu: 19 Ağu '14, 09:18

kodmanyagha's gravatar image

kodmanyagha
3.1k132852
cevap kabul oranı: 15%

2

asp.net teki event driven ile html deki uçsun kaçsın işleri tamamen farklı şeyler. asp.net teki event driven, client tarafındaki değişikliği yakalayan server anlamına gelir, html tarafındaki olaylar tamamen client tarafındadır. Bunları da js yönetir. Öncelikle kavramları tam ayırmalı ve problemi gerçek hayat senaryosu ile net anlatmalısınız. Bu haliyle soru tam anlaşılır değil.

(19 Ağu '14, 09:46) AliRıza Adıyahşi ♦ AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image
1

Prado'ya bakın. www.pradoframework.com

(19 Ağu '14, 09:50) ertuncefeoglu ertuncefeoglu's gravatar image

Prado'ya baktım güzel birşeye benziyo. Çoğu kişi şöyle yapmış. Her elemana id tanımlamış ve JQuery ile o id'yi seçip gerekli işlemleri yaptırmış. Böylece javascript tek bir yerde toplanmış oluyor ve kontrolü kolay oluyor.

(19 Ağu '14, 12:04) kodmanyagha kodmanyagha's gravatar image

Bu sorunun cevabi birazda internet tarayicilarin ve gelen cagrilara cevap veren web server'larin nasil calistigiyla ilgili.

Internet tarayicilar sadece ve sadece Html, Css ve JavaScript anlar. Bu 3'lu silahsorlerin disinda internet tarayicilar baska dil ve framework tanimazlar.(Internet tarayicida Java veya Adobe Flash gibi teknolojileri direk kullanamassiniz, internet tarayiciya Plugin yuklemek zorundasiniz!) Butun web framework'ler gorevi ise bu 3'lu silahsorlerin(Html, Css, JavaScript) anlayabilecegi formatta ciktilar uretmektir. Bircok web framework aslinda bu 3'lu disinda teknoloji kullandiramaz. En cok kullanilan PHP ornegine bakarsak, PHP gelen cagrilari islemlerden gecirir, PHP kodlarini yorumlar ve cevap donerir. Bu islemler yaklasik butun web frameworklerinde aynidir. JSF Html icine yazilmis XHtml formatindaki tag'lari(facelets) yorumlar ve server tarafindan cevaplar donderir, JSF artik kendi icinde ajax islemlerini de destekliyor, bunlari yaparken JavaScript kullanir. Ayni durum .Net icin de gecerlidir. Kisacasi butun web framework'leri 3'lu silahsorlere mahkumdur.

Web framework'lerin calisma seklini su gruplara ayirabiliriz:

  1. Html, Css, JavaScript disinda bir teknoloji ile bir plugin araciligi ile calisanlar.(Java Applet,Adobe Flash vb gibi). Bu tur framework'ler web'de kapali sistemle calisirlar, standart olmadiklari icin her platform her tarayici, her isletim sisteminde calismazlar! Bu framework'ler cok fazla bellek tuketir!

  2. View teknolojisini programlama dili ile server tarafinda olusturup client tarafina cevap olarak gonderen framework'ler.JSF ve ASP.Net bu tur framework'lere ornek verilebilir. JSF Facelets tag'larini java koduna cevirir isler, cevap uretir ve client'a gonderir. Bu tür framework'ler programciya kolaylik saglar, Html, Css, JavaScript ile direk ugrasmadan yada az ugrasarak kod yazilabilmesini saglar. Ornegin JSF ile Facelets kodlamasi yaparak JavaScript kodlamadan JSF icinde ajax cagrisi yapabilirsiniz. Bu tur framework'ler server tarafinda kendi component setlerine sahiptirler ve her component Html, Css ve JavaScript icinde karsilik gelen kodu uretir. Ornegin Html icinde label tag'i olusturmak icin ASP.Net icinde asp:label componenti kullanilir. Genelde bu tur frameworkler component state(durumlarini)'lerini server tarafinda tuttugu icin server agir yuk altinda kalir ve server sadece data alisverisi degil ayni zamanda component durumlarini da client tarafina gonderir. Bu tur framework'ler native 3'lu(Html, Css, JavaScript) kullanan framework'lerden daha yavas calisirlar!

  3. View tarafinda sadece JavaScript kullanarak Html, Css ve user interaction icin gerekli JavaScript kodunu ureten framework'ler. GWT, ExtJs, Sencha GXT, Vaadin gibi framework'ler bunlara ornek verilebilir. Bu framework'ler her islemi JavaScript ile yaptigi icin bu component'lere API'ler yazilarak degisik programlama dilleri ile kullanimi saglanabilir. Ornegin Vaadin kendi JavaScript component'lerine Java API (java wrapper classes) yazarak Java programcilarini hedeflemistir. Bu tur framework'ler programciya kolayliklar saglar, hizli proje gelistirilir fakat debug islemleri, hata takibi zordur, yazdiginiz kodlarla cikan hata mesajlari degisiktir!

  4. View teknolojilerinde sadece native 3'lu silahsorleri(Html, Css, JavaScript) kullanan framework ve diller. Python, PHP, Ruby on Rails gibileri bunlara ornek verilebilir. Ayrica baska bircok dil degisik yollarla (Restful Web Service gibi) native 3'luyu desteklemekteler. Bu tur kullanima ornek AngularJs, EmberJs, Backbone ve daha onlarca JavaScript ile yazilmis ve view teknolojisi olarak sadece Html ve Css kullanan framework'ler verilebilir. Bu tur JavaScript framework'leri genelde Html5 agirlikli view'ler kullandigindan her platform, isletim sisteminde calisabilir. Plugin gerektirmez, internet tarayici optimal kullanilir. Bu tur sistemler stateless (durumsuz) projelerde kullanilir ve server tarafi ile sadece data alisverisi yapar. AngularJs, EmberJs orneklerine bakarsak ne kadar kullanisli oldugu daha kolay anlasilir.

Somut cevaba gelirsek: PHP ile event bazli client tarafinda islemler yapmak isterseniz 4. secenege bakmalisiniz. Bu bahsettiginiz islemleri butun proje icin dusunuyorsaniz bu tur interactions AngularJs, EmberJs cok iyi yapilabilmekte. Bu durumda PHP rendering islemlerini AngularJs veya EmberJs'ye birakacak, client server haberlesmesi JSON ile olacaktir.

permanent link

cevaplandı: 19 Ağu '14, 17:16

CemIkta's gravatar image

CemIkta ♦
19.9k29125190
cevap kabul oranı: 36%

değiştirildi: 19 Ağu '14, 17:23

1

Maşallah destan gibi yazmışsınız. Angularjs ve Emberjs güzel gibi görnüyo.

(19 Ağu '14, 17:46) kodmanyagha kodmanyagha's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×168
×23
×4
×3

Soruldu: 19 Ağu '14, 09:18

Görüntüleme: 848 kez

Son güncelleme: 19 Ağu '14, 17:46

powered by BitNami OSQA