Aktif (client-based) Web Teknolojileri ve Programlama
Transkript
Aktif (client-based) Web Teknolojileri ve Programlama
KARADENİZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR AĞLARI LABORATUARI Aktif (client-based) Web Teknolojileri ve Programlama 1. Giriş İnternetin son yıllarda hızla gelişmesi ve önemini arttırması nedeniyle web teknolojilerinin önemi de giderek artmaktadır. Web teknolojilerinin ortaya çıktığı ilk zamanlarda durağan ve sırf HTML diline dayalı web sayfaları iş görebilirken günümüzde artık bu mümkün olmamaktadır. Bu nedenle web sayfaları içerisinde kullanıcı ile etkileşim sağlayan uygulamalara ve dinamik içerikli web sayfalarına ihtiyaç doğmuştur. Web programlama teknolojileri genellikle aktif (istemci taraflı) ve dinamik web programlama olarak iki kategoride incelenmektedir. Bu deneyde kodları istemci tarafında çalışan aktif web sayfalarının geliştirilme aşamaları incelenecek ve örnek uygulamalar üzerinde durulacaktır. Web sayfaları kabaca dinamik sayfalar ve durgun(statik) sayfalar olmak üzere ikiye ayrılabilir. 1.1.Statik (Durgun) Sayfalar Statik sayfa yapısı genelde bilgi vermeye yönelik sayfalarda kullanılır. Sayfa ziyaretçisi ile herhangi bir enteraktif iletişim yoktur. Bu sayfalar gazeteye ya da dergilere benzetilebilir. Bu tür sayfalarda sadece sayfaya işlenmiş olan veriler (yazı, resim) görülür. Sayfaya herhangi bir veri gönderilmez. Bir habere yorum yapılamaz veya ankete oy verilemez. Sadece alıcı olarak sayfada var olanlar algılanır. Bu gibi sayfaların yapısında %90 HTML kodu ve %10 ise istemci taraflı kodlar (Javascript, CSS) bulunmaktadır. Statik (durgun) sayfalar dinamik sayfalara göre yapım maliyeti daha düşüktür. Güncellemek veya yapı değişiklikleri dinamik sayfalara göre daha zordur; yüksek maliyet gerektirir. Sayfa ziyaretçilerine herhangi bir hizmet verilemez. Bu tür sayfalara etkileşim aktif web uygulamaları ile mümkün olabilmektedir. 1.2. Dinamik Sayfalar Bu tür sayfalar genelde. asp, .php, .jsp, .shtml gibi sunucu taraflı dil uzantılarından oluşur. Sayfa ziyaretçisi ile enteraktif iletişim vardır. Sayfa ziyaretçisine çeşitli hizmetler sunulabilir. Site güncellemesi kullanıcı tarafından yapılabilir. (örn: Fiyat listelerinin değiştirilebilmesi, yeni sayfaların eklenmesi, çevrimiçi broşür hazırlama ve tek tuşla binlerce müşteriye gönderimi gibi ...). Web sayfalarında şirket amaçlarına uygun hizmetler verilebilir. Şirket ürünleri e-ticaret vasıtası ile satılabilir veya bayi ağı çevrimiçi çalışır hale getirilebilir. Dinamik sayfaları dinamik yapan içerdiği kodun dinamikliğidir. Bu sayfalarda mesaj gönderilebilmekte, oy kullanılabilmekte ve e-posta atılabilmektedir KTÜ Bilgisayar Mühendisliği Bölümü – Bilgisayar Ağları Laboratuarı 1 2. HTML İlk olarak 1980 yılında Lee tarafından çalıştığı kurumdaki araştırmacılarının bilgilerini ve dökümanlarını birbirleriyle paylaşabilmeleri için ENQUIRE isimli bir sistem geliştirilmiştir. Daha sonra aynı kişi tarafından HTML dili geliştirilerek World Wide Web(WWW)’in ve bugün ki web sayfalarının temeli oluşturulmuştur. HTML (Zengin Metin İşaret Dili), günümüzde internet üzerinde veri paylaşımı için kullanılan en yaygın metin tabanlı dildir. HTML bir programlama dilinden ziyade dbir işareleme dilidir. Temel görevi, metin, görüntü, video gibi değişik öğeleri ve bunları içeren sayfaları birbirine basitçe bağlamak, buna ek olarak söz konusu sayfaların web tarayıcısı yazılımları tarafından düzgün olarak görüntülenmesi için gerekli kuralları belirlemektir. Günümüzde tüm web tarayıcıları tarafından desteklenen ve W3 konsorsiyum tarafından 1999’da standard olarak kabul edilen HTML 4.01 versiyonu kullanılmaktadır. Ayrıca gelecekte web için standart olacak olan HTML 5, günümüzde çoğu modern web tarayıcıları tarafından desteklenmekte ve önümüzdeki yılarda W3 konsorsiyum tarafından standart olarak kabul edileceği bildirilmektedir. HTML dili, basitçe metinleri etiketlerle biçimlendirmekte ve web sayfalarında yer alan öğeleri (başlık, liste, bağlantı, tablo, görüntü vb.) web tarayıcıları tarafından kolayca görüntüleyebilmek için birbirine bağlamaktadır. Kod Parçası 1’de basit bir web sayfası oluşturacak HTML kodları verilmektedir. İnternet üzerinde yer alan herhangi bir sayfanın HTML kodlarını “Sayfa Kaynağını Görüntüle” seçeneği ile görebilirsiniz. Deneye gelmeden önce HTML dili ile ilgili temel bilgileri edinmeli ve en azından basit bir web sayfasını kod yazarak oluşturabilecek seviyede olmalısınız. <!DOCTYPE html> <html> <head> <title>Hello HTML</title> </head> <body> <p>Hello World!</p> </body> </html> Kod Parçası 1 : Basit bir web sayfasının HTML kodu. 3. JavaScript Javascript, durağan HTML sayfalarına kullanıcı etkileşimi kazandırmak ve HTML’nin bir programlama dili olamasından dolayı durağan wen sayfalarına programlanabilirlik özelliği kazandırmak için kullanılan bir betik dilidir. Perlscript, VBScript gibi aynı işlevi yerine getiren alternatif betik dilleri de mevcuttur. Ancak hemen hemen tüm web tarayıcıları tarafından koşulsuz desteklendiği için diğerlerine göre avantajlı hale gelmektedir. Javascript dili bir nesne tabanlı programlama dili olan Java ile karıştırılmamalıdır. Java dili ile özgün ve kendikendine çalıştırılabilen programlar yazmak mümkünken, Javascript ile yazılan betikler ancak bir web tararyıcının yorumlamasıyla birlikte çalıştırılabilirler. Javascript kodları doğrudan HTML kodları içerisine yazılırlar. Bir başka deyişle javascript kodları HTML kodları ile aynı dosyaya yazılırlar. Kod Parçası 2’de örnek bir javascript kodu verilmektedir. <html> <head> <title>Örnek bir JavaScript Kodu!</title> </head> <body> KTÜ Bilgisayar Mühendisliği Bölümü – Bilgisayar Ağları Laboratuarı 2 <br> Bu normal bir HTML yazısıdır. <br> <script language="JavaScript"> document.write("Merhaba Dünya!") </script> <br> HTML'ye dönüş. </body> </html> Kod Parçası 2 : Örnek bir javascript kodu. 3.1. Javascript Kodlama Javascript dili, Pascal ile C dillerinin karışımı bir sözdizimine sahiptir. Kodlar doğrudan HTML kodları arasına yazılır ve kodlar istemci tarfında çalışırlar. Bu nedenle istemci-tabanlı (client-based) web programlama olarak da isimlendirilir. Değişkenler Javascript'te de diğer programlama dillerinde olduğu gibi bilgi depolamak bu bilgiyi kullanmak amacıyla kullanılırlar. Değişkenler "var" komutu ile oluşturulurlar. Diğer dillerde yer alan değişken türleri burada değişken kullanılırken belirtilirler. Örneğin var a=10; yazıldığında a değişkeni sayı türünden bir değişken iken var b=”KTÜ”; yazıldığında b değişkeni string türünden bir değişken olmaktadır. Değişkenlere işlem yaptırabilecek operatörler ise 4 kategori altında toplanabilir. Aritmetik operatörler (+ , - , * , / , %), mantıksal operatörler (&& , || , !), karşılaştırma operatörleri (==, !=, >, >=, <, <=) ve özel operatörler (+=, -=, *=, /=, ++, --, koşul operatörü<?... : …>) javascripte kullanılan en yaygın operatörlerdir. Bu operatörlerin kullanımları C diline çok benzerdir. Kod Parçası 3’te örnek değişken ve operatör kullanımları verilmektedir. var i=1; var j=2; var k=3; var m=4; var n=5; var p=6; var q=7; i=+j; j++; k--; m=m+k; n=*j; i < j ? 3 : 1 ; k >= n ? 0 : 1 ; k=2 && j=5 ? p : q ; i=2 || j=3 ? m : n ; p!=2 ? k : 10 ; Kod Parçası 3 : Örnek değişken ve operatör kullanımı Javascript dilinde kullanılan koşul ve döngü deyimleri de aynen C dilinde olduğu gibi kullanılmaktadır. Kod Parçası 4’te koşul ve döngü deyimlerinin kullanımına ilişkin örnek bir uygulama verilmiştir. <html> <head> <title>Örnek bir JavaScript Kodu!</title> </head> <body> Tek ve Çift Sayılar <br> <script language="JavaScript"> var i; KTÜ Bilgisayar Mühendisliği Bölümü – Bilgisayar Ağları Laboratuarı 3 for(i=0;i<100;i++) { if(i%2==0) document.write(i + " sayısı çifttir <br>"); else document.write(i + " sayısı tektir <br>"); } </script> </body> </html> Kod Parçası 4 : Koşul ve döngü deyimlerinin kullanımına ilişkin örnek bir uygulama Benzer şekilde switch-case deyimi ile break; continue; deyimleri de C diline benzer şekilde kullanıma sahiptir. 3.1.1. Javascript’te Fonksiyon Kavramı Fonksiyonlar modüler program yazmanın vazgeçilmez öğeleridir. Aktif web sayfaları geliştirirken fonksiyonlar kullanılarak daha etkin interaktif web uygulamaları geliştirilebilmektedir. Javascript dilinde fonksiyon tanımlama söz dizimi şu şekildedir. function fonksiyon_ismi (parametre1 , parametre2 , .... ) { yapılması istenen işlemler return geri_donus_degeri; // varsa } Fonksiyon kullanılarak geliştirilen örnek bir program Kod Parçası 5’te verilmiştir. <html> <head> <title>Fonksiyon İçeren JavaScript Kodu!</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9"> </head> <body> Toplama İşleminin Fonsiyon ile Gerçekleştirilmesi <br> <script language="JavaScript"> function toplam(a,b) { var toplam = a+b; return toplam; } document.write("5 + 7 = " + toplam(5,7)); </script> </body> </html> Kod Parçası 5 : Fonksiyon örneği 3.1.2. Javascript’te Nesneler ve Özellikleri Javascritp dili, nesne tabanlı bir programlama dilidir. Bu nedenle interaktif web uygulamaları geliştirirken javascript dili nesnelerden yararlanmaktadır. Windows Nesnesi : Genel olarak pencere özellikleri ile ilgili bir nesnedir. Pencere açmak için : window.open("Url_adı" , "pencere_adı" , "pencere_özellikleri"); Pencere kapatmak için window.close(); komutu kullanılır. Window nesnesinin location.protocol nesnesi ise yüklenen dosyanın sabit diskten mi yoksa internetten mi yüklendiğini gösterir. Örneğin http: ile dosyanın web protokolü kullanarak yüklendiği belirtilir. file: ile dosyanın sabit diskten yüklendiği belirtilir. Window'un histrory özelliği ile bir önceki sayfaya erişim sağlanabilir. Aşağıda Windows nesnesinin kullanımına bir örnekler verilmiştir. KTÜ Bilgisayar Mühendisliği Bölümü – Bilgisayar Ağları Laboratuarı 4 window.open("http://ceng.ktu.edu.tr","ceng","menubar=no,toolbar=no,scrollbars=yes,location =yes,status=no,resizable=yes,left=0,top=100,width=200,heigt=300"); if (window.location.protocol == "http:" ) { document.write ("Bu belge Internet'ten geliyor."); } else { document.write ("Bu belge sabit diskten geliyor"); } // 1 önceki sayfaya dönmek için kullanılır. Window.history.go(-1); Tarayıcı (navigator) Nesnesi : Tarayıcılar Javascript tarafından bir nesne olarak algılanır. Kullanımına ilişkin örnek kodlar aşağıda verilmiştir. document.write("Şu anda kullandığınız tarayıcının özellikleri :" , "<br>"); document.write(navigator.appname + navigator.appVersion + navigator.appCodeName + navigator.useAgent ) ; Form Nesnesi : Javascript açısından HTML'in en önemli nesneleri formlardır. Çünkü ziyaretçi ile etkileşmede en büyük unsurlardan birisi formlardır. HTML kendi form nesnesini kendisi oluşturabilir. Javascript ise form verilerinin yorumlanması ve işlenmesinde devreye girer. Name : Formun ismi Action : Formun işleneceği perl veya cgi programının tanımlanacağı etiket Enctype : Formun kodlanma türü Method : Formun gönderme(post) mi yoksa alma(get) işlemi göreceğini belirler. Target : Pencere ismi OnSubmit : Gönderme metodunun ismi Bunlardan yararlanarak bir form nesnesinin kodu aşağıdaki şekilde yazılabilmektedir. <form name="mail" action="http://www.webteknikleri.com/cgi-bin/mail.pl" method="POST"> Form unsurları </form> 3.1.3. Javascript’te Olaylar Ziyaretçiye sunulan bir web sayfası üzerinde ziyaretçinin yaptığı her türlü hareket, örneğin bir bağlantıyı tıklaması , bir resmin üzerine gelmesi , resmin üzerinde ayrılması , bir formu yanlış doldurup hataya yol açması gibi davranışların tümü bir olaydır. onClick : Web sayfası üzerinde bir nesnenin fare ile üzerine tıklanması sonucu onClick olayı gerçekleşir. Olayın gerçekleşmesi için nesneni tıklanıp bırakılması yeterlidir. onClick olayı tuşa basılıp bırakıldıktan sonra gerçekleşir. Bağlantılar, resimler, form düğmeleri tıklanabilecek nesneler arasındadır. Kod Parçası 6’da onClick olayına bir örnek verilmiştir. OnDblClick olayı da onClick olayı ile yapı olarak aynıdır. onClick'ten farkı nesneye çift tıklandığında çalışmasıdır. Diğer yöntemler onClick ile aynıdır. <html> <head> <title>Olaylar</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9"> </head> KTÜ Bilgisayar Mühendisliği Bölümü – Bilgisayar Ağları Laboratuarı 5 <body> onClick Olayı <br> <script language="JavaScript"> function f() { alert("Button a tıklandı."); } </script> <input type="button" name="tikla" value="tikla" onClick=f()> </body> </html> Kod Parçası 6 : onClick olayı için örnek bir uygulama onMouseOver , onMouseOut : Bu tür nesne olayları ingilizce adı (onMouseOver fare işaretçisi/imleç üzerindeyken , onMouseOut fare işaretçisi üzerinden ayrıldığında) üzerinde olmakla birlikte farenin nesnenin üzerinde olup olmadığı ile ilgilenir. Bu olayla ilgili örnek uygulama Kod Parçası 6’de verilmektedir. <html> <head><title>OnMouseOver</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9"> <script language="javascript"> function resim_degis(ind) { var res = document.getElementById('rsm'); var res_dizi = new Array(); res_dizi[0] = "ckose.png"; res_dizi[1] = "ocakir.png"; res_dizi[2] = "zyavuz.png"; res.src = res_dizi[ind]; } </script> </head> <body> <table> <tr> <td><p onMouseOver="resim_degis(0)">Cemal Köse</p></td> <td rowspan="3"><img id="rsm" name="resim" src="ckose.png" height="75" width="60"/></td> </tr> <tr> <td><p onMouseOver="resim_degis(1)">Ömer Çakır</p></td> </tr> <tr> <td><p onmouseover="resim_degis(2)">Zafer Yavuz</p></td> </tr> </table> </body> </html> Kod Parçası 7 : onMouseOver olayı için örnek bir uygulama onSubmit : Web üzerinde sayfalar arasında gezinirken kullanıcı bilgi girişi için formlar kullanılmaktadır. Bir form doldurulduktan sonra sunucu (server) bilgisayara gönderilerek bilgiler burada işlenir. Bilindiği gibi sunucu bilgisayarda çalışan kodlar sunucu taraflı scripting olarak adlandırılır. Ancak bazı durumlarda form üzerinde doldurulan veriler, sunucuya gönderilmeden önce istemci bilgisayarda düzgün doldurulup doldurulmadığına bakılabilir. Bu işlemlerin yapıldığı örnek uygulama Kod Parçası 8’de verilmektedir. <html> <head><title>onSubmit</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9"> </head> <body> <script type="text/javascript"> function regKontrol(pattern, value) { r = new RegExp(pattern, "g"); return r.test(value); } function formKontrol(form) { KTÜ Bilgisayar Mühendisliği Bölümü – Bilgisayar Ağları Laboratuarı 6 patternEposta = "[abcdefghijklmnopqrstuvwxyz]"+ "@"+"[abcdefghijklmnopqrstuvwxyz]"+ "[\.]" +"[abcdefghijklmnopqrstuvwxyz]"; if ( !regKontrol(patternEposta,form.email.value)) { alert("Lütfen Doğru Bir E-posta Adresi Giriniz."); form.email.value=""; form.email.focus(); return false; } return true; } </script> <form method="post" action="form_isle.html" name="frmKayitFormu" onsubmit="return formKontrol(this);"> E-Posta: <input type="text" name="email" maxlength="50"/><input type="submit" value=" Gönder "/> </form> </body> </html> Kod Parçası 8 : onSubmit olayı için örnek bir uygulama onChange : Web sayfası üzerinde ziyaretçinin değiştirebileceği üç tür alan vardır. Bunlar text (metin), textarea (geniş metin alanı), select (seçim alanı) dır. Fare bu alanlar üzerine getirip tıkladığınıldığında onChange(değişti) olayı gerçeklenmiş olur. onLoad : Bu olay sayfanın yüklenmeye başlamasında yapılacak işlemler için gereklidir. Bu işlemlerin yapıldığı örnek uygulama Kod Parçası 9’de verilmektedir. <html><head><title>onLoad onUnLoad</title> <script language="javascript1.2"> function hosgeldiniz() { alert("Web Sitemize Hosgeldiniz") } </script> </head> <body onLoad="hosgeldiniz()"> <a href="http://ceng.ktu.edu.tr/index.php">CENG</a> </body> </html> Kod Parçası 9 : onLoad olayı için örnek bir uygulama 4. Deney Hazırlığı 1. 2. 3. 4. Aktif (istemci taraflı) web programlama kavramlarını öğreniniz. HTML ile kodlar yazarak statik web sayfaları yapımını öğreniniz. Javasript programlama ile basit istemci taraflı web uygulamaları yapımını öğreniniz. Deney föyünde yer alan kod parçalarını kendiniz yazarak değişiklikler yapınız. 5. Deney Tasarımı ve Uygulaması 1. Deney uygulama dosyaları bilgisayar masaüstünde aktif_web_programlama klasöründe bulunmaktadır. Bu klasördeki uygulamalar incelenecektir. 2. Deney föyünde yer alan temel kavramlar soru-cevap şeklinde kontrol edilecektir. 3. Deney föyünde yer alan kodlar teker teker incelenerek gerekli değişiklikler yapılarak çalışma mantıkları kavratılacaktır. KTÜ Bilgisayar Mühendisliği Bölümü – Bilgisayar Ağları Laboratuarı 7 4. İstemci ile sunucu saat uygulaması ile web programlarının çalıştıkları taraf kavratılacaktır. 5. Arkaplan rengi değiştirme uygulaması incelenecektir. 6. Javascript animasyonları incelenecektir. 6. Deney Soruları 1. İstemci taraflı scripting nedir? Avantajları ve dezavantajları nelerdir? 2. Javascript kodları HTML dosyalarına nasıl yerleştirilir? 3. Döngü kullanarak 4x4 lük bir tablo oluşturunuz. 4. Deney föyünde yer alan kodlar, sunucu tarafında kodlansaydı çalışma mantıkları nasıl olurdu, örnek vererek açıklayınız. 7. Deney Raporu Deney raporu, deney esnasında yazılarak teslim edilecektir. Bu nedenle rapor şablon dosyasını buradan indirerek çıktısını alınız, gerekli alanları (öğrenci no, ad, soyad …) doldurunuz, hazırlık sorularını cevaplayarak el yazısı ile “Deneye Hazırlık” kısmına yazınız. Raporunuzun diğer alanları deney esnasında doldurulacaktır. Her öğrenci bireysel rapor hazırlayacaktır. 8. Kaynaklar [1] [2] [3] [4] [5] [6] [7] [8] www.w3schools.com www.hotscripts.com www.php.net www.phpbuilder.com www.wampserver.com www.csharpnedir.com tr.wikipedia.org www.programlamadili.net KTÜ Bilgisayar Mühendisliği Bölümü – Bilgisayar Ağları Laboratuarı 8
Benzer belgeler
NO: AD SOYAD:
text (metin), textarea (geniş metin alanı), select (seçim alanı) dır. Fare bu alanlar üzerine getirip tıkladığınıldığında onChange(değişti) olayı gerçeklenmiş olur. onLoad : Bu olay sayfanın yüklen...
DetaylıWeb Programlama
HTML dili, basitçe metinleri etiketlerle biçimlendirmekte ve web sayfalarında yer alan öğeleri (başlık, liste, bağlantı, tablo, görüntü vb.) web tarayıcıları tarafından kolayca görüntüleyebilmek iç...
Detaylı