ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi · 2020. 8. 4. · t.c. firat Ünverstes fen...
TRANSCRIPT
TC
FIRAT UumlN VERS TES
FEN B L MLER ENST TUumlSUuml
AJAX TEKNOLOJ S KULLANARAK CcedilEVR M Ccedil
KATALOG TASARIMI
Zeynep OumlZER AYDO MU
Tez Youmlneticisi Prof Dr Asaf VAROL
YUumlKSEK L SANS TEZ
ELEKTRON K VE B LG SAYAR E T M ANAB L M DALI
ELAZI 2009
TC
FIRAT UumlN VERS TES
FEN B L MLER ENST TUumlSUuml
AJAX TEKNOLOJ S KULLANARAK CcedilEVR M Ccedil
KATALOG TASARIMI
Zeynep OumlZER AYDO MU
Tez Youmlneticisi Prof Dr Asaf VAROL
YUumlKSEK L SANS TEZ
ELEKTRON K VE B LG SAYAR E T M ANAB L M DALI
ELAZI 2009
TC
FIRAT UumlN VERS TES
FEN B L MLER ENST TUumlSUuml
AJAX TEKNOLOJ S KULLANARAK CcedilEVR M Ccedil
KATALOG TASARIMI
Zeynep OumlZER AYDO MU
YUumlKSEK L SANS TEZ
ELEKTRON K VE B LG SAYAR E T M ANAB L M DALI
Bu tez tarihinde a a da belirtilen juumlri taraf ndan oybirli ioyccediloklu u ile ba ar l ba ar s z olarak de erlendirilmi tir
Dan man Prof Dr Asaf VAROL
Uumlye
Uumlye
Bu tezin kabuluuml Fen Bilimleri Enstituumlsuuml Youmlnetim Kurulu nun tarih ve say l karar yla onaylanm t r
TE EKKUumlR
Bu tez ccedilal mas
suumlresince desteklerini esirgemeyen Dan man m Say n Prof Dr Asaf
VAROL a Prof Dr Z Hakan AKPOLAT a ccedilal mam n her a amas nda sevgi ve guumlvenlerini
her zaman hissetti im aileme e im Fatih AYDO MU a ve oumlzellikle karde im Ya mur
OumlZER e te ekkuumlrlerimi ve uumlkranlar m sunar m
Zeynep OumlZER AYDO MU
I
Ccedil NDEK LER
TE EKKUumlR
Ccedil NDEK LER I
EK LLER L STES
IV
TABLO L STES
VI
KISALTMALAR L STES
VII
OumlZET IX
ABSTRACT X
1 G R
1
11 Tez Ccedilal mas n n Amac
1
12 Tez Ccedilal mas n n Kapsam
1
2 WEB 20 AKIMI 2
21 Web 20 Platformunda Oumlne Ccedil kan Popuumller Uygulamalar 4
211 Double Click - Google AdSense 4
212 Flickr 5
213 BitTorrent 5
214 Sosyal A Siteleri 8
2141 Facebook 8
215 Web Guumlnluumlkler 11
216 Wiki 11
217 ccedilerik Youmlnetim Sistemleri 13
218 Etiketleme (Folksonomi) 14
22 Web 20 da Site Tasar m nda Dikkat Ccedileken Oumlzellikler 14
221 Logolar 14
222 Butonlar 15
223 Arka Planlar 15
224 Ccedilerccedileveler 16
225 Menuumller 16
3 AJAX 17
31 Google Suggest 18
32 Google Maps 18
33 Neden AJAX 19
34 AJAX Metodolojisi 23
341 HTTP Requests Nesnesi 24
II
342 HTTP Request Nesnesinin Oumlzellikleri ve Youmlntemleri 25
343 HTTP Response Nesnesi 26
35 AJAX leti im Teknikleri 27
351 XMLHttp Requests (XHR) Nesnesi 27
36 AJAX Olu turan Bile enler 34
361 E zamanl Olmayan leti im 34
362 E zamanl leti im 35
363 Javascript 36
37 Basit Bir AJAX Oumlrne i 49
38 XML 51
381 Oumlrnek XML Belgesi Olu turma 53
382 XML Dokuumlman n n Yap s
55
383 XML nin Soumlz Dizim Kurallar
67
384 XML Dokuumlmanlar n n leyi i ve Sunumu 69
39 AJAX Prensipleri 69
310 AJAX Kuumltuumlphaneleri ve Araccedillar
70
3101 Prototype 70
3102 AJAX Gear Toolkit 71
3103 AspNet Ajax 71
3104 Dojo Toolkit 71
3105 MochiKit 71
3106 PHPLiveX 71
3107 Sardalya (Sarmal Dinamik Altyap s ) 72
3108 Sajax 72
3109 Solvent 72
31010 AjaxAC 72
31011 Xajax 72
31012 Scriptaculous 73
311 AJAX Uygulamalar nda Kullan lan Di er Teknolojiler 73
3111 HTMLXHTML 73
3112 CSS 73
3113 XSLT 74
4 FLEX 75
41 Adobereg Flexreg 3 Kurulumu ccedilin Gereken Minimum Sistem Gereksinimleri 76
411 Windows ccedilin Flex Builder 3 (Standart ve Profesyonel) 76
III
412 Macintosh ccedilin Flex Bu lder 3 (Standart ve Profesyonel) 77
5 CcedilEVR M Ccedil KATALOG TASARIMI F rat Uumlniversitesi Oumlrne i 78
6 SONUCcedil 88
61 Oumlneriler 89
KAYNAKLAR 90
OumlZGECcedilM
95
EK 96
IV
EK LLER L STES
Sayfa
ekil 21 Web 20 kavram
2
ekil 22 Web 20 ak m nda oumlne ccedil kan uygulamalar 3
ekil 23 Doubleclick ve Google Adsense sitelerinin logolar 4
ekil 24 Flickr sitesinin logosu 5
ekil 25 ccedilerik da t m sitelerinde bittorrent site logosu 5
ekil 26 Torrent program n n anasayfas
6
ekil 27 Torrent program n n arayuumlzuuml 7
ekil 28 Facebook kullan c say s n n aylara goumlre da l m grafi i 9
ekil 29 Aylara goumlre facebook ve myspace site analizi 10
ekil 210 Vikipedi oumlzguumlr ansiklopedi sitesinin logosu 12
ekil 211 Oumlrnek etiket bulutu 14
ekil 212 Yans mal logo oumlrne i 15
ekil 213 Web 20 da buton oumlrnekleri 15
ekil 214 Web 20 da arka plan oumlrnekleri 15
ekil 215 Web 20 da ccedilerccedileve yap s na oumlrnek 16
ekil 216 Web 20 da menuuml oumlrne i 16
ekil 31 Jesse James Garrett in makale goumlruumlntuumlsuuml 17
ekil 32 Google Suggest ekran goumlruumlntuumlsuuml 18
ekil 33 Google Maps ekran goumlruumlntuumlsuuml 18
ekil 34 Geleneksel sunucularda istekcevap modeli 20
ekil 35 AJAX n asenkron istekcevap modeli 20
ekil 36 Klasik Web uygulamalar nda t kla-bekle doumlnguumlsuuml 21
ekil 37 T kla-T kla interaktif AJAX uygulamas
21
ekil 38 Geleneksel Web ileti im modeli ile AJAX ileti im modeli 21
ekil 39 Web uygulamas ndaki cevap ak
22
ekil 310 AJAX uygulamalar ndaki istek ak
22
ekil 311 Normal Web ile AJAX uygulamalar n n kar la t rmas
23
ekil 312 Geleneksel istekcevap (requestresponse) youmlntemi 23
ekil 313 Standart AJAX etkile imi 32
ekil 314 E zamanl olmayan ileti im modeli 35
ekil 315 E zamanl ileti im modeli 36
ekil 316 Javascript nesneleri 44
V
ekil 317 DOM a accedil yap s
46
ekil 318 AJAX oumlrne i 49
ekil 319 sonuchtml sayfas n n ekran ccedil kt s
51
ekil 320 denemexml dosyas n n a accedil yap s
53
ekil 321 XML belgesi 55
ekil 322 Oumlrnek bir XML dokuumlman yap s
56
ekil 323 denemexsd nin ekran goumlruumlntuumlsuuml 65
ekil 41 Flex uygulamalar n n i lem ak emas
75
ekil 42 Flex arayuumlzuuml 76
ekil 51 Kodlama algoritmas
79
ekil 52 Katalo un ilk sayfas n n ekran goumlruumlntuumlsuuml 81
ekil 53 Katalo un 23 sayfa goumlruumlntuumlsuuml 82
ekil 54 Katalo un sayfa ccedilevirme efektli goumlruumlntuumlsuuml 83
ekil 55 Katalo un navigasyon ccedilubu u 84
ekil 56 Tuumlm Sayfalar duuml mesi t kland ndaki ekran goumlruumlntuumlsuuml 85
ekil 57 Zoom oumlzelli i 86
VI
TABLO L STES
Tablo 21 Facebook ve myspace in buumlyuumlme tablosu 10
Tablo 31 Standart XHR nesnesinin oumlzellikleri 30
Tablo 32 Standart XHR nesnesinin fonksiyonlar
31
Tablo 33 De i ken tuumlrleri 41
Tablo 34 leccediller ve goumlrevleri 41
Tablo 35 kili i leccediller 42
Tablo 36 DTD karakterleri ve accedil klamalar
61
Tablo 37 DTD ccedilindeki niteliklerin de er ve accedil klamalar
62
Tablo 38 Varsay lan de erler ve accedil klamalar
62
Tablo 39 XML Belgelerinde kullan lan varl k bildirimleri 67
VII
KISALTMALAR L STES
AJAX Asenkron JavaScript ve XML
API Application Programming Interface (Uygulama Program Arayuumlzuuml)
ASP Active Server Pages (Aktif Sunucu Sayfalar )
CDNs Content Distributed Networks ( ccedilerik Da t c A lar)
CMS Content Management System ( ccedilerik Youmlnetim Sistemi)
CGI Common Gateway Interface (Genel Geccedili Arayuumlzuuml)
CSS Cascading Style Sheets (Basamakl Stil Sayfalar )
DFA DART for Advertisers
DOM Document Object Model (Doumlkuumlman Nesne Modeli)
DTD The Document Type Definition (Dokuumlman Tipi Tan mlama)
DWR Direct Web Remoting ( Direkt Web Eri imi)
ECMA European Computer Manufacturers Association (Avrupa Bilgisayar
Uumlreticileri Birli i)
GOumlBL GNU Oumlzguumlr Belgeleme Lisans
HTML Hyper Text Markup Language (Yard ml Metin aretleme Dili)
HTTP Hypertext Transfer Protocol (Yard ml Metin Aktar m Protokoluuml)
IDE Integrated Development Environment (Tuumlmle ik Geli tirme Ortam )
JSP Java Server Pages (Java sunucu Sayfalar)
LAN Local Area Network (Yerel Alan A )
MIYS E-ticaret ve Muuml teri li kileri Youmlnetim Sistemleri
MSN Microsoft Network
OOP Object Oriented Programming (Nesne Youmlnelimli Programlama)
PHP Hypertext Preprocessor (Yard ml Metin Oumlni leme)
PIs Processing Instructions ( lem Accedil klamalar )
RIA Rich Internet Applications (Zengin nternet Uygulamalar )
VIII
RPC Remote Procedure Call (Uzaktan Yordam Ccedila rma)
SAX Simple API for XML (XML iccedilin Basit API)
WIKI What I Know is (Ne Biliyorsam)
W3C World Wide Web Consortium (Duumlnya Ccedilap nda A Birli i)
XML eXtensible Markup Language (Geli tirilebilir aretleme Dili)
XHR XMLHttpRequest
XHTML Extensible HyperText Markup Language (Geli tirilebilir Yard ml Metin
aretleme Dili)
XSD eXtensible Schema Document(Geni letilebilir ema Dokuumlman )
XSL Extensible Stylesheet Language (Geli tirilebilir Biccedilimlendirme Dili)
XSLT Extensible Stylesheet Language Transformations (Geli tirilebilir
Biccedilimlendirme Dil Doumlnuuml uumlmleri)
IX
OumlZET
Yuumlksek Lisans Tezi
AJAX TEKNOLOJ S KULLANARAK CcedilEVR M Ccedil
KATALOG TASARIMI
Zeynep OumlZER AYDO MU
F rat Uumlniversitesi
Fen Bilimleri Enstituumlsuuml
Elektronik-Bilgisayar E itimi Anabilim Dal
2009 Sayfa 107
Gerccedilekle tirilmi olan bu uygulama kapsam nda Flex program ve Web 20 n
ccedilekirde ini olu turan AJAX (Asynchronous JavaScript and XML) teknolojisi kullan larak F rat
Uumlniversitesini tan tan kolayl kla guumlncellenebilen Zengin nternet Uygulamalar na (RIA- Rich
Internet Applications) oumlrnek bir ccedilevrimiccedili katalog tasar m ve gerccedilekle tirimi yap lm t r
Projenin gerccedilekle tirim a amalar nda kullan lan teknolojilerin ve izlenen youmlntemlerin
anlat mlar n iccedileren bir yol haritas olu turulmu tur
Anahtar soumlzcuumlkler AJAX RIA Web 20 ccedilevrimiccedili katalog e-dergi
X
ABSTRACT
Master Thes s
ONLINE CATALOG DESIGN USING AJAX TECHNOLOGY
Zeynep OumlZER AYDO MU
F rat University
Graduate School of Natural and Applied Sciences
Department of Electronic and Computer Education
2009 Page 107
Embracing in this comparison F rat University is introduced by using Flex program and
AJAX (Asynchronous JavaScript and XML) technology which forms Web 20 Also RIA (Rich
Internet Applications) is easily renowated which is instance for online catalog design A road
map including realization of the project and tracing methods are illustrated
Keywords AJAX RIA Web 20 online catalog e-journal
1
1 G R
Web in geli im suumlrecinde ccedile itli youmlntemler kullan l r Bu youmlntemlerin farkl amaccedillara
hizmet etmeye ba lamas yla Web te ak mlar meydana gelmi tir Bu ak mlardan ilki Web 10
ak m olarak adland r l r Bu ak mda kullan c lar bilgilendirmeye youmlnelik iccedilerik sunumu
yap lmaktad r [1]
Web 20 ak m ise internet sitelerinin bilgi bar na olmas ndan i leyen platformlara
ta nmas
olarak tan mlanabilir Web 20 RIA (Rich Internet Applications- Zengin nternet
Uygulamalar ) i lemleri internet sunucu mimarisi temeline dayanmaktad r RIA da beraberinde
kulland AJAX Flex gibi teknolojiler uumlzerine kuruludur [1]
Baz yeni teknolojilerle de i en World Wide Web duumlnyas Web 20 RIA AJAX
(Asynchronous JavaScript and XML- E zamanl olmayan JavaScript ve XML) terimleriyle izah
edilmektedir
11 Tez Ccedilal mas n n Amac
Bu tez ccedilal mas yla Web 20 n ccedilekirde ini olu turan AJAX (Asynchronous JavaScript
and XML) teknolojisi ve Flex program kullan larak F rat Uumlniversitesini tan tan kolayl kla
guumlncellenebilen Zengin nternet Uygulamalar na (RIA-Rich Internet Applications) oumlrnek bir
ccedilevrimiccedili (online) katalog tasar m yap lmas hedeflenmi tir Projenin gerccedilekle tirim
a amalar nda kullan lan teknolojilerin ve izlenen youmlntemlerin anlat mlar n iccedileren bir yol
haritas olu turulmas amaccedillanm t r Bu tez ccedilal mas sonucunda geli tirilen yaz l mla kolay
guumlncellenebilen katalog haz rlanmas na katk sa lanmas amaccedillanm t r
12 Tez Ccedilal mas n n Kapsam
Bu tez ccedilal mas 6 boumlluumlmden olu mu tur 1 Boumlluumlm giri i olu turmaktad r 2Boumlluumlmde
Web 20 ak m incelenecektir 3 Boumlluumlmde AJAX teknolojisi accedil klanacakt r 4 Boumlluumlmde
yaz l m gerccedilekle tirme arac olarak kullan lan Flex tan t lacakt r 5 Boumlluumlmde gerccedilekle tirilmi
ccedilevrimiccedili katalog hakk nda bilgi verilecektir 6 Boumlluumlmde ccedilal man n sonuccedillar
ve gelece e
youmlnelik oumlneriler bulunmaktad r
2
2 WEB 20 AKIMI
Ccedilo u teknolojilerde oldu u gibi yenilik aray ihtiyaccediltan do ar Yeni Web ak mlar n n
do u u da 2001 y l ndaki tuumlm duumlnyay etkileyen kriz sonras nda iflas eden irketlerin yeniden
aya a kalkma ccedilabalar n n bir sonucu olarak ortaya ccedil km t r [2 3] Web 20 ak m 2005 te ilk
kez OReilly ve MediaLive International aras nda gerccedilekle en bir beyin f rt nas s ras nda
uumlretilmi bir kavramd r [3] Web 20 kavram World Wide Web teknolojisinde kullan lan
de i en ve geli en e ilimlere verilen bir ad olarak da tan mlanabilmektedir
ekil 21 Web 20 kavram
[4]
Web 20 kavram ekil 21 de goumlsterildi i uumlzere Web bir uygulama platformu ve sosyal
etkile imli olma oumlzelliklerini bar nd r r Ccedilevrimiccedili hayat n ba lang c ve devam n temsil eder
Say sal ortamda kendini ifade etme imkacircn sunar Kullan c lar (oku-yaz oumlzelli i ile) Web te
kat l mc kimlik kazan r
Asl nda Web 20 ortam n 1964 y l nda McLuhan Global Koumly terimini kullanarak
ortaya atm t r McLuhan Global Koumlyuuml gelecekte ileri teknolojiye geccedililmesiyle ve toplumlar
aras nda s n rlar n kalkmas yla duumlnyan n her kouml esinde teknolojiyi kullanan herkesin co rafi
s n rlar ve s n rlamalar olmaks z n diledikleri ki iyle ileti im kurabilecekleri
haberle ebilecekleri ve payla mda bulunabilecekleri bir ortam olarak tan mlam t r [5]
Mc Luhan n n tan m ndan guumlnuumlmuumlze kadar geccedilen suumlreccedil iccedilinde kullan c ihtiyaccedillar
da
de i im ve geli im goumlstermi tir Bu ihtiyaccedillar kar lamak iccedilin genel olarak internet
uygulamalar n n daha zengin bir arayuumlz ile sunulmas n sa layan uygulamalar Zengin nternet
Uygulamalar ad alt nda k sa zaman oumlnce hayat m za girmi tir
RIA uygulamalar s radan HTML web uygulamalar ile standart masauumlstuuml uygulamalar
aras ndaki bo lu u dolduran bir geli tirme platformudur Web arayuumlzuumlnde basit HTML ile
3
s n rl kalmadan masauumlstuumlndeki zengin goumlrsel ouml eleri program niteli inde kullanabilecek her
tuumlrluuml araccedil RIA konseptini uygulamaktad r [6]
Kullan c lar art k iccedilerik uumlreticilerin s n rlar n kald rarak kullan c n n yan s ra kat l mc
olarak ta nitelendirilerek etkile imli bir rol uumlstlenmi lerdir nternetin bu yeni gereksinimlere
cevap vermesiyle ortaya ccedil kan Web 20 doumlnuuml uumlmuuml hem kullan c say s nda art a neden
olmu tur hem de kullan c lar n iccedilerikleri yani mesajlar olu turdu u ve payla t buumlyuumlk bir
guumlce doumlnuuml muuml tuumlr Bu guumlcuumln oumlnemini ccedilabuk anlayan kurulu lar mimarilerine AJAX da dacirchil
ederek oumlnce arama motorlar n Google Yahoo yu daha sonra MSN yi Hotmail i bloglar
(Myspace Bloggercom Blogcucom gibi) Youtube u Wikileri ve sosyal a sitelerini
(Facebook Twitter Orkut vb) ke fetmi lerdir Bu ke iflerin sonucunda McLuhan n Global
Koumly uumlnuumln 21 Yuumlzy lda tam olarak gerccedilekle ti i soumlylenebilir Bu interaktif siteler sayesinde
ayn anda milyarlarca ki inin rk dil din ya am tarz e itim ya cinsiyet statuuml goumlzetmeksizin
e zamanl payla mda bulunup kendi ccedilevreleri ve ba ka ccedilevrelerle ileti ime geccedilebilmektedirler
ekil22 de goumlsterilen irketler Web 20 ak m nda oumlne ccedil kan sitelerin oumlzellikle ccedilevrimiccedili
faaliyet goumlsteren reklacircm irketleri pazarlama ve ticari irketler perspektifinden bak ld nda da
oumlnemli bir potansiyele sahip kitle ileti im araccedillar olarak goumlruumlluumlr [7]
ekil 22 Web 20 ak m nda oumlne ccedil kan uygulamalar [8]
Kitle ileti im arac olarak kullan labilen bu uygulamalar iccedilin birccedilok geli tirme ortam
mevcuttur Adobe Flex AJAX Java Applet Adobe Flash ve Microsoft Silverlight uygulamalar
en ccedilok bilinen RIA uygulamalar d r A a da da bu uygulamalarla olu turulmu Web 20
platformunda oumlne ccedil kan popuumller uygulama oumlrnekleri incelenecektir [7]
4
21 Web 20 Platformunda Oumlne Ccedil kan Popuumller Uygulamalar
kinci nesil internet hizmeti olarak literatuumlre giren Web 20 ak m yla internet sitelerinin
ccedilehresi de i mi tir nternet siteleri art k masauumlstuuml uygulamalar ile internet uygulamalar
aras nda bir koumlpruuml goumlrevi uumlstlenmi tir A a da bu ak m n popuumller uygulamalar ndan oumlrnekler
bulunmaktad r
211 Double Click - Google AdSense
Google firmas na ait iki uygulama da reklacircm verenlerin ve yay nc lar n web uumlzerinden
reklacircm hizmeti sunmas n sa layan sitelerdir Her reklacircmc n n hedefi tuumlketicilerin isteklerine
uygun ccediloumlzuumlmler sunmakt r Bu ccediloumlzuumlm ise Web 20 la reklacircmlar n profilini de i tirmi tir Art k
istenmeyen kendili inden accedil lan reklacircm pencerelerinin yerini kullan c n n bilgisayar na
yerle tirilmi ccedilerezlerden ccedilekti i bilgilere dayanarak kullan c n n ilgisini ccedilekebilece ini tahmin
etti i rahats z edici olmayan metin ya da resim tabanl
reklacircmlar alm t r
DoubleClick in di er reklacircm firmalar ndan ayr lan youmlnuuml reklacircmc lar iccedilin DART
oumlnerisiyle k saca DFA (DART for Advertisers) ile reklacircm youmlnetimi ve servis ccediloumlzuumlmlerinde
kullan c lar na dijital pazarlama programlar n n tuumlmuumlnuuml kapsayan youmlnetimi kolay daha iyi bir
arayuumlze sahip h zl geni bir arama sistemine sahip de eri artan sitelerin trafik ak n
belirleyen bir ccediloumlzuumlm olmu tur DoubleClick daha ccedilok grafiksel reklacircmlar yay nlamaktad r
Oumlnceleri Web 10 uygulamalar aras nda say lan bu site Web 20 doumlnuuml uumlmuumlnuuml ba ar yla
gerccedilekle tirmi tir [9]
Google AdSense ise web sitesi yay nc lar n n site iccedileri iyle alakal dinamik ve goumlze
batmayan Google reklacircmlar n
web sitelerinde goumlstererek kullan c lar n bu reklacircmlara
t klamalar yla para kazanmalar n sa laman n h zl ve kolay bir yoludur Uumlcretsiz olan bu
program sayesinde her t klama ve goumlsterim iccedilin site sahiplerine oumldeme yap l r [10] Bu
uygulamalar sayesinde Web de daha ak ll bir sisteme do ru youmlnelim ba lam t r
ekil 23 Doubleclick ve Google Adsense sitelerinin logolar [11 12]
5
212 Flickr
Yahoo nun sundu u bir hizmet olan uumlcretsiz foto raf arama ve payla m sitesi Flickr
ayn zamanda web servisi ve ccedilevrimiccedili topluluk platformudur Web 20 n ilk uygulamalar ndan
biridir Foto raf payla m nda en popuumller sitelerin ba nda gelmektedir ccedileri inde yakla k
olarak 3 milyar
a an foto raf bulunmaktad r Yenilikccedili ccedilevrimiccedili topluluk araccedillar foto raflar
etiketlemeye ve s n fland rmaya yard mc olur Bu da popuumllaritesindeki ciddi art n
nedenlerinden biridir
Flickr a imaj yuumlkleyebilmek iccedilin Yahoo dan bir e-mail adresiyle sisteme giri
yap lmal d r Payla lmak istenen foto raflar uumlcretli uumlyelik olmadan her imaj iccedilin 5 Mb l k
s n rlamayla ayda toplam 100 Mb a kadar yuumlkleme yap labilir Sadece foto raf eklemenin
d nda imajlar uumlzerinde duumlzenlemeler yap labilir Belirlenen alanlara notlar eklenebilir
Be enilen foto raflara yorumlar eklenebilir Ccedile itli gruplara uumlye olunup ileti im kurulabilir
Ayr ca API leri sayesinde XML-RPC (Remote Procedure Call- Uzaktan Yordam Ccedila rma)
arabirimi kullanarak flickr sitesindeki foto raflarla ilgili bilgileri proseduumlrler sayesinde XML
format nda al p ayr t rarak ba ka bir programda kullan labilinir Flickr daki blog grup ve
etiketleme alt yap s bu API lere dayanmaktad r [13]
ekil 24 Flickr sitesinin logosu [14]
213 BitTorrent
BitTorrent internet uumlzerinden yuumlksek h zlarla iccedileri in da t ld duumlnya ccedilap nda bir
standartt r Ayr ca 150 milyondan fazla kullan c ya sahip en son p2p (peer to peer) dosya
payla m youmlntemlerinden biridir Di er p2p payla m programlar ndan fark sabit olmayan
ba ms z sunucu tan mlama dosyalar sayesinde sabit bir sunucuya ihtiyaccedil olmaks z n belirli bir
protokol ccedilerccedilevesinde indirme (download) yaparken yuumlkleme (upload) yap lmas na da izin
vererek payla ma devam edebilmesidir [15]
Python programlama diliyle yaz lm bir uygulamad r [15]
ekil 25 ccedilerik da t m sitelerinde bittorrent site logosu [16]
6
Bit Seli olarak da ccedilevirebilece imiz ccedilok h zl bir sistemdir BitTorrent sayesinde
oldukccedila buumlyuumlk boyutlu videolara ses ya da yaz l m dosyalar na daha h zl daha ucuz ve daha
kolay bir ekilde ula labilmeyi sa lar
Guumlnuumlmuumlzde ccedilerik Da t c A lar (Content Distributed Networks-CDNs) guumln geccediltikccedile
popuumllaritesini art rmaktad r Bittorent kullan m n n 2004 te internet te teknik standartlar ve
youmlnetim konusunda yetkili organ olan W3C (World Wide Web Consortium - Duumlnya Ccedilap nda
A Birli i) taraf ndan yap lan bir ccedilal maya goumlre P2P ba lant lar n toplamda 60 n tuumlm
internet trafi inin ise 30 unu a aca tahmin edilmektedir
BitTorrent le dosya transferi yap l rken oumlncelikle bilgisayarda BitTorrent stemci
(Client) yuumlkluuml olmal d r stemci yaz l mlara oumlrnek Flashget Azureus BitTorrent Torrent
ABC LimeWire vb yaz l mlar olabilir ekil 26 ve ekil 27 de en popuumller uygulamalardan
Torrent yaz l m n n kurulum ve arayuumlz oumlrne i goumlruumllmektedir
ekil 26 Torrent program n n anasayfas
7
ekil 27 Torrent program n n arayuumlzuuml
BitTorrent istemciler BitTorrent Protokol uygulamalar n yapar Her istemci bu
protokoluuml kullanarak dosyalar n kullan c lar n BitTorent in kulland protokole sahip
duumlnyadaki tuumlm iccedileriklere h zl ve guumlvenilir bir ekilde eri mesine izin verir stenilen iccedileri in
indirilebilmesi iccedilin gerekli tan mlama bilgilerinin bar nd
torrent uzant l bir dosyaya
ihtiyaccedil vard r Bu torrent dosyalar n ccedile itli duyuru sitelerinden ya da Web den temin edildikten
sonra istemciler yukar da bahsedilen herhangi bir torrent yaz l m kullanarak bu dosyay accedilarlar
ndirme ba lad anda indirilmek istenen dosyay payla an kullan c lar n olu turdu u kuumlccediluumlk
a a (swarm) dacirchil olurlar Bu kuumlccediluumlk a daki her kullan c dosyan n indirdi i boumlluumlmuumlnuuml di er
kullan c larla payla mas gerekir Tuumlm bu i lemleri de takipccedili (tracker) isimli bir sunucu kontrol
eder Yakla k olarak 256 Kb buumlyuumlkluuml uumlndeki bu kuumlccediluumlk boyutlu dosyalara indeksleyici
(indexer) de denmektedir Kuumlccediluumlk bir a
kurulmas iccedilin tuumlm dosyaya sahip en az bir da t c n n
(seeder) olmas gerekir Da t c lar herhangi bir dosyay yuumlkleyen kaynaklard r O dosyan n
tamam n
kendi bilgisayar na indiren her kullan c art k bir da t c
olur Fakat da t c olmak
kullan c lar n insiyatifindedir ndirme i lemi bittikten sonra o dosya payla ma accedil k tutulmazsa
di er kullan c lar da t c dan bu dosyay ccedilekerek indirme i lemini h zland ramazlar Da t c
say s
ne kadar artarsa indirme i lemi o kadar h zl olur ndirme yapan kullan c lara da grup
uumlyeleri (peers) denilmektedir Torrent dosyas n indiren kullan c lar izleyicilere (tracker) dosya
hakk nda bilgi goumlnderirler di er kullan c lar (peers) ise izleyicilere ba lanarak kimde hangi
dosyan n hangi parccedilalar n n oldu unu ouml renirler zleyiciler uumlzerinden kesinlikle dosya transferi
8
gerccedilekle mez sadece kaynak payla l r Hangi kullan c ne kadar dosya ccedilekti ve ne kadar
yuumlkledi gibi istatistiksel bilgileri de bar nd rabilir [16 17]
Sadece indirme i lemi yap p kaynak olmay istemeyen ki ilere leecher (suumlluumlk) denir Bu
anlay a sahip ki iler gruplar iccedilinde ho kar lanmazlar Bir torrent dosyas payla m nda
kaynak (seed) say s s f r ise yani dosyan n tamam na sahip ki iler payla mdan ccedilekilmi lerse
eksik dosyaya sahip buumltuumln uumlyeler (peer) birbirleri aras nda veri al veri i yaparak eksik
parccedilalar indirebilecekleri bir kaynak olmad ndan belli bir yuumlzdesi tamamlanm dosyaya
sahip olarak kal rlar Bu durumda daha oumlnce dosyay indirmi ve dosyan n tamam na sahip olan
bir kullan c
eksik parccedilalar goumlndermek iccedilin dosyay yeniden payla ma accedilabilir (seed eder) Bu
olaya reseed etme denir [18]
214 Sosyal A Siteleri
Sosyal a lar bireyler aras ndaki ki isel veya profesyonel ili kilerin olu turuldu u
duumlzenlendi i a d r [19] Son y llardaki bilgi teknolojilerindeki geli meler sosyal a lar n gerccedilek
ya amdakinden daha farkl bir ekilde yeniden yap lanmas n
sa lam t r Herhangi bir
irketteki yerel a iccedilinde personelin e-posta al p-goumlndermesiyle olu an etkinlik ve e-posta
gruplar ilk ccedilevrimiccedili sosyal a oumlrneklerinden say labilir Daha sonra h zla hayat m za giren
bloglar wikiler ve sosyal a siteleri gibi sosyal i birli i sa layan teknolojilerin geli mesi
insanlar n ileti im kurduklar bilgi resim muumlzik video payla t klar ve birbirleriyle suumlrekli
haberle tikleri ccedilevrimiccedili sanal topluluklar n olu mas n sa lam t r [20] Bu topluluklar n h zla
yay lmas n n temelinde kullan c lar n bireysel aktivitesine ba l olarak duygu ve duuml uumlncelerini
bilgiyi guumlncel haberleri tavsiyelerini be enilerini payla ma fikri vard r A a da sosyal a
sitelerinden en popuumller olanlar iccedilinde yer alan Facebook incelenecektir [7]
2141 Facebook
En yayg n sosyal a sitesi Facebook Amerika Birle ik Devletleri nde 4 ubat 2004
tarihinde Harvard Uumlniversitesinde ouml renci Mark Zuckerberg taraf ndan kurulmu tur Facebook
oumlncelikle Harvard ouml rencileri iccedilin kurulmu tu Daha sonra h zla tuumlm duumlnyaya yay lm t r
Kullan c lar siteyi uumlcretsiz uumlye olarak kullanabilmektedir Site gelirini banner reklamlar ndan ve
sponsor gruplar ndan almaktad r Duumlnyan n en popuumller Web 20 blogu TechCruncha goumlre
Amerika Birle ik Devletleri ndeki uumlniversitelerdeki ouml rencilerin 85inin facebookda bir
hesab bulunmakta ve bunlar n 60 her guumln ba lanmaktad r 85 her hafta 93 her ay
ba lananlar aras ndad r [21] Facebook sitesinden ba ms z Web 20 ak m n yak ndan takip
9
eden bir blog sitesi olan insidefacebook 2009 Ocak ay n n ba nda yay nlad habere goumlre
facebook kullan c say s a a daki grafikte goumlruumllduuml uuml gibi yakla k 140 milyonu bulmu tur
Milyonlar a k n aktif uumlye say s yla guumlnde ortalama 150 bin aktif kullan c yla sanal duumlnyan n en
popular sitesi olmu tur [22]
ekil 28 Facebook kullan c say s n n aylara goumlre da l m grafi i [23]
Aktif kullan c lar n iccedileri e katk s a a daki istatistik sonuccedillar n do urmu tur [22]
13 milyon kullan c durumlar n en az ndan guumlnde bir kez guumlncellenmektedir
25 milyon kullan c her guumln Sayfa hayran (fan of Pages) olmaktad r
Siteye her ay 700 milyon foto raf yuumlkleniyor ki toplam foto raf rakam yakla k 10
milyar bulmaktad r
Her ay 4 milyon video yuumlklenmektedir
Her ay 15 milyon iccedilerik parccedilas (web linki yeni hikacircyeler blog yaz lar notlar
foto raflar vb) payla ma sunulmaktad r
Her ay 2 milyon etkinlik olu turulmaktad r
Sitede 19 milyon adet aktif grup varl n suumlrduumlrmektedir
Yukar da belirtilen bu rakamlar sosyal ileti im a lar n n ne kadar ciddi boyutlarda bir
kapasiteye sahip oldu unu goumlstermektedir
10
ekil 29 Aylara goumlre facebook ve myspace site analizi [22]
Facebook ve ona en yak n rakibi sosyal ileti im web sitesi olan MySpace compete de
kar la t r ld nda yukar daki grafik elde edilmektedir
Tablo 21 Facebook ve myspace in buumlyuumlme tablosu
Tarih 032008 032009 Kullan c
Ayl k Y ll k
facebookcom
91054535 234
1951
myspacecom
55594761 48
-114
Tablo 21 de Mart 2008 ile Mart 2009 aras ndaki ayl k aktif ziyaretccedili say s n
goumlstermektedir Compete verilerine goumlre Aral k 2008 de facebook myspace in kullan c say s n
yakalam t r Tablo 21 deki verilere goumlre bir oumlnceki y la goumlre Facebook taki kullan c say s nda
ayl k 234 luumlk bir art varken MySpace 48 lik bir buumlyuumlmeye sahiptir Yakla k olarak
ayl k MySpace Facebook u 5 kat geriden takip etmektedir Facebook taki bir oumlnceki y la
goumlre 1951 lik buumlyuumlmeye kar n myspace de 114 luumlk kuumlccediluumllme goumlruumllmektedir Elde edilen
veriler ileriki y llarda bu rakamlar aras ndaki uccedilurumun artaca n i aret etmektedir
Facebooktaki bu h zl buumlyuumlme ekonomi ve ticari sektoumlruumlnuumln de ilgisini ccedilekmektedir Oumlnemli bir
yat r m alan olarak giri imcileri cezbetmektedir
Facebook youmlneticilerinden Peter Thiel ise Facebookun iccedil de erinin 8 Milyar dolar
oldu unu ve proje gelirlerinin 2015 y l iccedilin 1 milyar dolar oldu unu soumlylemektedir [24]
Duumlnyaca tan nm Microsoft irketi 24 Ekim 2007 de Facebooku 16l k hissesini 240 milyon
dolara sat n alm t r Google ve di er irketler de gittikccedile de er kazanan Facebook hisselerine
youmlnelmektedir [24]
11
215 Web Guumlnluumlkler
ngilizcedeki Web
ve log kelimelerinin birle iminden olu an Blog kelimesi internet
uumlzerinden ki ilerin istedikleri konu hakk nda fikir beyan edebilecekleri kendilerini kolayca
ifade etmelerini sa layacak bir ortamd r
Bloglar genellikle en yeni yorum ve yaz lardan eski tarihli yorum ve yaz lara do ru
s ralanm web tabanl yay nlar
belirtir Bloglar n iccedileri i suumlrekli guumlncellendi i iccedilin sadece
bloglar iccedilin kurulmu oumlzel indeksleme mekanizmalar ve arama motorlar bulunmaktad r [25]
Duumlnya ccedilap nda indeksleme mekanizmalar n n en oumlnde geleni Technorati firmas
milyonlarca blog okuyucusu iccedilin her geccedilen guumln 15 milyondan fazla yeni blogu
indekslemektedir [26] Forrester in ara t rma irketlerinden internet ile ilgili ciddi bir ara t rma
kurumu olan JupiterResearch uumln 2008 A ustos unda bloglar uumlzerine gerccedilekle tirdi i
ara t rmada internet kullan c lar na 40 soruluk kapal uccedillu soru youmlneltilmi tir Bu ara t rma
sonucunda geccedilti imiz doumlrt y l iccedilerisinde bloglar n okunma oranlar nda 300 oran nda bir art
oldu u ortaya ccedil km t r Belki ilgimi ccedilekecek bir bloga ula abilirim duuml uumlncesi ile kullan c lar
okuduklar bloga eklenmi
olan di er linkleri de takip edebiliyorlar S k blog okuruyum
diyenlerin 38 i yeni bir blogu okudu u blogun linklerinden ke fetti ini belirtmi tir
Ara t rmaya kat lan blog okurlar n n 34 uuml Web te dola rken yeni bir blogla tan t n 11 i
blog arama motorlar n kulland n
belirtmi [27]
Bloglar n bu kadar yayg nla mas n n nedenlerinde biri de internet gezginler sanal
acirclemdeki tek duumlze yorumsuz hatta bazen oldukccedila bilimsel bir dille yaz lm yaz lardan
s k ld klar iccedilin bloglar tercih etmektedir Bloglarda ki iler gittikleri bir seminer hakk ndaki
yorumlar n kulland klar bir uumlruumln hakk ndaki fikirlerini k saca hayata dair kendi yorumlar n
katarak ba ka ki ilerle payla abilmektedirler
216 Wiki
Bilgiye ula mak iccedilin eskiden oldu u gibi kitap ya da ansiklopediler kullan lmamaktad r
Guumlnuumlmuumlzde kuumlreselle menin ve geli en teknolojinin etkisiyle tuumlm kaynaklara bilgisayar
uumlzerinden ula lmas elde edilen bilgilerin k sa suumlrede derlenebilmesine imkacircn vermi tir
Wiki ler kullan c lar n uumlzerinde istedi i gibi duumlzenlemeler yapmas na izin veren bilgi
sayfalar toplulu udur ngilizce What I Know is soumlzcuumlklerinin k saltmas
olan Wiki
Bildi im kadar yla anlam na gelir [28]
12
Wikilerin ccedilal ma prensibi u ekilde accedil klanabilir Bir web program script ya da script
grubu sayesinde veritaban na yaz lm olan ya da sadece dosya halindeki verileri okur bu
verileri HTML kodlar ile de i tirir ve Web taray c s na yans t r
ekil 210 Vikipedi oumlzguumlr ansiklopedi sitesinin logosu
Wiki dilini kullanan ve internetin en geni iccedileri ine sahip ccedilevrimiccedili ansiklopedisi
Vikipedi 22 Ocak 2007de Alt n Oumlruumlmcek 2006 En yi ccedilerik oumlduumlluumlnuumln sahibi oldu
Wikipediaorg taraf ndan geni kitlelere tan t lan Wiki dili pek ccedilok farkl programlama
platformunda Javascript ASP PHP C++ vb kullan labilmektedir
2161 Wiki Kullanman n Avantajlar
Web proje gruplar
projeleri olu tururken ekiplere ayr ld iccedilin programc lar kendi
goumlrevi d ndaki ccedilal malarda neler yap ld n
tam olarak bilemez ccedileri in yap land r lmas nda
geli melerden sadece iccedilerik koordinatoumlrleri haberdard r An nda yap goumlster oumlzelli iyle Wikiler
bu sorun iccedilin pratik bir ccediloumlzuumlm te kil eder
ndekslenme yapan sitelerde bile arama yap l rken defalarca ayn siteye girilebilir yahut
aran lan bilgiyi bulmak ccedilok zaman alabilir Wiki gereksiz tekrarlardan kurtar r steyen herkes
wiki iccedileri indeki bilgileri eksik ya da hatal
ise de i tirilebilir veya kald rabilir Bu i lemleri
yapan wiki youmlneticilerine wikipedist denir Wikipedistler sayfa duumlzenlemelerine ve iccedilerik
zenginle tirmeye yard mc olurlar
Wiki de de i iklik yap ld nda de i iklik yapan ki inin bir hesab yoksa IP adresiyle
varsa kullan c ad yla kaydedilerek hemen sonuccedil goumlzlenebilir Yap lan iccedileriksel herhangi bir
hata ba kalar taraf ndan fark edildi inde duumlzeltilir Geccedilmi sekmesiyle duumlzeltilen sayfalar n
oumlnceki suumlruumlmleri kronolojik s ralamayla takip edilebilir hatta sayfalar aras nda kar la t rma
bile yap labilir Sayfa iccedilerikleri hakk nda Tart ma
sekmesiyle fikir beyan nda bulunulabilinir
Tart malara yorum eklenebilir Denetleme mekanizmas sayesinde telif haklar n n ihlali gibi
durumlarda ihlali yapan kullan c lar engellenebilmektedir
13
Wiki di er ansiklopedilerden farkl olarak Vikipedi GNU Oumlzguumlr Belgeleme Lisans
(GOumlBL) kullanmaktad r Kullan c lar na oumlzguumlr iccedilerik kat l m e it tarafs z ve uumlcretsiz kat l m
hakk verir Ayr ca diluumllkekonuya goumlre geli mi kategorilendirme sistemine sahiptir Diff
oumlzelli i sayesinde sayfalar aras ndaki fark izlenebilir [29]
217 ccedilerik Youmlnetim Sistemleri
ngilizce Content Management System ya da k saca CMS olarak tan nan ccedilerik
Youmlnetim Sistemleri - YS bilgiyi olu turmak ar ivlemek ara t rmak denetlemek ve
yay nlama olana sa layan buumlyuumlk bir veritaban na sahip moduumlllerden olu an buumltuumlnle ik bir
ortamd r YS lerde iccedilerik iki ayr boumlluumlmden olu ur Bunlardan birincisi uumlzerinde i lem
yap lmam olan ham bilgiyi bar nd ran veritaban
di eri ise bu bilginin yerle imini goumlsteren
ablondur ablonda bilginin goumlsterilece i sayfan n goumlrsel boumlluumlmuumlnuuml olu turan yaz tipleri
renkleri gibi tuumlm biccedilim bilgileri saklan r Genellikle PHP benzeri dillerle kodlan r Boumlylece daha
esnek hale gelebilirler [30]
ccedilerik Youmlnetim Sistemleri uluslararas platformda birccedilok organizasyon iccedilin zorunluluk
haline gelen modern bir veri youmlnetimi tekni idir Guumlnuumlmuumlzde iccedilerik youmlnetim sistemleri kendi
iccedilerisinde boumlluumlnmuuml bir yaz l m enduumlstrisi haline gelmi tir Kendi iccedilerisinde portal sistemleri
Wiki sistemleri web-based grupware vb alt dallara ayr lan enduumlstri guumlnuumlmuumlzde halen
geli imini suumlrduumlrmektedir [31]
Web yay nlama sistemi kullan c lar arad klar iccedileri e goumlre veritaban iccedilinde anahtar
kelimeler yazar olu turulma tarihi gibi ccedile itli oumllccediluumltlere goumlre arama yapabilirler Web iccedilerik
youmlnetim sistemleri bilgi portallar olu turmak iccedilin bilgi youmlnetimi hizmeti sunar YS buumlnyesinde
bar nd rd
yaz l m moduumllleri sayesinde herhangi bir kullan c n n web sitesi uumlzerindeki
i lemleri yapabilmesi iccedilin grafiksel kullan c arayuumlzuuml sunar
YSnin temeli iccedileri in olu turulmas ndan son hali olan yay nlanma evresine kadar tuumlm
evrelerde iccedileri i youmlnetme esas na dayan r Ayr ca YS nin iccedileri i E-ticaret ve Muuml teri li kileri
Youmlnetim Sistemleri (MIYS) (ing CRM - Customer Relationship Management System) ile de
payla labilir YS sayesinde iccedilerik yay n
teknik bilgisi olmayan kullan c lar taraf ndan bile
yap labilir Kullan c lar na sade basit ama guumlccedilluuml web taray c s destekli bir uygulama arayuumlzuuml
sunar [32]
14
218 Etiketleme (Folksonomi)
Web 20 sitelerinde goumlze ccedilarpan etiket bulutlar ile kullan c lara ilgilendikleri konulara
ili kin kolay ve h zl ba lant lar sa lanmaktad r Site iccedileri iyle ilgili konular ccedile itli etiketler ad
alt nda s n fland r l r Her etiket iccedilinde bar nd rd makale yaz ba l k ile farkl boyutlarda
olabilmektedir Yani etiketin yaz boyutu ne kadar buumlyuumlkse iccedilinde bar nd rd iccedilerik o kadar
fazlad r ekil 211 de bir etiket bulutu goumlruumllmektedir
ekil 211 Oumlrnek etiket bulutu
22 Web 20 da Site Tasar m nda Dikkat Ccedileken Oumlzellikler
Yukar daki popuumller uygulamalar olu turulurken dikkat ccedileken ortak oumlzellikler bu ba l k
alt nda incelenecektir Genel olarak Web sitelerindeki de i im ve geli im tasar m ve arayuumlz
accedil s ndan de erlendirilecektir
221 Logolar
Logolara daha parlak bir goumlruumlntuuml verilirken yans ma efekti bolca kullan lmaktad r
Yans ma efekti dinamik olmayan tuumlm objelere kullan larak siteye derinlik hareket ve modern
bir goumlruumlnuuml kazand r l r Kullan c lar n dikkatini ccedilekmek iccedilin ekil 212 de goumlruumllduuml uuml gibi
logolara rozet eklinde yenilik bildiren kelimeler eklenebilmektedir [33] Bu yenilik bildiren
kelimelerden Beta ifadesiyle s k s k kar la l r Bunun nedeni Web 20 ak m na goumlre
kullan c lar birer yard mc -geli tiriciler olarak benimsenir Sonuccedil olarak ortaya ccedil kan site suumlrekli
geli mekte ve de i mektedir Logolara yerle en Beta bu geli imin bir simgesi haline gelmi tir
[34]
15
ekil 212 Yans mal logo oumlrne i [34]
222 Butonlar
Butonlarda ise klasik butonlar yerine resim olarak haz rlanan butonlarda oumlzellikle cam
efekti ve renk geccedili (gradient) efekti hacirckimdir Gradient efekti butonlarda logolarda ya da arka
planlardaki renk geccedili lerini daha yumu at r Bir renkten farkl bir renge keskin geccedili lerin oumlnuumlne
geccedililmi olur [33] Ccedile itli buton oumlrnekleri ekil 213 de goumlruumllmektedir
ekil 213 Web 20 da buton oumlrnekleri
223 Arka Planlar
Web 20 ile sitelerde arka planlar olu turulurken yatay eritlerden ya da duumlz renk
geccedili lerinden faydalan labilinir Her iki ekilde de hedeflenen ortak amaccedil ekil 214 te oldu u
gibi goumlzuuml yormayan tasar mlar gerccedilekle tirmektir [33]
ekil 214 Web 20 da arka plan oumlrnekleri
16
224 Ccedilerccedileveler
Site iccedilinde goumlruumlnmez iframe ler yerine ekil 215 deki gibi ccedilerccedilevelerin yuvarlak kouml eli
kutular olarak tasarlanmas
oumln plana ccedil km t r Kouml eleri keskin duumlz kare veya dikdoumlrtgen
biccedilimde kutular art k kullan lmamaktad r Yuvarlak kouml eli kutu yap m iccedilin farkl tekniklerle
olu turulabilecek programlar mevcuttur Resim css ve html teknikleri kullan lacaksa Spiffy
Corners RoundedCornr ve CSS Rounded Box Generator gibi araccedillar kullan labilirken Nifty
Corners Cube ve curvyCorners gibi araccedillar da JavaScript tekni i ile kullan labilinir [33]
ekil 215 Web 20 da ccedilerccedileve yap s na oumlrnek
225 Menuumller
Site iccedileri inden etkin bir ekilde faydalanabilmek iccedilin menuuml ve sekmeler sade kolay
anla labilir olmal d r Hem goumlrsel hem kullan l menuumller CSS kodlarla olu turulabilir [33]
ekil 216 Web 20 da menuuml oumlrne i
Yukar da bahsedilen konu Web 20 platformunda olu turulan sitelerin genel oumlzellikleri
olarak alg lanabilir Bu oumlzellikler d nda da tasar mlar olabilmektedir
17
3 AJAX
AJAX kavram n n ilk ccedil k noktas
ubat 2005 de Jesse James Garrett taraf ndan the
Adaptive Path Web sitesinde Ajax A New Approach to Web Applications ba l yla
yay nlanan makaledir [35]
ekil 31 Jesse James Garrett in makale goumlruumlntuumlsuuml [36]
Bu makalede Web uygulamalar olu turulurken tasar mlardaki buumlyuumlleyici geli meler
yenilikccedili ccedilevrimiccedili projelerle desteklenirken bunun yan nda h zl cevap verebilir daha zengin
goumlrsellere sahip masauumlstuuml uygulamalar aras ndaki bo lu a dikkat ccedilekilmi tir Bu bo lu u
dolduran Google Suggest ve Google Maps uygulamalar Adaptive Path sitesinde AJAX olarak
adland r lan Web uygulamalar na yeni yakla m n en iyi oumlrnekleri oldu u belirtilmi tir Klasik
Web uygulamalar n n ccedilal ma modeliyle AJAX l uygulamalar n ccedilal ma modeli
kar la t r lm t r AJAX di er uygulama youmlntemlerinden ay ran oumlzellikleri belirtilmi tir
AJAX yakla m na buumlyuumlk yat r mlar yapan Google n neden AJAX tercih etti i accedil klanm t r
Google Groups Google Suggest Gmail Google Maps ve ard ndan Flickr Amazon nun
A9com servisleriyle kullan c lar n oda haline geldi ine de inilmi tir [35]
AJAX n ccedilekirde i olan XMLHttpRequest (XHR) nesnesi sayesinde de iyi haz rlanm
sa lam ve kolay anla labilir-kullan labilir sitelerin olu umuna dikkat ccedilekilmi tir [35] A a da
18
ise AJAX tekni i kullanan en populer servislerden Google Suggest ve Google Maps hakk nda
k sa bilgi verilecektir
31 Google Suggest
ekil 32 Google Suggest ekran goumlruumlntuumlsuuml
Google Suggest a httpwwwgooglecomigcomplete=1amphl=en
adresine girildi inde
ekil 32 de goumlruumlnen ana sayfaya ula lmaktad r Google Suggest servisinin oumlzelli i arama
motorunda aranacak kelimenin harfleri girilmeye ba land andan itibaren filtreleme yaparak
text alan n n alt na accedil lan boumllmede oumlneriler sunulmaktad r Sadece oumlneri sunmakla da kalmay p
oumlnerileri popuumllarite s ras na goumlre s ralar Kelime tamamlama oumlzelli i sayesinde aranan kelime
tam yaz lmadan gelen oumlnerilerden biri t klanarak istenen sonuca ula labilinir Ayr ca oumlnerilerin
yan nda o kelimeye ait kaccedil sonuccedil oldu u da belirtilir ve bu i lem sadece 1-2 sn iccedilinde
gerccedilekle ir
32 Google Maps
ekil 33 Google Maps ekran goumlruumlntuumlsuuml
19
Google Maps sitesine httpmapsgooglecom
adresinden ula labilinir Google n
etkile imli harita servisi ile arama motorunda goumlruumlntuumllenmek istenen konum yaz larak
Haritalarda Ara butonu ile o konuma odaklan l r Bir yerden bir yere gitmek iccedilin Yol
Tariflerini Al butonu kullan l r Konumun iste e goumlre uydu arazi ve sokak haritas
goumlruumlnuumlmlerine ula labilinir Daha fazla seccedilene i ile resim video ve wikipedia katmanlar da
goumlruumlntuumlye eklenir Hatta yurtd ndaki ba lant larda yoldaki trafik ak n n h z hakk nda bile
bilgi katman mevcuttur
Di er harita web uygulamalar ndan farkl olarak Google Maps te harita uumlzerinde ccedile itli
youmlnlere ula mak iccedilin suumlrekle b rak youmlntemi kullan l r Harita bir imaj serisi halinde ayr larak
boumlluumlnuumlr Biti ik imajlar n birlikte goumlruumlntuumlsuumlnuumln olu turulabilmesi iccedilin bu serilerden faydalan l r
Goumlruumlntuumllenen haritada kullan lan imaj say s s n rl d r Bu da her seferinde yeni imajlar n
olu turulmas gerekti ini goumlsterir Kullan c n n harita uumlzerindeki h zl hareketleri haf za
problemlerine yol accedilabilir Bunun yerine ayn imajlar haritan n farkl segmentlerinde tekrar
tekrar goumlruumlntuumllenir [37]
stemci-sunucu ileti imi gizli bir IFRAME uumlzerinden yap l r Bir arama yap ld nda
veya yeni bir yol soruldu unda bu bilgiler goumlnderilir ve IFRAME iccedilinde doumlnduumlruumlluumlr Veri XML
format nda ccedilevrilir ve bir Javascript fonksiyonunda (AJAX Motorunda) kullan lmak iccedilin
aktar l r Bu XML verisi sonra farkl ccedile itli ekillerde kullan l r Bazen hatas z harita imajlar n n
ccedila r lmas nda bazen de XML dokuumlmanlar n n XSLT (Extensible Stylesheet Language
Transformations Geni letilebilir Biccedilimlendirme Dili Doumlnuuml uumlmleri) sayesinde HTML kodlar na
doumlnuuml tuumlruumllerek ana pencerede goumlruumlntuumllenmesinde kullan l r [37]
Bunlar n d ndaki daha birccedilok accedil k kaynak projeler ve ticari uumlruumlnler bu yeni Web
uygulama modelinin avantajlar ndan faydalanarak geli tirilmeye ba lanm t r [37]
33 Neden AJAX
AJAX terimi oldukccedila guumlccedilluuml bir kelimedir Guumlcuumlnuuml daha zengin geni enduumlstri trendlerinin
olu umunda kullan labilmesinden ve oumlzguumlr Web uygulamalar n n kurulumunda odak noktas
olmas ndan al r Ayr ca programc lar yabanc olduklar yeni programlama dilleri ouml renmelerine
gerek kalmadan geli tirdikleri Web uygulamalar na istedikleri etkiyi katabilmektedirler Bunu
yaparken de sunucu tarafl teknolojileri kullan rken var olan yat r mlar n n d nda ba ka
masraflar olmaz AJAX guumlccedilluuml bir teknik olmas n n yan s ra di er teknolojilerle birlikte
kullan ld nda daha etkili sonuccedillar al nabilmektedir [38] AJAX Java 2 Enterprise Edition
(JAVA EE) Net PHP Flex CGI scriptler ve di er birccedilok uygulama geli tirme ortam nda
ccedilal abilir
20
AJAX uygulamalar n n gittikccedile yayg nla mas n n bir nedeni de geleneksel uygulamalara
goumlre istekcevap modelleri aras ndaki farkt r ekil 34 te goumlsterildi i uumlzere geleneksel Web
uygulamalar nda sunucuya yap lan her istekte olu turulan cevap Web sayfas n n tuumlmuumlnuuml
etkileyerek yeniden yuumlklenmesine neden olmaktad r
ekil 34 Geleneksel sunucularda istekcevap modeli [39]
AJAX n asenkron metodolojisiyle klasik Web mimarilerindeki gibi sunucuya gidip
parametreleri i lemek yerine ekil 35 te goumlruumllduuml uuml uumlzere birccedilok sunucu iste i tuumlm sayfan n
yenilenmesine ihtiyaccedil duymadan cevaplanabilmektedir
ekil 35 AJAX n asenkron istekcevap modeli [39]
Yukar da anlat lan durum kullan c lar ekil 36 da goumlruumllen t kla-bekle doumlnguumlsuumlnden
kurtar r AJAX kullan c lara ekil 37 deki gibi kesintisiz gezinti (soumlrf) imkacircn sunar
21
ekil 36 Klasik Web uygulamalar nda t kla-bekle doumlnguumlsuuml [40]
ekil 37 T kla-T kla interaktif AJAX uygulamas
[40]
stek i lem basamaklar ekil 38 te goumlsterildi i gibi AJAX motoru sayesinde JavaScript
kod betikleri kullan larak sunucuya HTTP tabanl ba lant sa lan r Bu ba lant
XMLHttpRequest protokoluumlnuuml kullanarak mesaj transferi yap lmas n sa lar Bu sayede hem h z
artar hem de bant geni li i verimli bir ekilde kullan lm olur
ekil 38 Geleneksel Web ileti im modeli ile AJAX ileti im modeli [37]
AJAX sunucuya kullan c n n Web taray c s uumlzerinden Javascript ortam nda ikinci bir
ileti im yoludur AJAX n kullan m normal Web uygulamalar nda goumlruumllen tipik sayfa ak nda
de i ikliklere neden olur AJAX ile istekler daha s k ve daha kuumlccediluumlk cevaplar halinde HTML
olmayan veri formunda cevaplan r Daha iyi anlayabilmek iccedilin normal bir Web uygulamas n n
ileti im ak ekil 39 da goumlruumllmektedir [41]
22
ekil 39 Web uygulamas ndaki cevap ak
Bir AJAX Web uygulamas bir Web uygulamas n n normal ileti im ak n al r ve yeni
bir istek tipi ekler Bu durum sunucuya normal sayfa iste i gibi goumlruumlnuumlr ama Web taray c iccedilin
farkl formatta bir giri i vard r Kullan c taraf ndan do rudan tetiklenmeyen ve sayfan n
tamam n n yeniden yuumlklenmesini gerektirmeyen bir istektir Ccedilo u durumda bu AJAX istekleri
baz verilerin oumln yuumlklenmesi ya da bir formdaki baz alanlar n do rulama istekleri gibi kuumlccediluumlk
de i iklikler olabilir Bazen de JavaScript ile bir form goumlnderimi veya HTML sayfalar n n bir
parccedilas uumlzerindeki iccedileri i de i tirmek iccedilin kullan l r Oumlrnek bir AJAX ileti im ak ekil
310 da goumlruumllmektedir AJAX uygulamalar ndaki istek biti zamanlar ve bunun normal Web
uygulamalar yla kar la t rmas ekil 311 de goumlruumllebilir Boumlylece ikisinin aras ndaki istek
frekanslar n n fark na var labilinir [41]
ekil 310 AJAX uygulamalar ndaki istek ak
23
ekil 311 Normal Web ile AJAX uygulamalar n n kar la t rmas
AJAX Web uygulamalar yla frekanstaki bu de i im hostlar iccedilin buumlyuumlk etki yapabilir
Boumlylece sunucular ayn kullan c say s yla yuumlksek h zlarda veri al -veri ini yapabilecek duruma
gelir Bu oumlzellikle daha fazla i lem gerektiren normal sayfa yuumlklemelerinde oldukccedila zor bir
i lemdi [41]
34 AJAX Metodolojisi
World Wide Web istemci-sunucu a mimarisine uygun ccedilal r [42] A aktiviteleri iki
tiptir Bunlardan birincisi kullan c taraf ndan tetiklenen HyperText Transfer Protocol (HTTP)
istekler (URL yazarak ya da bir link t klanarak olu turulur) di eri ise sunucu cevaplar d r
HTTP protokoluuml soru ve cevaplar serisinden olu an bir ileti im yoludur [41]
ekil 312 Geleneksel istekcevap (requestresponse) youmlntemi [39]
24
Web taray c dan bir istekte bulunuldu unda HTTP kullan larak cevap goumlnderilir Web
taray c bir istemci internet sayfas n n sunucusu ise HTTP sunucudur AJAX sunucu
cevaplar n HTTP kullanarak goumlnderir Sunucu taraf ndan geri doumlnduumlruumllen farkl tuumlrlerdeki
HTTP istek ve cevaplar n n tan nmas oumlnemlidir AJAX uygulamalar n sunucudan gelecek olan
HTTP cevaplar n iccedileri inin ne oldu u hakk nda karar verebilmesi iccedilin sunucunu
sorgulanmas nda HTTPRequest nesnesine ihtiyaccedil duyar [42]
341 HTTP Requests Nesnesi
HTTP request nesnesinin kullan m format a a daki ekildedir
ltrequest-linegt
ltheadersgt
ltblank linegt
[ltrequest-bodygt]
HTTP request nesnesinin ilk sat r genellikle iste in tipini belirten uumlccedil boumlluumlmden olu ur
Youmlntemin ad gerekli olan sunucu kayna n n yolu HTTP suumlruumlmuumlduumlr Birinci istek sat r (accedil l
sat r ) olmal d r kinci boumlluumlm sunucunun kullanabilece i ba l k sat r eklenebilen bilgilerin
goumlsterildi i boumlluumlmduumlr Son boumlluumlm olan bo sat r ise iste e ba l olarak BODY boumlluumlmuumlnden
ccedila r labilecek ek verilerin takip edilebilece i sat rd r
HTTP iccedilinde ccedile itli istek tuumlrlerinin tan mlanabilece i ccedilok say da youmlntem vard r Fakat
AJAX sadece GET ve POST youmlntemleriyle ilgilenir
3411 GET Youmlntemi
HTTP GET youmlntemi ccedila r lmak istenen URL adresi ard na eklenen anahtar-de er
ccediliftleri (key-value pair) ile ccedilal r Bir Web taray c dan talep edilen bir URL ccedila r s sunucuya
GET youmlnetemi ile bir istek goumlnderir Basitccedile sunucu kayna getirir ve taray c ya cevab
goumlnderir A a da Get youmlnetemi kullan larak F rat uumlniversitesinin Web sitesine yap lan bir ccedila r
sat r goumlsterilmektedir
GET HTTP11 ltrequest-linegt
Host wwwfiratedutr
User-Agent Mozilla50 (Windows U Windows NT 51 en-US rv176) ltheadersgt
Connection Keep-Alive
25
Oumlrnek kod parccedilas nda da goumlruumllduuml uuml uumlzere ilk sat r GET istek sat r d r Di er boumlluumlm ise
istek hakk nda bilgi goumlnderilen ba l k (header) k sm d r Bu boumlluumlme bir parametre ve her sat r
ba na bir de er ccedilifti gelebilir Host ba l iste in hedef sunucu adresini iccedilerir User-Agent
ba l eri ilebilir her iki sunucu ve istemci tarafl scriptler ve taray c lar n temel ta d r Bu
bilgi ile her istekte otomatik olarak goumlnderilir ve kullan lan taray c tan mlan r Connection
ba l ise taray c i lemleri iccedilin kullan lan tipik ba lant ayarlar nda kullan l r
3412 POST Youmlntemi
POST iste i ise sunucuya request body iccedilinde ek bilgi sa lar Genellikle ccedilevrimiccedili
formlarda doldurulmayan sat r bilgileri POST youmlntemi ile sunucuya bildirilir POST istekleri
a a daki yap dad r
POST HTTP11
Host wwwfiratedutr
User-Agent Mozilla50 (Windows U Windows NT 51 en-US rv176)
Content-Type applicationx-www-form-urlencoded
Content-Length 40
Connection Keep-Alive
Yukar daki kod parccedilas nda gri ile vurgulanan sat rlar GET youmlnteminden farkl olan
sat rlar goumlstermektedir lk sat rda kullan lan youmlntemin ad belirtilmi tir Content-Type sat r
request-body nin nas l kodland n goumlsterir Content-Length sat r nda request-body nin kaccedil
byte uzunlu unda oldu u goumlsterilir [37]
342 HTTP Request Nesnesinin Oumlzellikleri ve Youmlntemleri
Request nesnesi be tane temel fonksiyon bulundurmaktad r [43] Bunlar
Querystring URL iccedilersinde bulunan dosya ismi ile birlikte goumlnderilen bilginin veya
form iccedilerisinden GET
youmlntemi ile goumlnderilen bilgilerin al nmas nda kullan l r
Form POST
youmlntemi genellikle form iccedilerisinden bilgi al nmas iccedilin kullan l r
Servervariables Web sunucu request ile ilgili bilgilere (Http ServerVariables)
ula may sa layan bir youmlntemidir
Cookies(Ccedilerezler) Kullan c n n taray c s sunucudan gelen ccedilerezleri kabul ediyor ise
bu bilgilere ula lmas n sa lar
26
ClientCertificate Dijital bir sertifikad r Sunucu ve istemcinin birbirini tan mlamas
iccedilin kullan l r
343 HTTP Response Nesnesi
HTTP response nesnesi HTTP request nesnesine benzer ekilde goumlsterilir
ltstatus-linegt
ltheadersgt
ltblank linegt
[ltresponse-bodygt]
HTTP request nesnesinden tek fark ilk sat rda istek bilgisinin yerine iccedileri in durum
bilgisi vard r Durum sat r istek kayna
hakk nda temin edilen bir durum kodunu bildirir
A a da basit bir HTTP response kod parccedilas
goumlsterilmektedir
HTTP11 200 OK
Date Sat 31 March 2009 165959 GMT
Content-Type texthtmlcharset=ISO-8859-1
Content-Length 122
lthtmlgt
ltheadgt
lttitlegtFirat Universitesilttitlegt
ltheadgt
ltbodygt
lt-- body buraya gelir --gt
ltbodygt
lthtmlgt
Bu oumlrnekte durum sat r nda 200 eklinde bir HTTP durum kodu ve Tamam (OK)
diye bir mesaj verilmektedir Durum sat r her zaman durum kodu ve her hangi bir kar kl
oumlnlemek iccedilin k sa bir mesaj iccedilerir A a da en yayg n kullan lan durum kodlar verilmektedir
200 (OK) Sunucu ba ar l istekler iccedilin bu kodu kullan r
304 (NOT MODIFIED) Sunucu goumlnderilen istekle ilgili verilerin daha i lenmedi ini
istemciye bildirmek iccedilin bu kod kullan l r Taray c lar n oumln bellek mekanizmalar iccedilin en s k
kullan lan koddur
27
401 (UNAUTHORIZED) stemcinin kaynak eri im yetkisi yoktur
anlam nda
kullan l r Genellikle bu taray c n n sunucudan kullan c ad ve ifre gibi bilgi giri i istemesiyle
olu an hatalarda meydana gelir
403 (FORBIDDEN) Yetki elde etmek iccedilin istemci ba ar s z oldu
hata kodudur 401
hatas ndan sonra e er do ru bir kullan c ad ve ifre ile oturum accedil lmamas halinde genelde bu
hata kodu olu ur
404 (NOT FOUND) Kaynak belirtilen yerde bulunamad nda bu hata kodu uumlretilir
Kod parccedilas n n ikinci sat r nda uumlretilen cevab n tarihi ve saati Date ba l nda
sunucuya goumlnderilir Content-Type ve Content-Length ba l klar POST youmlnteminde oldu u gibi
kullan l r BODY cevab basitccedile istemci kayna (iccedilerik duumlz metin ikili veri ya da farkl
tuumlrden
bilgiler olabilir) HTML kayna n iccedilerir [42]
35 AJAX leti im Teknikleri
Web uygulamalar nda ccedilo unlukla kullan c istekleri bir form uumlzerinden yap l r ve
sunucu cevab h zl bir ekilde Java ya da Php gibi bir programlama dili ile olu turulur Normal
Web uygulama modelinde kullan c daima istek uumlretir boumlylece kullan c lar n h zl ca
t klamalar yla olu an yuumlksek h zlardaki sayfa istekleri genellikle rastgele aral klarla olu ur ve
her bir istek h z n n cevab duuml uumlktuumlr [41]
AJAX uygulamalar nda yukarda bahsedilen eksikli in oumlnuumlne geccedilebilmek iccedilin ccedile itli
ileti im teknikleri geli tirilmi tir Bu teknikler
Gizli Ccedilerccedileve (Hidden Frame) Tekni i stemci-sunucu ileti iminde kullan lan gizli
ccedilerccedileve yap s yuumlksekli i ve geni li i 0 pikselden olu an ekranda goumlruumlnmeyen bir
frameset yap s na dayan r
XMLHttp Requests (XHR) AJAX teknolojisinin temel nesnesidir A a daki ba l kta
ayr nt l bir biccedilimde incelenecektir
351 XMLHttp Requests (XHR) Nesnesi
AJAX la do rudan ilgili teknolojilerin ccedilo u asenkron ve XML tekni i ile yak ndan
ilgilidir Ccediluumlnkuuml veri kodlama yollar ve ileti im katmanlar n n tedarik edilmesi bu teknikler ve
kuumltuumlphaneler uumlzerinden hareket eder Ccedilo u durumda bu XMLHttpRequest nesnesi kullan l r
ancak IFrame lerde popuumllerdir Ccedilerezler veya ActiveX Java goumlmuumlluuml ba ka bir alternatif de
kullan labilir [41]
28
XHR Nesnesi Internet Explorer 50 (IE 5) iccedilindeki ActiveX control ile ortaya ccedil km t r
XHR Javascript ile olu turulur [44] Sayfalar n tamamen yeniden yuumlklenmeden sa lanan parccedilal
guumlncelleme oumlzelli i bu nesne sayesinde olmaktad r Arka planda ccedilal an bu sistem sayesinde
asenkron bir ileti im gerccedilekle ir Yenilenme s ras nda taray c yla ba lant kesilmeksizin yeni bir
istek yap labilir
World Wide Web Consortium (W3C) standart organizasyonu standartla amam
XMLHttpRequest nesnenin tuumlm taray c larda kullan labilen youmlntem ve oumlzelliklerinin genel bir
alt kuumlmesini olu turma ccedilal malar suumlrmektedir u anda kullan lan kural kuumlmesi W3C DOM
Level 3 yuumlkleme ve kaydetme oumlzellikleri iccedilerir kinci ccedilal ma tasla
wwww3orgTRXMLHttpRequest adresinde bulunabilir Henuumlz bir standart haline
gelememesinin nedeni taray c dan taray c ya goumlre farkl davran lar goumlstermesidir
Ccedilal ma tasla na goumlre XHR nesnesinin iki goumlrevi vard r Birincisi HTTP yolu ile
sunucuya programlanabilir ba lant kuran betiklerin ccedilal mas na izin verir kinci ifade ekli ise
normal HTTP istekcevap doumlnguumlsuumlnuumln d nda sunucuyla ileti ime izin verir
XMLHttpRequest Microsoft taray c ccedile itlerinde Mozilla Firefox Konqueror Opera
ve Safari gibi neredeyse tuumlm modern taray c lar taraf ndan desteklenmektedir [42]
3511 XMLHttpRequest Nesnesi Olu turma
Nesneler olu turulurken farkl taray c lar iccedilin farkl kurallar vard r Oumlrne in Microsoft
Internet Explorer XMLHttpRequest nesnesini bir ActiveX nesnesi olarak Safari Mozilla
Firefox ve Opera ise sadece normal bir JavaScript nesnesi olarak yorumlar
Windows un guumlncelleme sisteminin temelini olu turan ActiveX Web sayfalar ndaki
aktif nesneleri etkinle tiren oumlzel bir Microsoft teknolojisidir ActiveX i mevcut Web taray c lar
aras nda u anda sadece Microsoft Internet Explorer desteklemektedir Microsoft IE nin di er
suumlruumlmleri iccedilin MSXML geli tirerek daha aktif ve kararl bir yap olu turulmu tur IE nin farkl
suumlruumlmleri iccedilin a a daki bile enler kullan l r [45]
MicrosoftXMLHttp
MSXML2XMLHttp
MSXML2XMLHttp30
MSXML2XMLHttp40
MSXML2XMLHttp50
29
IE 60+ taray c lar iccedilin a a daki tan mlama yap l r
var nesne = new ActiveXObject(Msxml2XMLHTTP)
IE 55 suumlruumlmleri iccedilin ise a a daki tan mlama yap l r
var nesne = new ActiveXObject(MicrosoftXMLHTTP)
Mozilla Firefox Opera Safari gibi taray c lar iccedilin ise a a daki tan mlama yap l r
var nesne = new XMLHttpRequest ()
Ayn anda birden fazla internet taray c s (ie firefox opera vb) ile uyumlu Web
uygulamalar iccedilin ccedilapraz taray c deste i ifadesi kullan lmaktad r Ccedilapraz taray c deste i bir
arayuumlz kodlamas nda kodlay c lar n en ccedilok zaman harcad konudur Guumlnuumlmuumlzde ccedilapraz
taray c deste i bir zorunluluk haline gelmi tir [46] AJAX uygulamalar n n sorunsuz tuumlm
taray c larla uyumlu bir ekilde ccedilal abilmesi iccedilin JavaScript iccedilerisinde try-catch bloklar
yazarak taray c ya goumlre yeni bir nesne olu turulur
function NesneOlustur()
var nesne
try
nesne = new ActiveXObject(Msxml2XMLHTTP) IE 60+ taray c lar iccedilin
catch(e)
try
nesne = new ActiveXObject(MicrosoftXMLHTTP) IE 55 taray c lar iccedilin
catch(e)
try
nesne = new XMLHttpRequest () Firefox Opera 80+ ve Safari taray c lar iccedilin
30
catch(e)
alert( Maalesef taray c n z AJAX desteklemiyor)
return null
return nesne
Yukar da tan mlanan fonksiyon sayesinde dinamik ve ccedilapraz taray c deste ine sahip bir
XHR nesnesi olu turulmu tur
3512 XHR Nesnesinin Oumlzellik ve Youmlntemleri
XMLHttpRequest nesnesine eklenebilen oumlzellikler Tablo 31 de goumlsterilmektedir [42]
Tablo 31 Standart XHR nesnesinin oumlzellikleri
Oumlzellikler Tan mlar
onreadystatechange
Nesnenin readyState oumlzelli i de i ti inde hangi olay tutucunun (event
handler) ccedila r laca n belirler
readyState ste in durumunu raporlayan tamsay de eridir
0 = uninitialized ( stek haz rlanmad Henuumlz open youmlntemi kullan lmad )
1 = loading ( stek haz rland goumlnderiliyor)
2 = loaded ( stek goumlnderildi)
3 = interactive ( stek de erlendiriliyor ve sonuccedil bekleniyor)
4 = completed ( stek tamamland ve sonuccedil geldi)
responseText Form iccedilindeki metin dizesi sunucu taraf ndan veriye doumlnuuml tuumlruumlluumlr
responseXML Sunucu taraf ndan bir belge nesnesi gibi ifade edilen veri geri doumlnduumlruumlluumlr
Status Sunucu taraf ndan geri doumlnduumlruumllen HTTP durum kodudur Oumlrne in 404
kodu Not Found yani istenilen sayfa bulunamad anlam na gelir 200 ise
OK de eri goumlnderir ve i lemin tamamland n belirtir
31
statusText Status oumlzelli inin metin kar l n verir
XMLHttpRequest nesnesinin fonksiyonunu artt ran ek youmlntemler Tablo 32 de
goumlsterilmektedir Bu youmlntemler sayesinde sunucuyla asenkron ileti im kurulur
Tablo 32 Standart XHR nesnesinin fonksiyonlar
[42]
Youmlntemler Tan mlar
abort() Geccedilerli iste i iptal eder
getAllResponseHeaders()
Gelen cevab n ba l k bilgilerini string olarak getirir
getresponseHeader(x) x gibi bir parametre olarak verilen ba l k bilgisini getirir
setRequestHeader(xy) stekle goumlnderilen ba l k bilgisine istenilen etiketi ya da de eri atar
Tablodaki youmlntemler d nda open ve send youmlntemleri de s kccedila kullan lmaktad r
Open youmlnteminin parametreleri a a da goumlsterilmektedir
nesneopen( POST | GET URL asynch username password)
1 Parametre Web sayfas na yap lacak iste in hangi youmlntemle yap laca n belirtir
2 Parametre stek yap lacak Web sayfas n n URL adresi E er GET youmlntemi
kullan l yorsa querystring lerin de erleri URL e birle tirilerek belirtilmelidir
3 Parametre True de eriyle yap lacak iste in e zamans z olaca false de eri ile
e zamanl
olaca belirlenir E er false de eri verilirse i lem bitene kadar taray c di er
kullan c isteklerine cevap veremeyecektir True yap l rsa istek ayr bir i lem olarak ele
al nacakt r
4 ve 5 Parametre Opsiyonel parametreler olup e er istek yap lan Web sayfas ifre ve
kullan c ad istiyorsa bu ekilde goumlnderilebilir [47]
Open ile haz rlanan istek sunucuya goumlnderilir E er open ile accedil lan istek post metodunu
kullan yorsa send metodu parametre olarak goumlnderilecek veriyi ta yabilir
Send metodu parametresiz veya null parametresi ile de kullan labilinir Send metodunda
cevab n gelip gelmedi inin anla labilmesi iccedilin yani e zamanl haberle menin hangi safhada
oldu unun belirlenebilmesi iccedilin Tablo 31 deki oumlzellikler eklenir Send metodunun kullan m
ekli a a da verilmi tir [42 47 48 49]
nesnesend() veya nesnesend(null)
32
3513 XHR Ccedilal ma Mant
ekil 313 bir AJAX uygulamas nda standart etkile imli bir paradigmay
goumlsterir [49]
lem ad mlar a a da s ralanmaktad r
ekil 313 Standart AJAX etkile imi [49]
1 stemci tarafl bir olay AJAX olay (event) tetikler stemcinin a a daki gibi her
hangi bir hareketi onchange olay n ba lat r
ltinput type=text d=eposta name=eposta onblur=validateEposta()gt
2 Oumlrnek bir XHR nesnesi olu turmak iccedilin open() youmlntemi kullan l r ve ccedila r lar iccedilin
ayarlan r URL ayarlar iste e goumlre kullan lacak HTTP youmlntemlerinden GET ya da
POST a goumlre belirlenir A a daki kod oumlrne inde oldu u gibi istek send() youmlntemi
ile bir ccedila r y tetikler
var xmlHttp
function validateEposta()
var eposta= documentgetElementById(eposta)
var url = validateeposta= + escape(epostavalue)
if (windowActiveXObject)
xmlHttp = new ActiveXObject(MicrosoftXMLHTTP)
else if (windowXMLHttpRequest)
xmlHttp = new XMLHttpRequest()
xmlHttpopen(GET url)
xmlHttponreadystatechange = gericagir
33
xmlHttpsend(null)
3 Sunucuya bir istek yap l r Bu bir servlet CGI script PHP ya da ASPNET ile
yaz lm herhangi bir sunucu tarafl (server-side) script olabilir
4 Sunucu herhangi bir veri ambar na eri ebilir
5 stek taray c ya geri doumlnduumlruumlluumlr XHR nesnesi Content-Type ayar textxml dir
XHR nesnesi sadece texthtml tipindeki sonuccedillar i leyebilir Daha karma k
oumlrneklerde cevap JavaScript DOM manipuumllasyon ya da ba ka benzer teknolojiler
iccedilerebilir
responsesetHeader(Cache-Control no-cache)
responsesetHeader(Pragma no-cache)
Taray c lokal sonuccedillar oumln belle inde depolamaz Bunun iccedilin yukar daki kod sat rlar na
ihtiyaccedil duyar
6 Bu oumlrnekte i lemler geri doumlnduumlruumllduuml uumlnde gericagir() ad ndaki XHR fonksiyonu
ayarlan r Bu fonksiyon sunucudan goumlnderilen durum kodlar na bakar ve XHR
nesnesinin readyState oumlzelli ini kontrol eder gericagir() fonksiyonu beklendi i gibi
i lenmi se a a daki gibi bir kod parccedilas goumlruumlluumlr
function gericagir()
if (xmlHttpreadyState == 4)
if (xmlHttpstatus == 200)
stek Ba ar l
Yukar daki anlat mla XHR nesnesinin ccedilal ma mant na de inilmi tir Genellikle
kullan lan standart ccedila r lar oumlrneklenmi tir Bu ccedila r lar yap l rken bir kuumltuumlphaneden yap lan bir
uygulamadan da faydalan labilir Yeni bir ccedilal ma alan olmas na ra men accedil k kaynak
topluluklar nda hat r say l r etkinlikler yap lmaktad r [49]
Uygulamalar olu turulurken genellikle ccedile itli frameworkler ve toolkitlerden faydalan l r
Bunlardan baz lar sadece istemci tarafl ccedilal r baz lar ise sunucu uumlzerinde ccedilal maya ihtiyaccedil
duyar
34
Bu frameworkler suumlrekli de i en ve geli en bir ortam oldu u iccedilin yeni kuumltuumlphaneler ve
suumlruumlmleri takip edilmelidir En yayg n kullan lan kuumltuumlphanelerin ba nda Prototype
scriptaculous Dojo Toolkit Direct Web Remoting (DWR) Taconite ve Rico gelmektedir [49]
36 AJAX Olu turan Bile enler
Asynchronous JavaScript and XML kelimelerinin ba harflerinden olu an AJAX
kavram kullan l zengin Web uygulamalar geli tirebilmek iccedilin pratik bir araccedilt r [50]
AJAX n A parccedilas veri ileti im tekni ini JA parccedilas ileti im youmlntemini X
parccedilas tekni in veri kodlama k sm n olu turur AJAX tam manas yla anlayabilmek iccedilin onu
olu turan bile enlerin her birini de anlamak gerekmektedir [41]
361 E zamanl Olmayan leti im
AJAX tekni inin ccedilekirde ini olu turan XMLHttpRequest nesnesi hem e zamanl hem
de e zamans z olarak ccedilal abilen bir yap uumlzerine kurulmu tur
Ccedilo u AJAX uygulamas XHR nesnesini asenkron olarak kullan r Asenkron istek
taray c ya goumlnderilir ama sunucudan bir cevap gelmesini beklemektense sonraki istek kodlar
i letilmeye devam eder lenen cevap goumlnderildi inde XHR nesnesinin onreadystatechange
oumlzelli i bir fonksiyona ba lan r Bu fonksiyonun i letilmesinden sonra readystate koduyla
iste in durumu test edilir readystate oumlzelli i 4 de erini ald nda sunucuya istek tamamland
ve sonuccedil geldi mesaj gider [51]
A a daki kod parccedilas nda asenkron bir ileti im goumlsterilmektedir [51]
get recipe using Ajax
function getRecipe(evnt)
if (xmlhttp) xmlhttp = aaGetXmlHttpRequest( )
if (xmlhttp) return
var drink = encodeURIComponent(documentgetElementById(drink)value)
var qry = drink= + drink
var url = recipephp + qry
xmlhttpopen(GET url true)
xmlhttponreadystatechange = printRecipe
xmlhttpsend(null)
if (evnt ampamp evntpreventDefault( ))
evntpreventDefault( )
35
return false
E zamans z ileti imde kullan c ayn zaman diliminde birden fazla i lem yapabilir
Oumlrne in Web sayfas nda bir form dolduruldu unda formdaki bilgiler AJAX ile goumlnderilirken
i lemin bitmesini beklemek gerekmemektedir O zaman diliminde Web sayfas n n ba ka bir
yerinde bulunan anket cevapland r labilir Ccediluumlnkuuml e zamanl
ccedilal l rken bloke edilen JavaScript
motoru e zamans z ccedilal rken serbesttir ve ba ka isteklerin goumlnderilmesine muumlsaade eder Yani
ayn zaman dilimi iccedilerisinde birden fazla iste i kabul edebilir [52]
ekil 314 E zamanl olmayan ileti im modeli
ekil 314 te goumlruumllduuml uuml gibi ayn zaman dilimi iccedilerisinde 4 adet istek yap lm t r
Kullan c bu isteklerin tamamlanmas n beklemek zorunda de ildir Bu sebeple istemci ve
sunucu aras ndaki t kla-bekle-t kla-bekle etkile imi ortadan kalkmaktad r
362 E zamanl leti im
Senkron isteklerde taray c cevap iccedilin beklerken kilitlenir
var state = documentforms[0]elements[0]value
var url = ajaxphpstate= + state
xmlhttpopen(GET url false)
xmlhttpsend(null)
alert(xmlhttpgetAllResponseHeaders( ))
Yukar daki kod dizesiyle bir form alan na Web servisi uumlzerindeki HTTP GET istek
yap s kullan larak eri ilir Uumlccediluumlncuuml sat rdaki open youmlnteminin uumlccediluumlncuuml parametresinin false
olmas n n anlam iste in e zamanl (senkron) oldu unu goumlsterir Herhangi bir parametre
almadan null de erli istek goumlnderilir stek goumlnderildikten hemen sonra uyar mesaj kutusu
36
accedil larak cevap ba l yaz l r [51] Kullan lan Web servisi h zl ysa cevap hemen gelir E er
servis yava sa istek bitinceye kadar di er sayfa aktiviteleri gerccedilekle emez [51]
E zamanl
ileti imde ayn zaman diliminde yaln zca bir i lem yap labilinir Web
taray c m zdan uzaktaki Web sunucusuna goumlnderilen istek Web sunucusunda i lenir ve tekrar
geldi i yoldan Web taray c s na geri doumlner Bu i lem belli bir zaman al r E zamanl
ccedilal rken
bu zaman diliminde ba ka bir istek goumlnderilemez [52]
E zamanl
ccedilal ma oumlzellikle Web sunucusu ayn bilgisayarda ise veya yak n olan bir
LAN uumlzerindeyse sa l kl ccedilal abilir Fakat Web sunucusu a r bir yuumlk alt ndaysa veya Web
taray c s Web sunucusuyla yava bir ba lant uumlzerinden etkile ime geccediltiyse koumltuuml bir
performans verecektir Ccediluumlnkuuml Web taray c s iccedilindeki JavaScript motoru goumlnderdi i istek
tamamlan ncaya kadar bloke edilir ve Web taray c s donmu bir ekilde iste in
tamamlanmas n bekler Bu zaman diliminde kullan c goumlnderilen iste i iptal de edemez Bu
yuumlzden Web sayfas ndaki ba ka bir noktaya t klayamaz veya ba ka bir sekmeye geccedili yapamaz
[52]
ekil 315 E zamanl
ileti im modeli
ekil 315 de goumlruumllduuml uuml gibi Web taray c s ndan goumlnderilen 1 nolu istek Web
sunucusuna iletilmektedir Al nan istek i lendikten sonra Web taray c s na geri
goumlnderilmektedir Bu zaman diliminde ba ka bir istek yap lamaz
363 Javascript
1995 y l nda Brendan Eich ad ndaki yaz l m geli tiricisi taraf ndan Netscape Navigator
20 ile birlikte geli tirilen JavaScript dili istemci tarafl
(client-side) bir betik (script) dilidir
Web sayfalar nda dinamik iccedilerik sa lamak ya da kullan c yla ileti im kurmak iccedilin kullan l r [53]
Bu ileti imin sa lanabilmesi iccedilin ortak kurallar duumlnyada uluslararas standart kurumu olan
Avrupa Bilgisayar Uumlreticileri Birli i (European Computer Manufacturers Association-ECMA)
taraf ndan belirlenir Temel kurallar ECMA Script (ECMA-262) ad verilen bir standartta
toplanm t r [54]
37
Javascript in soumlz dizim kurallar C diline benzerlik goumlsterir Derleme i lemi yap lmayan
ayr t rmal (parsed language) bir dildir Nesne youmlnelimli programlama (Object Oriented
Programming - OOP) yetene ine sahiptir [55]
AJAX n JavaScript le olan ili kisi k saca u ekilde oumlzetlenir Herkes taraf ndan
bilinen goumlnder (submit)-cevap(response) doumlnguumlsuumlnuumln oumlnuumlne geccedilerek kullan c lar n Web
sunucusuyla direk etkile im iccedilinde bulunmas n sa lar [56] AJAX goumlnder duuml mesi olmaks z n
sunucu etkile imini sa lar Veriye ihtiyaccedil duyuldu unda Web sayfas iccedilindeki Javascript kodlar
ile bir istek yapar Sunucu cevab tam bir HTML sayfas olarak de il veri olarak geri doumlnduumlruumlr
ve istemciyi cevaplar Cevab n bu ekilde olu turulmas Web uygulamalar n n masauumlstuuml
uygulamalar gibi ccedilal abilmesini sa lar [56]
Sonuccedil olarak Javascript HTML kodlar aras na goumlmuumllebilen kod parccedilalar d r Bunun
yan s ra tek ba na js uzant l JavaScript kodlar da yaz labilir Bu kodlar Internet Explorer
Firefox Opera vb tuumlm taray c lar taraf ndan desteklendi i iccedilin sorunsuz ccedilal r [57]
3631 JavaScript Ccedilal ma Prensibi
JavaScript kodlar
iccedilin herhangi bir metin editoumlruuml kullan labilir ya da Notepad gibi bir
duumlz yaz program yla da kodlar olu turulabilir Taray c lar n yorumlayabilmesi iccedilin ltSCRIPTgt
etiketiyle ba layan ltSCRIPTgt etiket ile biten JavaScript kodlar HTML belgelerinin ccedile itli
yerlerine eklenebilir Eklenen kodlar kullan c lar n HTML belgesindeki bir ba lant ya t klamas
veya klavyede bir tu a basmas yla tetiklenir ya da HTML sayfas kullan c
Browser nda
goumlruumlntuumllendi i anda otomatik olarak ccedilal maya ba lar Otomatik ccedilal an Javascript kodu ise iki
ayr youmlntemle ccedilal t r labilir lk youmlntem HTML kodlar i letilmeden oumlnce (yani Web sayfas
kullan c n n Web Browser nda goumlruumlntuumllenmeden oumlnce) ccedilal mas ikinci youmlntem sayfa
goumlruumlntuumllendikten sonra script kodlar n n ccedilal mas d r [58] Bu youmlntemler a a da s ras yla
accedil klanmaktad r
HEAD boumlluumlmuumlnde
BODY boumlluumlmuumlnde
HEAD Boumlluumlmuumlndeki Scriptler HEAD etiketleri iccediline ltSCRIPTgt ltSCRIPTgt etiketi
kullanarak istenilen JavaScript kodlar
eklenebilir Bu kodlar HTML sayfas n n BODY boumlluumlmuuml
yuumlklenmeden i lenir
38
ltHTMLgt
ltHEADgt
ltSCRIPT LANGUAGE=Javascript12gt
alert(Merhaba Duumlnya) ltSCRIPTgt
ltHEADgt
ltBODYgt
ltBgtDeneme Sayfas na Ho geldinizltBgtltbrgt
ltBODYgt
ltHTMLgt
Yukar daki oumlrnekte kaynak kodlar yukar dan a a ya do ru i letilirken sayfada ilk
goumlruumlntuumllenecek olan alert( ) komutuyla ekrana yaz lan Merhaba Duumlnya
ileti im kutusu
olacakt r Gelen ileti im kutusunda Tamam butonuna bas ld nda body boumlluumlmuumlndeki
kodlar n i lenmesine s ra gelecektir Ekrana Deneme Sayfas na Ho geldiniz mesaj
yazacakt r
BODY Boumlluumlmuumlndeki Scriptler HTML belgesinin BODY boumlluumlmuumlnde JavaScript
kullanmak iccedilin iki yol vard r
Do rudan ccedilal acak kodlar ve kullan c taraf ndan ccedilal acak kodlar
Do rudan ccedilal acak JavaScript kodlar
ltBODYgtltBODYgt etiketleri aras na
ltSCRIPTgt etiketi kullan larak HTML belgesinin istenilen yerine yaz l r Bu cuumlmleler taray c
taraf ndan okundu u anda yerine getirilir
ltHTMLgt
ltHEADgt
kinci Ornek
ltHEADgt
ltBODYgt
ltSCRIPT LANGUAGE=Javascript12gt
alert(Javascript duumlnyas na ho geldiniz)
ltSCRIPTgt
ltBODYgt
ltHTMLgt
Yukar daki oumlrnekte ise kod i leme s ras na uygun olarak i letilerek oumlnce HEAD
etiketleri yorumlanarak ekrana kinci Ornek yaz p hemen ard ndan ileti im kutusu ccedil karak
39
Javascript duumlnyas na ho geldiniz yazacakt r Kullan lan di er bir youmlntem ise kullan c
taraf ndan bir olay n ba lat lmas yla bir JavaScript kodunun ccedilal t r lmas d r
ltHTMLgt
ltHEADgt
ltSCRIPT LANGUAGE=Javascript12gt
genel de i ken tan mlar
var n = Merhaba Duumlnya
bu fonksiyon uyar kutusu accedilar
function merhaba()
alert(n)
ltSCRIPTgt
ltHEADgt
ltBODYgt
ltbrgtltbrgtltbrgtltbrgtltBgtButona T klad n zda Merhaba Duumlnya yazan ileti im kutusu ekrana
gelecektirltBgtltbrgtltbrgt
ltFORMgt
ltINPUT TYPE=SUBMIT NAME=dugme1 VALUE=TIKLAYINIZ
onclick=merhaba()gt
ltFORMgt
ltBODYgt
ltHTMLgt
Yukar daki oumlrnekte ise HEAD etiketleri aras nda de i ken tan mlama ve fonksiyon
olu turma i lemleri yap lm t r BODY komutu i letildikten sonra FORM ouml esiyle olu turulan
duuml me kullan c taraf ndan t kland nda script kodu tetiklenerek fonksiyon ccedila r l r ve mesaj
kutusu ekrana gelir
Ayr ca ltBODYgt iccedilinde URL kullan larak da a a daki oumlrnek kodla goumlsterildi i gibi
JavaScript kodu ccedila r labilmek muumlmkuumlnduumlr
ltA HREF=javascript alert(Ccedil kmak istedi inizden emin misiniz)gtSiteden Ccedil kltAgt
40
3632 Javascript Dilinin Oumlzellikleri
JavaScript dilinin temel soumlz dizim yap s na a a da incelenecektir
36321 De i kenler
Bir de eri iccedileren bellek adlar n ifade ederler De i kenler verileri saklar ve onlara
eri imi sa larlar De i kenlerin bir ad olur bir de de eri olur Program boyunca de i kenin ad
de i mez fakat iccedileri i de i ebilir
Bir JavaScript de i keni belli kurallara uymak zorundad r
a) De i kenler harfle ya da alt ccedilizgi (_) ile ba lamal d r Rakam veya di er
i aretler birinci karakter olarak kullan lamaz fakat de i ken ad n n di er
karakterlerinde kullan labilir
b) Javascript buumlyuumlk kuumlccediluumlk harfe kar duyarl d r (case-sensitive oumlzellli i) Ayn
kelimenin buumlyuumlk harfle yaz lmas ile kuumlccediluumlk harfle yaz lmas farkl isimler
olarak alg lanmas na neden olur
c) De i ken isimleri iccedilinde bo luk olmamal d r
d) Kullan c lar n bilgisayar nda kullan lan dil setinin ayarlar her bir kullan c iccedilin
farkl l k goumlsterebilece i iccedilin ngilizce alfabede bulunmayan Tuumlrkccedile ve di er
dillerdeki high-ASCII karakterleri ( ile uuml Uuml ouml Ouml ccedil ve Ccedil)
kullanmamakta fayda vard r [58]
36322 Kapsam
Bir de i kene bir de er atand nda bu de erin geccedilerli olaca suumlreyi belirlemek iccedilin
kapsam (scope) kavram kullan l r Bir de i kenin kapsam
global ya da lokal olabilir Bir
global de i kene sayfa uumlzerinde herhangi bir JavaScript ten eri ilebilir Lokal de i ken ise
de erin atand yordam iccedilinde geccedilerlidir
A a daki oumlrnekte bir de i kenin kendisine atama yaparak de er verilir
adi= Zeynep
Bir fonksiyon yaz l rken yerel bir de i ken olu turmak iccedilin a a daki oumlrnekte oldu u
gibi var kelimesiyle tan mlama yap l r
41
function toplama()
var sayi=1
toplam=0
deyimler
Yukar daki oumlrnekte sayi adl de i ken toplama fonksiyonu iccedilin yerel toplam de i keni
ise tuumlm sayfa iccedilin genel (global) de i ken olacakt r De i kenlere atanan de erler Tablo
33 deki de i ken tuumlrlerinden herhangi biri olabilir Verinin tuumlruumlne ba l olarak de er uumlzerinde
belirli i lemler yap labilir ya da yap lamaz Oumlrne in iki string de er uumlzerinde aritmetik i lem
yap lamaz
Tablo 33 De i ken tuumlrleri
De i ken Tuumlrleri
Numbers Tam ve ondal kl
say lar iccedilerir Pozitif 0 ya da negatif olabilir
Booleans Mant ksal veri tuumlruumlduumlr True (Do ru) ya da False (Yanl ) de erini al r Sorgulama
sonunda geriye True iccedilin 1 False iccedilin 0 de erini doumlnduumlruumlr
Strings Karakter bilgi iccedileren bir de i kendir T rnak iccedilinde yaz lan ifadeler de i kene
atan r
Objects Taray c ya ait nesnelerdir nesne= new Object() eklinde kodlamada kullan labilir
Null Oumlzel bir de i kendir ccedili bo ya da de ersiz olarak ifade edilir
Undefined
Bir de i ken yarat ld ktan sonra iccedilerdi i tan ms z de eri simgeler
36323 leccediller (Operators)
leccediller iki ya da daha fazla de er uumlzerinde i lem yap lmas n sa lar De erler ya da
de i kenler aras nda toplama ccedil karma mod gibi i lemler yap labilir
Tablo 34 leccediller ve goumlrevleri
leccediller ve Goumlrevleri
+ Toplama
- Ccedil karma
Ccedilarpma
Boumllme
42
MOD Boumllmede kalan verir (10 3 i lemi 1 de erini verir )
++
Tek art r m De er 1 art r l r
-- Tekli azaltma
- Negatifle tirme lenenin negatif de erini doumlnduumlruumlr
36324 kili leccediller
kili i leccediller birden ccedilok kar la t rma i lemini tek bir ko ul ifadesi olarak birle tirirler
Oumlrne in
sayi =1 AND dongu gt 1000 ise gibi
Tablo 35 kili i leccediller
kili i leccediller
ampamp
Mant ksal Ve And ki ifade de do ruysa True de erini doumlnduumlruumlr
|| Mant ksal Veya Or fadelerden birisi do ruysa True de erini doumlnduumlruumlr
Mant ksal De il Not Negatifle tirme i lemi do ruysa True de erini doumlnduumlruumlr
36325 Atama Deyimi
Atama deyimi (=) bir de i kene sa dan bir de erin atanmas n sa lar De i kenlere
tuumlrlerine ve tan mlamalar na uygun olan herhangi bir de er atanabilir
Oumlrnek sayi=100
Oumlrnek toplam=(fiyat+kdv)
Sa daki de eri soldaki de i kene atayan += -= = = ifadeleri de kullan labilir
Oumlrne in toplam+=fiyat (di er bir de i kenden gelen fiyat de erini toplam de erine
ekler ve sonucu toplam de i kenine atar)
36326 fadeler
De i kenlerin i leccedillerin ve deyimlerin bir araya gelerek olu turduklar yap lar
ifade
eder
Oumlrne in toplam = sayi 1 sayi2 formuumlluuml bir ifadedir
43
36327 Deyimler
Deyimler belli bir komut ya da soumlz dizimi bile enlerine verilen add r Oumlrne in bir komut
ya da bir IF yap s deyim olabilir
Oumlrnek if (basari_notugt50) deyimler else deyimler
36328 Nesneler
Kendi de erleri oumlzellikleri ve i lemleri olan bile enlere nesne (object) denir JavaScript
dilinde ccedilok say da yerle ik nesne vard r
JavaScript buumltuumln Web sayfas n ve taray c y nesneler toplulu u olarak goumlruumlr Bu
sisteme DOM (Document Object Model) denir [59]
JavaScript kullanarak dinamik ve etkile imli goumlruumlnuumlmler elde edilir DOM a JavaScript
ve JScript gibi ECMAScript olan kullan c taraf ndaki bir scripting dili yard m yla eri ilebilinir
DOM la veri al -veri i yeni bir sayfada kullan c ekran na yans t lmaz Parccedilal guumlncelleme
olay n n buumlyuumlk k sm bu modelle gerccedilekle tirilir
Ba lang ccedilta Javascript geli tiricileri kullan c lar na daha zengin uygulama deneyimleri
ya atabilmek ve sayfalardaki etiketlerde dinamik de i imler sa lanabilmesi iccedilin ccedilaba sarf
ediyordu Bu durum sayfalar n bir nesne gibi i lenebilmesini gerekli k ld Boumlylece DOM ortaya
ccedil km t r lk oumlnceleri Javascript ve DOM s k bir ili ki iccedilindeydi sonuccedilta ise iccedilerik ayr larak
geli tirilmi tir DOM sayfalar n JavaScript veya VBScript gibi bir betik dili ile de i tirilebilir
sayfalar n tamamen nesne youmlnelimli goumlsterimidir [60]
DOM ekil 316 da goumlsterilen JavaScript iccedilindeki buumltuumln nesneleri ifade etmektedir
Hiyerar ik olarak ccedilok say da nesneyi iccedilerir NetScape ve Microsoft taray c lar iccedilin DOM
nesneleri farkl oldu u iccedilin yaz lan kodlar uyumlu de ildir [59]
44
ekil 316 Javascript nesneleri [59]
Window nesnesi taray c n n kendisidir Window nesnesi birccedilok youmlnteme oumlzelli e ve
olaya sahiptir Form nesnesi DOM nesnesinin ana nesnesidir Form uumlzerindeki alanlar bu nesne
arac l yla kullan l r [59]
Verilerin yuumlklenmesinde kullan lan XML ile uumlretilen Javascript istemci kodlar ve veri
sunucu uumlzerindeki kodlar aras ndan ayr larak goumlsterilir Bu istemcinin etkilenmeksizin sunucu
uumlzerinde de i iklik yap lmas n sa lar Benzer API iccedileren di er istemciler iccedilin bilgileri accedil a
ccedil kar r [41]
363281 DOM (Document Object Model)
Document Object Model (DOM) XML ve HTMLXHTML iccedilin World Wide Web
Consortium (W3C) taraf ndan geli tirilen bir belgenin a accedil yap s n (tree-based) temsil eden bir
standartt r DOM bir tak m nesneler iccedilin belgenin yap s n temsil etmesinin yan s ra bu
nesnelere eri im iccedilin youmlntemler de sa lar [44]
DOM bir belgenin stilini kaynak dosyas n yap s n ve iccedileri ini guumlnceller ve program
ile scriptlerin belgeye eri imine izin veren bir platformdur Ayn zamanda bir API (application
programming interface) dir [62]
Nesneleri iccedileren belgeler iccedilin standart model olarak DOM uumlccedil boumlluumlme ayr lm t r
Core DOM
XML
HTMLXML DOM - XML
45
HTML DOM
HTML
DOM da her internet sayfas bir belge ve bu belge iccedilerisinde bulunan tuumlm elemanlar ise
nesne olarak kabul edilir DOM sayfa uumlzerindeki her bir XML eleman
iccedilin nesnelerin a accedil
yap s n n resmini goumlrselle tirmenin kolay bir yoludur A a daki oumlrnek basit bir XML
belgesinin doumlrt duuml uumlmden olu an DOM u goumlstermektedir Koumlk Dokuumlman duuml uumlmuuml koumlk etiketi
iccedilin bir Element duuml uumlmuuml alt etiketler iccedilin bir Element duuml uumlmuuml ve alt etiketin sahip olaca
herhangi bir bilgi girilebilen bir metin duuml uumlmuumlduumlr [41]
ltrootTaggt
ltchildTaggtSome TextltchildTaggt
ltrootTaggt
Bir a accedil yap s n n goumlrsel bir temsili a a da goumlsterilmektedir
Dokuumlman
Element (koumlkEtiket)
Element (altEtiket)
Metin
A a daki kod kuumlmesinin [63] DOM goumlsterimi ekil 317 deki gibidir
ltTABLE border=1gt
ltTBODYgt
ltTRgt
ltTDgtOumlgr NoltTDgt
ltTDgtAd Soyad ltTDgt
ltTRgt
ltTRgt
ltTDgt900ltTDgt
ltTDgtZeynep OumlZERltTDgt
ltTRgt
ltTBODYgt
ltTABLEgt
46
ekil 317 DOM a accedil yap s
[63]
Geccedilerli her HTML ve XML belgesindeki element nitelik metin duuml uumlmuuml (text node)
hatta bo luk ve sekme karakterleri(whitespace) bile W3C DOM taraf ndan duuml uumlm (node) olarak
kabul edilir ekil 317 deki gibi belgedeki duuml uumlmlerin kullan m hiyerar isine goumlre
s ralanmas na da duuml uumlm a ac (node tree) denir Belge nesnesi yeni duuml uumlmler olu turmak bu
duuml uumlmlerin oumlzeliklerini de i tirmek ve youmlnetmek iccedilin ccedilok say da youmlnteme sahiptir
363282 DOM Elementinin S k Kullan lan Genel Oumlzellikleri ve Youmlntemleri
A a da duuml uumlmlere eri mek ve youmlnetmek iccedilin s k kullan lan JavaScript youmlntemleri
vard r [64]
getElementById()
Soumlzdizimi
documentgetElementById(herhangiBirID)
Oumlrnek kullan m
element = documentgetElementById(kimlik)
getElementById() youmlntemi id oumlzelli i belirtilen elementlerin referans n n al nmas n
sa lar Ayn id kimli ine sahip ba ka bir element olmas durumunda sadece ilk elementi verir
Di erlerine eri im sa lamaz kimlik
dokuumlman uumlzerinde elementi bulmak iccedilin kullan lacak
e siz bir oumlzelli ini ifade eder
47
getElementsByTagName()
Soumlzdizimi
documentgetElementsByTagName(herhangiBirHTMLElementi)
Oumlrnek kullan m
documentgetElementsByTagName(etiketAdi)
Dokuumlman uumlzerinde belirtilen ayn etiket ismine ait buumltuumln elementlerin bir listesini verir
documentgetElementById(herhangiBirID)documentgetElementsByTagName()
parametresiyle id niteli inin de eri herhangiBirID olan elementin duuml uumlmleri
iccedilindeki tuumlm elementler listelenir
getElementsByName()
Soumlzdizimi
documentgetElementsByName(herhangiBirIsim)
Oumlrnek Kullan m
documentgetElementsByName(baslik)
Bu youmlntem dokuumlman uumlzerinde belirtilen name oumlzelli ine sahip elementlerin bir listesini
verir Oumlrnek kullan mda name niteli inin de eri baslik olan elementleri verir
firstChild
Bu oumlzellik elementin ilk alt elementini verir
Soumlzdizimi
documentgetElementById(herhangiBirID)firstChild
lastChild
Bu oumlzellik elementin son alt eleman n verir
Soumlzdizimi
documentgetElemementById( herhangiBirID )lastChild
48
nodeValue
nodeValue oumlzelli i text comment ve CDATA duuml uumlmlerinin iccedilerdikleri de eri verir
Soumlzdizimi
m= documentgetElemementById( herhangiBirID )lastChildnodeValue
m e er varsa duuml uumlmuumln iccedilerdi i de erin string olarak de eridir document nesnesinin
ve elementlerin nodeValue de eri null doumlner
removeAttribute()
removeAttribute fonksiyonu elementin belirtilen bir oumlzelli inin silinmesini sa lar
Soumlzdizimi
elementremoveAttribute(ozellik)
ozellik silinecek oumlzelli in ad d r
nodeName
Duuml uumlm bilgilerini almak iccedilin kullan l r Geccedilerli duuml uumlmuumln ad n doumlnduumlruumlr
Geccedilerli duuml uumlm element ise elementin tipini doumlnduumlruumlr Nitelik ise nitelik ad n doumlnduumlruumlr
nodeType
Geccedilerli duuml uumlmuumln tuumlruumlnuuml say sal olarak doumlnduumlruumlr
nextSibling
Duuml uumlmler aras gezinti yap labilmesiyi sa lar Geccedilerli duuml uumlmden bir sonrakine referans verir
previousSibling
Geccedilerli duuml uumlmuumln bir oumlncekine referans verir
setAttributeNode
Bir duuml uumlme nitelik atamada kullan l r
Soumlzdizimi
elementsetAttributeNode(nitelik)
49
36329 Fonksiyonlar
Fonksiyonlar birden fazla ad mdan olu an i lemlerin kolayca tek seferde yap lmas n
sa lar Fonksiyonlar bir dizi i lemi yerine getirir ve bir sonuccedil doumlnduumlruumlr Ayr ca fonksiyonlar
parametre olarak kabul edilen birccedilok de er al rlar
Fonksiyonlar n HTML dosyas n n HEAD boumlluumlmuumlne koyulmas yani gerekli buumltuumln
fonksiyonlar alt alta HTML in HEAD boumlluumlmuumlnde yer alacak bir SCRIPT etiketi iccedilinde
olu turulmas taray c n n Javascript yorumlay c s bak m ndan h z kazanmas n sa lar Sonra
ihtiyaccedil duyuldu unda yeni bir SCRIPT etiketi koyarak bu fonksiyon goumlreve ccedila r l r [58]
function fonksiyonun_ad (arguumlman1 arguumlman2 arguumlmanN)
i lemler
deyim 1
deyim 2
deyim N
363210 Accedil klamalar
Programlar n anla l r olmas n sa layan accedil klama sat rlar JavaScriptte bu lt- ve --gt
i aretlerinin aras nda ifade edilir [58]
lt- Accedil klama sat r d r --gt
37 Basit Bir AJAX Oumlrne i
Ekran ccedil kt s ekil 318 de goumlruumllen basit bir oumlrnek uumlzerinde i leyi anlat lacakt r
ekil 318 AJAX oumlrne i
50
indexhtml dosyas accedil ld nda Metnin AJAX la getirilmesi iccedilin tiklayiniz
ba lant s na t kland nda taray c kullan lan AJAX youmlntem sayesinde tuumlm sayfa yeniden
yuumlklenmeden iccedileri i sunucu da depolanan sonuchtm dosyas ndan alarak ekrana yans t r
Yukar daki indexhtml dosyas n n kodlar a a da goumlsterilmektedir
lthtmlgt
ltheadgt
lttitlegtAJAXla oumlrne ilttitlegt
ltscript language=JavaScript type=textjavascriptgt
function getXmlHttpRequestObject()
if (windowXMLHttpRequest)
return new XMLHttpRequest() IE olmayan
else if(windowActiveXObject)
return new ActiveXObject(MicrosoftXMLHTTP) IE
else
alert(Maalesef taray c n z XmlHttpRequest nesnesini desteklememektedir AJAX
destekleyen bir taray c da tekrar deneyiniz)
var receiveReq = getXmlHttpRequestObject()
function cevap()
if (receiveReqreadyState == 4 || receiveReqreadyState == 0)
receiveReqopen(GET sonuchtml true)
receiveReqonreadystatechange = handlecevap
receiveReqsend(null)
function handlecevap()
if (receiveReqreadyState == 4)
documentgetElementById(span_result)innerHTML = receiveReqresponseText
ltscriptgt
ltheadgt
lta href=javascriptcevap()gtMetnin AJAXla getirilmesi icin tiklayinizltagtltbr gt
51
ltspan id=span_resultgtltspangt
lthtmlgt
Oumlrnekte ilk olarak tuumlm taray c larda sorunsuz ccedilal abilmesi iccedilin ccedilapraz taray c deste i
sa lanm t r receiveReq de i keni getXmlHttpRequestObject() ile tan mlanm t r Daha
sonra cevap fonksiyonu olu turulmu tur Sunucudan gelen cevab n durumu ifelse yap s yla
kontrol edilmi tir Sunucudan gelen gelen cevaba goumlre doumlnduumlruumllen de erlerle sonuchtml sayfas
ccedila r larak uygulama sonlan r
AJAX youmlntemi ile ccedilekilen bilginin tutuldu u sonuchtml dosyas nda ise sadece ekil
319 de yazan veri bulunmaktad r
ekil 319 sonuchtml sayfas n n ekran ccedil kt s
38 XML
XML (eXtensible Markup Language) internet te teknik standartlar ve youmlnetim
konusunda yetkili organ olan W3C (World Wide Web Consortium) organizasyonu taraf ndan
geli tirilmi tir XML programc lar n kendi sistemlerini olu turabilecekleri kendi etiketlerini
tan mlayarak ccedilok daha rahat ve etkin programlama yapabilecekleri ve bu belirlenen etiketleri
kendi yap lar iccedilerisinde standartla t rabilece i esnek geli tirilebilir ve kolay uygulanabilir bir
meta-dil (bir dili tan mlamak iccedilin kullan lan soumlzcuumlkler dilbilim dili) dir [65]
XML ile ilgili ilk ve en oumlnemli nokta ba l ba na bir dil olmamas d r Daha ziyade
di er dilleri ya da bir dili olu turan soumlzcuumlkleri olu turmak (vocabularies) iccedilin kullan lan bir
meta-dildir XML bu soumlzluumlklerin olu turulmas iccedilin gerekli kurallar tan mlar [66]
XML bu kural yap s na uygun olarak etiketleri iccedilerik bilgisiyle tan mlayabilir XML nin
esnek yap s sayesinde a a daki oumlrnekte oldu u gibi kullan lan dilde ccedilok farkl tiplerde etiket
olu turulmas na muumlsaittir XML soumlzluuml uumlndeki tek k s tlamas etiketlerin iyi biccedilimlendirilmi
olmas gerekti idir [66]
52
ltnotgt
ltkimegt Melek lt kimegt
ltkimdengt Zeynep lt kimdengt
ltbaslikgt Hatirlatici ltbaslikgt
ltbodygt Bana proje teslim tarihini hatirlat lt bodygt
ltnotgt
Yukar daki not oumlrne i kendi kendini accedil klay c bir oumlrnektir Goumlnderici ve al c bilgisinin
yan nda mesaj metni ve ba l da mevcuttur XML nin HTML de oldu u gibi oumlnceden
tan mlanm etiketleri yoktur XML yazar kendi etiketlerini ve kendi belge yap s n oumlrnekteki
gibi olu turabilir
Her dil farkl d r ama hepsinde iccedileri i i aretlemek iccedilin etiketler kullan l r Etiket
adlar n n seccedilimi ve yap s esnektir ve genellikle gruplarda bilginin payla labilmesi iccedilin standart
XML soumlzluumlkleri kararla t r lm t r [66]
XML 1998 y l nda SGML alt yap s uumlzerine kurulmu tur SGML (Standard
Generalized Markup Language) bir etkinle tirme teknolojisidir HTML gibi uygulamalarda
kullan l r Geni letilebilir aretleme Dili (Extensible Markup Language-XML) nin oldukccedila
basit bir diyalektidir [66]
XML SGML ve HTML sistemlerinin her ikisinin de uygulanmas n kolayla t rmak iccedilin
tasarlanm t r XML ayn zamanda son derece popuumller bir veri format d r Ccediluumlnkuuml ccedilo u
programlama dili taraf ndan desteklenir Bu dil sayesinde geli iguumlzel veri tipleri tan mlamak
kolayd r Ccedilo u kez XML Uzak Yordam Ccedila r s - Remote Procedure Call (RPC) mekanizmas
sayesinde istemci-sunucu ileti imini kolayla t rmak iccedilin kullan lm t r [66] XML elde edilmek
istenen alan bilgileri konfiguumlrasyon parametreleri teknik ccedilizim hesap ccedilizelgesi (spreadsheet)
gibi ouml eleri iccedileren dosyalar n yaz l m nda kullan l r [67]
XML verileri goumlruumlntuumllemek iccedilin de il verilerin platformdan ba ms z bir ekilde
depolanmas ve transferi iccedilin tasarlanm t r XML tuumlm bilgiler duumlz metin format nda saklar Bu
da tuumlm platformlarda sorunsuz bir ekilde kullan labilir olmas n sa lar Bu dosyalar diskte duumlz
metin olarak tutman n bir avantaj
da olu turuldu u programda accedil lmas gerekli de ildir Bu
yaz dosyalar programc n n istedi i bir yaz i leme program nda accedil l p duumlzenlenebilir Ayr ca
XML veriyi duumlz metin (plain text) format nda saklamas ndan dolay veriyi payla t rma
konusunda hem yaz l m hem de donan mdan ba ms z hareket edebilme imkacircn n sunmu tur
53
381 Oumlrnek XML Belgesi Olu turma
XML belgelerinin yap s n n daha iyi kavranabilmesi iccedilin basit bir oumlrnekten yola ccedil k l r
Bir dizi karakter mant ksal bir yap ya ccedilevrilmelidir Bu ccedilevrim a accedil yap s kullan larak
yap labilir Oumlrnek belgede koumlk dizin ya da element ve alt boumlluumlmler iccedilin de dallar belirlenir
denemexml olarak kaydedilecek belgenin iccedileri inde sisteme kay tl kullan c lar n bilgileri
vard r
Haz rlanan denemexml belgesinin a accedil yap s a a daki gibi olu turulmu tur Koumlk
element ve alt dallar ve alt dala ait nitelik belirtilmi tir
ekil 320 denemexml dosyas n n a accedil yap s
A accedil yap s olu turulduktan sonra kodlama k sm na geccedililir XML de kod yaz m n
kolayla t rmak iccedilin Altova XMLSpy MoreMotion XML Editor XMLwriter XML Editor 26
gibi ccedile itli editoumlr programlar kullan labilir Bu tez ccedilal mas nda oldukccedila i levsel oumlzelliklere
sahip Altova XMLSpy yaz l m kullan lm t r Editoumlr kullanarak dokuumlmandaki metinlerin
yap sal elemanlar yaz oumlzellikleri (renk stil biccedilim vb ) belirginle tirilir mlerin otomatik
soyadi
adi
soyadi
eposta
adi
soyadi
eposta
Kullanicilar Kullanici Kullanici_id= 2
Kullanici Kullanici_id= 3
Kullanici Kullanici_id= 1
adi
eposta
54
olarak kapanmas sa lanabilir Olu turulan yap lar n do rulu u ve geccedilerlili i kolayca kontrol
edilebilir Altova XMLSpy editoumlruumlyle olu turulan belge a a daki kodlardan olu maktad r
ltxml version=10 encoding=UTF-8gt lt--Bu XML belgesi kullan c bilgilerini tan mlar --gt ltKullanicilargt
ltKullanici kullanici_id=1gt
ltadigtZeynepltadigt
ltsoyadigtOZERltsoyadigt
ltepostagtz_ozerhotmailcomltepostagt
ltKullanicigt
ltKullanici kullanici_id=2gt
ltadigtYagmurltadigt
ltsoyadigtOZERltsoyadigt
ltepostagty_ozeryahoocomltepostagt
ltKullanicigt
ltKullanici kullanici_id=3gt
ltadigtFatihltadigt
ltsoyadigtAYDOGMUSltsoyadigt
ltepostagtf_aydogmusgmailcomltepostagt
ltKullanicigt ltKullanicilargt
Haz rlanan dokuumlman iyi biccedilimlendirilmi (well-formed) bir yap ya sahiptir ekil 321
de Altova XMLSpy editoumlruumlyle olu turulan belgenin ekran goumlruumlntuumlsuumlnde denemexml
goumlruumllmektedir
55
ekil 321 XML belgesi
382 XML Dokuumlman n n Yap s
XML ile veriler yap bak m ndan moduumllerlik kazanmaktad r Bu sayede verilerin iccedilerik
yap ve sunum k s mlar ayr moduumlller halinde farkl XML dokuumlmanlar nda tutulmaktad r
Her XML belgesini olu turan moduumlller iki boumlluumlmde incelenecektir Bu moduumlller giri
boumlluumlmuuml (prolog) ve belge ya da koumlk duuml uumlm (document node) olarak ayr lm t r
Prolog XML belgesinin ba nda goumlruumlntuumllenir ve belge hakk nda iccedilerikle ilgili bilgiler
iccedilerir XML bildirimleri i lem accedil klamalar yorumlar ve DTD (Document Type
Definition)XML ema iccedilerebilir
yi duumlzenlenmi bir XML dokuumlman tek ve temel bir koumlk duuml uumlm uumlzerine kurulur
Elementler nitelikler metin CDATA (character data) varl k ve yorumlar iste e ba l olarak
eklenebilir
56
ekil 322 Oumlrnek bir XML dokuumlman yap s
[ 66]
3821 Giri Boumlluumlmuuml (Prolog)
Bu boumlluumlmde XML belgesinde bulunabilecek oumln tan mlama konular incelenecektir
3822 XML Bildirimleri
XML dokuumlmanlar genellikle a a daki bildirim sat r yla ba lar Bildirim sat r ndan
oumlnce ba ka komut sat r yaz lmamal d r Tersi bir durumda XML dokuumlman iccedileri i i leme
koyarken do ru bir ekilde okuyamaz ve hata mesaj uumlretir
ltxml version= 10 encoding= UTF-8
gt
Bu i lem sat r nda ba lang ccedil etiketi ve biti etiketi yoktur XML bildiriminin yap ld
ltxml ve gt i lem komut etiketleridir lem komutlar oumlrnekteki gibi biti ik yaz l r Bu oumlrnek
sat rda 2 tane oumlznitelik bar n r Birinci oumlznitelik xml dokuumlman n n hangi suumlruumlm oldu unu bildirir
ve yaz lmas zorunludur En yayg n kullan lan ve en guumlncel suumlruumlmuuml olan 10 yerine ba ka bir
57
de er yaz ld nda dosya i lenmeyebilir kinci oumlznitelik olan encoding belge i lenirken
kullan lacak dil seccediliminin belirtildi i aland r Oumlrnekteki kod birccedilok dili destekleyen UTF-8
karakter dil setini tan mlar
38221 lem Accedil klamalar (Processing Instructions)
Giri boumlluumlmuumlnde di er uygulamalara XML dokuumlman hakk nda bilgi veren i lem
accedil klamalar (Processing Instructions- PIs) dacirchil edilebilir lem accedil klamalar lt karakterleriyle
ba lar ve gt karakterleriyle biter PIs XML belgesinin di er boumlluumlmlerinde goumlruumllebilmesine
ra men genellikle giri boumlluumlmuumlnde goumlruumlluumlr
XML bildirimleri ltxml karakter grubuyla ba lar lem accedil klamalar yla benzerlik
goumlsterir Fakat aralar ndaki fark XML bildirimleri ltxml karakter grubuyla ba larken i lem
accedil klamalar ise lt karakterleriyle ba lar
Bir XSL stylesheet i referans goumlsteren PI goumlsterimi
ltxml-stylesheet type= textxsl
href= stylesheetxsl gt
PI nin ilk ouml esi bir isimdir PI hedefi olarak adland r l r Yukar da goumlsterilen PI xml-
stylesheet ismine sahiptir simler ltxml karakter grubundan - semboluumlyle ayr l r PI ler type=
textxsl href= stylesheetxsl metin karakter dizesine sahiptir Oumlrnek kod sat r nda stylesheet
ad nda metin iccedilerikli bir XSL dosyas referans goumlsterilmi tir
38222 Yorumlar (Comments)
Yorum sat rlar XML belgesinin hemen hemen her yerinde iste e ba l olarak
kullan labilir XML yorum sat rlar XHTML belgelerindeki yap yla ayn d r Ayn karakterlerle
ba larlar
lt--Bu alana yorumlar yaz labilir --gt
Yorum sat rlar XML belgesi i lenirken etkilenmezler Bu sat rlar programc lar n ya da
kullan c lar n program kodlar n kolayca anlayabilmeleri iccedilin yaz l r [68]
58
38223 Dokuumlman Tipi Tan mlama-The Document Type Definition (DTD) ve XML
emalar
XML belgesinin standartla t r lmas iccedilin kullan lan bir yap d r XML belgesinin hangi
elementleri iccedilerece ini ve bu elementlerin oumlzniteliklerinin ne olaca n elementlerin neleri
ta yaca n dokuumlman iccedilerisindeki tekrar eklini ve say s n kurallarla belirtir [69]
382231 DTD kullanman n Avantajlar
Veri depolama XML nin temel amaccedillar ndan birisidir Oumlrne in yaz l m geli tirecek bir
proje ekibi ccedilal rken ortak bir DTD nin olu turulmas yla geli iguumlzel yeni etiketler eklenmesinin
etiketlerle depolanan bilginin hatal s ralanmas n n etiketlere hatal nitelikler eklenmesinin
oumlnuumlne geccedililmi olur Ayr ca i lem yapan program n da bu belgeleri tan mas ve i lemesi kesinlik
kazan r [70] Belge i lenirken geccedilerlilik derleyicileri (validating parsers) XML belgesinin DTD
geccedilerlili i sa lanana kadar tekrar tekrar kontrol eder E er geccedilerlilik kontroluumlnden geccedilemezse
derleyici hata mesaj verir [66]
ccedileri in bir standarda oturtulmas yla AJAX ve dinamik DOM manipuumllasyonunda
istenmeyen gereksiz kod parccedilalar n n ve ccedilal mayan i aretlemelerin oumlnuumlne geccedililir Ayr ca daha
h zl HTML derleyicileri ve daha iyi ccedilapraz taray c performans iccedilin geli mi arama motoru
optimizasyonu sa lan r Bir DOCTYPE belirlemenin en oumlnemli etkisi HTML iccedileri inin nas l
ayr t r ld n ve yorumland n n Web taray c ya goumlsterilmesi gerekti ini belirtmesidir Ayr ca
DOCTYPE ba l olarak CSS yorumlanabilir ve HTML farkl ekilde goumlruumlntuumllenir [71]
Hangi i lem moduna dacirchil oldu u tespit edilerek Web taray c lar
DOCTYPE
doumlnuuml uumlmuumlnuuml destekler Web taray c lar bir Web sayfas n n nas l HTML ve CSS iccedileri ini
yorumlad n
ve de erlendirdi ini sayfalar n DOCTYPE bildirimlerine dayanarak de i tirir
[71]
382232 DTD tan mlama
DTD olu umu iki yolla yap labilir Birinci yol belge iccedilerisinde a a daki oumlrnekte oldu u
ilk standart sat rdan sonra ltDOCTYPE ile ba layan ve gt i areti ile biten aral kla DTD tan m
yap lmas d r DTD alan nda bir kok_element_adi etiketi tan mlanm t r [ ]
i aretleri aras nda
iccedilsel olarak tan mlanm t r Bu etiketin iccedilerisine element_icerigi olarak alt alanlar belirtilir
XML dokuumlman n n iccedilerik k sm na tan mlanan kok_element_adi etiketleri aras na istenilen metin
giri i yap l r
59
ltxml version= 10 encoding= UTF-8 gt
ltDOCTYPE kok_element_adi
[ltELEMENT kok_element_adi (element_icerigi) gt ]
gt
lt kok_element_adi gt Bu basit bir DTDli XML ornegidir lt kok_element_adi gt
kinci yol ise Web sayfalar n n iccedileri i bir geccedilerlilik servisi kullan larak onaylanmas d r
Do rulu u W3C1 taraf ndan garantiye al nan bir DTD ile geccedilerlilik kontroluuml sa lanabilir [71]
HTML XHTML SMIL MathMLvb Web dokuumlmanlar n n httpvalidatorw3org adresinden
URI adresi dosyalar upload edilerek ya da direk i aretleme giri i yap larak geccedilerlilik kontroluuml
yap labilir [72]
DTD tan m a a daki oumlrnekteki gibi HTML belgesine harici olarak
httpwwww3orgTRxhtml1DTDxhtml1-strictdtd adresindeki haz r kural yap s
dacirchil edilir
Kural ak bu adresten sa lan r [72] A a daki kod sat r nda XML veri tan mlamas na goumlre
ltcodegtltcodegt etiketleri olu turulmu tur
ltDOCTYPE html
PUBLIC -W3CDTD XHTML 10 StrictEN
httpwwww3orgTRxhtml1DTDxhtml1-strictdtdgt
lthtmlgt
ltbodygt
ltpgt Bu alana serbest metin giri i yap labilir
ltcodegt
Bu alanda ise XML veri tan mlamas DTD tan m na goumlre yap lm t r
ltcodegt
ltpgt
ltbodygt
lthtmlgt
Programc lar n en ccedilok ihtiyaccedil duyabilece i 6 tane oumlncelikli DOCTYPE belgelerinin
listesi a a da verilmi tir [72]
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401EN
httpwwww3orgTRhtml4strictdtdgt
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN
httpwwww3orgTRhtml4loosedtdgt
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 FramesetEN
60
httpwwww3orgTRhtml4framesetdtdgt
ltDOCTYPE html PUBLIC -W3CDTD XHTML 10 StrictEN
httpwwww3orgTRxhtml1DTDxhtml1-strictdtdgt
ltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalEN
httpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgt
ltDOCTYPE html PUBLIC -W3CDTD XHTML 10 FramesetEN
httpwwww3orgTRxhtml1DTDxhtml1-framesetdtdgt
382233 DTD ccedilinde Element Tipi Bildirimleri
Elementler hakk nda bilgi veren kodlard r Kullan lan yap ELEMENT ile ba lar
element ad ve element iccedileri inin eklenmesiyle sonlan r
ltELEMENT elementName (elementContents)gt
Element iccedileri i a a daki gibi bo olarak ta tan mlanabilir
ltELEMENT elementName (EMPTY)gt
Element iccedileri inde alt dallar-duuml uumlmler olu turulacaksa a a daki oumlrnekte oldu u gibi
DVD koumlk duuml uumlmuumlne le ayr larak s ras yla baslik format tarz element isimleri yaz l r
Belirlenen s ralama XML belgesi iccedilinde goumlruumlnecek s ralamay da olu turur
ltELEMENT DVD (baslik format tarz)gt
Parsed Character Data (PCDATA) veri tuumlruuml element iccedileri inin metinsel ifade olaca n
bildirir XML ayr t r c s bu metindeki karakter ve varl k referanslar n ccediloumlzuumlmler A a da
ltbaslikgt ltformatgt lttarzgt bildirimlerinin iccedilerik tuumlruuml PCDATA olarak tan mlan r
ltELEMENT baslik (PCDATA)gt
ltELEMENT format (PCDATA)gt
ltELEMENT tarz (PCDATA)gt
61
XML belgelerinde tan mlanan bir element herhangi bir veri kombinasyonunu iccedilerebilir
Bu durumda iccedilerik tuumlruuml ANY olarak tan mlan r En serbest iccedilerik tan m d r Oumlrnek kullan m
a a da goumlsterilmektedir
ltELEMENT KATALOG ANYgt
Elementlerin alabilecekleri nitelikler DTD iccedilerisinde tan mlan r Element iccedilerikleri
hakk nda daha detayl bilgiye ula lmas n sa lar Tablo 36 da kullan labilecek niteleyiciler
goumlsterilmektedir
Tablo 36 DTD karakterleri ve accedil klamalar
Karakter Accedil klama
Elemandan s f r veya daha ccedilok bulunabilir
Alt elemanlar s rayla belirler
| Bir grup element aras nda seccedilim yap lmas na izin verir
+ Elemandan bir veya daha ccedilok bulunabilir
Elemandan s f r veya 1 tane bulunabilir
Sembol olmamas o elementin bir kez goumlruumlnmesi gerekti ini bildirir
Oumlrnek goumlsterimde KULLANICI elementine ait alt element olan AD ouml esi birden fazla
de er alabilece ini goumlsterir TEL bildirimi ile kullan c ya ait di er bilgiler girilirken telefon
numaras
giri i eksik olarak kalabilece ini ve sonradan eklendi inde ise yeni kural
tan mlamas na gerek kalmadan etiket tan mlamas n n yap labilece ini bildirir
ltELEMENT KULLANICI (ADI+ TEL)gt
382234 DTD ccedilinde Nitelik Liste Bildirimleri
Nitelik bildirimleri element bildirimlerinden sonra goumlruumlnuumlr ve biraz daha karma k bir
yap ya sahiptir Bir elementin sahip oldu u oumlzellikler bir liste halinde belirtilebilir
Nitelik liste bildirimi a a daki yap yla goumlsterilir
ltATTLIST Element_adi Nitelik_adi Nitelik_tipi varsayilan_degergt
ltATTLIST DVD id CDATA REQUIREDgt
62
Kod parccedilas nda yaz lan varsayilan_deger niteli in gerekli olup olmad n belirtir
Nitelik tipleri Tablo 37 deki de erleri alabilir
Tablo 37 DTD ccedilindeki niteliklerin de er ve accedil klamalar
[73]
De er Accedil klamas
CDATA De er karakter verisi olmal
(en1|en2|) De er parantez iccedilindeki de erlerden birisi olmal
ID a unique identifier- benzersiz bir tan mlay c -kimlik
IDREF De er ba ka bir eleman n ID si olmal
IDREFS De er ba ka ID lerin listesi olmal
NMTOKEN De er geccedilerli XML ad olmal
NMTOKENS De er geccedilerli XML ad listesi olmal
ENTITY De er bir varl k olmal
ENTITIES De er bir varl k listesi olmal
NOTATION De er bir notasyon olmal
xml De er oumlnceden tan mlam bir XML de eri olmal
Varsay lan de er ise Tablo 38 deki de erleri alabilir
Tablo 38 Varsay lan de erler ve accedil klamalar
De er Accedil klama
deger Niteli in Default de eri
REQUIRED Nitelik de eri Eleman iccedilinde geccedilmek zorundad r
IMPLIED Nitelik de eri Eleman iccedilinde geccedilmek zorunda de ildir
FIXED value Nitelik de eri sabittir E er nitelik de eri belirtilirse default de eri
yazmak zorunludur
A a daki oumlrnekte URUN elementinin RENK niteli i seccedilimli olarak k rm z ye il ya da
mavi olas de erleri tan mlanm t r Varsay lan de eri ise k rm z olarak belirtilmi tir [73]
ltATTLIST URUN RENK (red|green|blue) redgt
63
382235 DTD ccedilinde Varl k (Entity) Bildirimleri
Varl k bildirimleri XML belgesinde kullan lan de i ik tuumlr ve biccedilimlerdeki verilerin
XML belgesine aktar lmas n sa lar Di er programlama dillerinde kullan lan moduumll ya da
makrolar gibi s kl kla kullan lan metin bloklar
varl k olarak tan mlanarak sayfan n istenilen
yerine kolayca eklenebilir Eklenen metin uumlzerindeki de i iklikler varl k bildirimiyle
duumlzenlenebilir [73]
Ayr ca d ar dan bir dosyay
varl k olarak tan mlayarak iccedilindeki veri XML belgesinde
kullan labilinir Bu veri metin olmak zorunda de ildir DTD bir varl k olarak tan mlamak iccedilin
a a daki sat r n kullan lmas
gerekmektedir [73]
ltENTITY varl k_ad varl k_degerigt
ltENTITY copyright Copyright 2009 Yayinevigt
Harici bir dosyadan al nacak bir varl k iccedilin soumlz dizimi ise a a daki gibidir
ltENTITY varl k_ad SYSTEM URIURLgt
ltENTITY tableOfContents SYSTEM entitiesdenemexmlgt
(Not URL = Uniform Resource Locator URI = Uniform Resource Identifier )
38224 XML emas
XML emas DTD lere benzer ekilde XML belgesinin yap s n ve bulundurabilece i
verilerin tuumlruumlnuuml tan mlamakta kullan l r XML emalar
xsd dosya uzant l d r ema XML
belgesinde kullan labilecek ouml eleri nitelikleri ve veri tuumlrlerinin yan s ra XML belgesinin soumlz
konusu XML emas iccedilin geccedilerli olmas n sa lamak amac yla uyulmas gereken yap y da
tan mlar [74]
XML emalar DTD yap lar na goumlre daha guumlccedilluuml bir yap ya sahiptir DTD iccedilerisinde
eleman iccedileri i string ve di er birkaccedil veri tipi ile s n rl d r XML ema integer floating point
say lar date time gibi daha geni bir veri tipi deste i sa lamaktad r XML ema ayr ca accedil k
iccedilerik modeli (open content model) ve isim uzay
(namespace integration) gibi ek oumlzellikler de
sunmaktad r XML ema belgeleri olu turulmas s ras nda XML soumlzdizimi kullan l r Bu DTD
lere goumlre ccedilok belirgin bir uumlstuumlnluumlk sa lar Ccediluumlnkuuml yeni bir soumlz dizimi ouml renilmesi yerine
XML in XML emaya oumlzel komutlar n n ouml renilmesi yeterli olur [75]
64
A a daki oumlrnek ema tan mlamas nda xs schema elementi ile ba layan bir koumlk ouml e
vard r
ltxml version=10 encoding=UTF-8gt
ltxsschema
xmlnsxs=httpwwww3org2001XMLSchemagt
ltxsschemagt
ema elementi iki tane oumlzelli e sahiptir
name
xmlns
ema iccedilin bir isim tan mlamas name oumlzelli i ile sa lan r xmlns oumlzelli inin ise oldukccedila
oumlnemli bir goumlrevi vard r Bu oumlzellik sayesinde oumlrne in Microsoft un schema belirtimlerini
kullanabilmesi iccedilin urnschemas-microsoft-comxml-data de erine ayarlanmas gerekir
A a daki oumlrnekte XML ema belgesi iccedilin name ve xmlns niteliklerinin basit kullan m
goumlsterilmektedir [66 75]
ltschema name=kutuphane xmlns= urnschemas-microsoft-comxml-datagt
lt - - ema iccedileri i buraya yaz l r- -gt
ltschemagt
Oumlrnek XML belgesi olu turma ba l alt nda verilen oumlrne in ema dosyas olan
denemexsd nin kodlar ve ekran goumlruumlntuumlsuuml ekil 323 deki gibidir
ltxml version=10 encoding=UTF-8gt ltxsschema xmlnsxs=httpwwww3org2001XMLSchemagt
ltxselement name=Kullanicilargt
ltxscomplexTypegt
ltxssequencegt
ltxselement ref=Kullanici minOccurs=0 maxOccurs=unboundedgt
ltxssequencegt
ltxscomplexTypegt
ltxselementgt
ltxselement name=Kullanicigt
ltxscomplexTypegt
ltxssequencegt
ltxselement name=adi type=xsstringgt
ltxselement name=soyadi type=xsstringgt
ltxselement name=eposta type=xsstringgt
ltxssequencegt
ltxsattribute name=id type=xsinteger use=requiredgt
65
ltxscomplexTypegt
ltxselementgt
ltxsschemagt
ekil 323 denemexsd nin ekran goumlruumlntuumlsuuml
3823 Belge Duuml uumlmleri
XML dokuumlman nlar ndaki belge duuml uumlmleri a a da incelenecektir
38231 Elementler
XML dokuumlmanlar ndan bahsederken etiket ve element terimleri kullan lmaktad r lk
ba ta birbirinin yerine kullan labilir gibi goumlruumlnse de asl nda farkl iki terimdir Element terimi
herhangi bir iccedilerikle birlikte etiketlerin accedil l p kapanmas olarak tan mlanabilir Etiket elementin
bir parccedilas d r Etiketler de kouml eli parantez accedil larak ba lan r ve sonunda kapat larak bitirilir
A a daki oumlrnek sat rda ltxyztgt etiketlerini iccedileren tam bir element goumlruumllmektedir
Accedil l etiketi Kapan etiketi
ltxyztgtXML de etiket ve element fark ltxyztgt
ccedilerik
Element
66
38232 Nitelikler
Her XML belgesi karakter verisi ve biccedilimlendirmeden olu ur Genellikle karakter verisi
ba lang ccedil ve biti etiketleri aras nda metinsel bilgi iccedilerir
XML etiketlerine bir ya da daha fazla nitelik tan mlanabilir
ccedilerik ya da
Nitelik ba ka etiketler
ltKullanici kullanici_id= 1 gt ltKullanicigt
Etiket sim De er
Accedil l etiketi Kapan etiketi
Element
38233 Metin
Accedil lan ve kapat lan tuumlm etiketlerin iccedileri ini olu turur CDATA gibi metin i aretlemesi
yap lmad kccedila tuumlm metin XML kural yap s na goumlre i lenecektir [66]
38234 CDATA Boumlluumlmuuml
CDATA XML yap s iccedilerisinde i lenmeyecek metinleri bloklar halinde i aretlemeye
yarar XML derleyici bu boumlluumlmde metin iccedilerisinde yer alan i aretleme ay raccedillar n ve etiketlerini
normal karakterler olarak alg lar CDATA yap s ltCDATA[ ile ba lar ve]] kouml eli parantezlerin
kapanmas yla sona erer
ltbaslikgtltCDATA[
]]ltbaslikgt
CDATA boumlluumlmleri Javascript gibi goumlmuumlluuml kodlar XML belgelerinde kullanabilir ve bu
boumlluumlmlere i leme ihtiyaccedil duyulmayan iccedilerik eklenebilir Oumlrne in bir uygulamada veritaban ndan
veri okumas ve i aretlemesi buumltuumln iccedileri in XML belgesine goumlmme bilgisini vermede
karakterler i lenirken accedil kccedila ayr lmas n n oumlnuumlne geccedilebilmek iccedilin CDATA boumlluumlmleri kullan l r
[66]
67
38235 Varl klar
Bir karakteri temsil eden sembol grubuna varl k denir Oumlrne in Ampersand i areti
yerine yani ve yerine kullan lan ampamp ya da bir karakterlik bo luk b rakmak iccedilin
nonbreaking space yerine ampnbsp semboluuml kullan l r
ltmatematikgt18 lt 36ltmatematikgt
Yukar daki kod sat r nda bu element i lenmeye ccedilal ld nda hata iletisi verecektir
Ccediluumlnkuuml 36 de erinin oumlnuumlndeki etiket accedilma i areti olarak alg lanacak ve kod sat r n n i leme
al nmas nda yanl l a neden olacakt r Bu hatay duumlzeltmek iccedilin kod sat r n n a a daki gibi
yaz lmas yeterli olacakt r
ltmatemetikgt18 amplt 36ltmatemetikgt
Tablo 39 da s k kullan lan karakterlerin varl k sembolleri goumlsterilmektedir
Tablo 39 XML Belgelerinde kullan lan varl k bildirimleri
Karakter Varl k
amp ampamp
ampapos
gt ampgt
lt amplt
ampquot
383 XML nin Soumlz Dizim Kurallar
XML iccedileri in i aretlenmesi iccedilin etiketleme dili kullan l r Bu etiketlemeler yap l rken
baz kurallar goumlz oumlnuumlnde bulundurulur imdi bu kurallar incelenecektir
1) XML dili buumlyuumlk kuumlccediluumlk harfe kar duyarl d r XML de kuumlccediluumlk harf kullan m esast r
Oumlrnek yaz m a a daki gibidir [76]
lttable WIDTH= 100 gt kullan m yanl t r
lttable width= 100 gt kullan m do rudur
68
2) Her etiket kapat lmal d r Oumlrne in ltkelimegt etiketini takip eden sat r sonuna ltkelimegt
etiketi de eklenmelidir
3) Dokuumlmanda buumltuumln elementleri iccedileren bir koumlk eleman olmas gerekir Oumlrnek yaz mda
oldu u gibi alt ouml eler duumlzenli bir yap da yaz lmal d r [76]
ltrootgt
ltchildgt lt childgt
ltsubchildgt lt subchildgt
lt rootgt
4) Etiketler belirlenirken bir element ba ka elementleri iccediline alacak ekilde tasarlanabilir
ccedilten d a do ru etiketlerin hepsi kapat lmal d r
ltbgtltigtBu metin koyu ve e ikltbgtltigt yanl kullan m
ltbgt ltigt Bu metin koyu ve e ik lt igt lt bgt do ru kullan m
5) XML elementleri oumlzel karakter verileri bo elementler CDATA ya da yorumlar
bar nd rabilir
6) Oumlznitelik de erleri t rnak iccediline al nm olmal d r Tek t rnak ya da ccedilift t rnak olabilir
lttable width=100gt kullan m yanl t r
lttable width= 100 gt kullan m do rudur
7) Element adlar harfler rakamlar tire alt ccedilizgi iki nokta i aretlerini ve noktalar
iccedilerebilir ki nokta i areti sadece namespace kullan m iccedilindir xml ile ba layan eleman
isimleri oumlnceden tan mlanm oumlzel isimlerdir [86]
ltkullanilabilirIsimlergt
ltisimgt
ltxslcopy-ofgt
ltUzun_bir_isimgt
ltNoktalarlaayrilmisbirisimgt
lth823323123-231-231gt
lt_23gt
ltkullanilabilirIsimlergt
8) Etiketleme yap l rken rakamla ba lamamas na dikkat edilmelidir Bo luk yer
almamal d r
69
384 XML Dokuumlmanlar n n leyi i ve Sunumu
XML i lemleri a accedil tabanl ve olay tabanl olmak uumlzere iki kategoriye ayr l r Verilerin
i lenmesinde XML parser yani ayr t r c kullan l r XML i lemciler genellikle XML ayr t r c
olarak da adland r l r A accedil tabanl ayr t r c lar DOM (Document Object Model) yakla m na
goumlre olay tabanl ayr t r c lar ise SAX (Simple API for XML) yakla m na goumlre veriyi ema
yap s ile birlikte XMLye oumlzguuml hiyerar ik yap da i ler lenen veriler uygulama ve
sorgulamalara haz r hale getirir [66 76]
Genellikle bir XML dokuumlman n XML formatl veri iccedilerik dosyas XSD (DTD yerine)
formatl ema dosyas ve XSL (CSS yerine) formatl stylesheet dosyas olmak uumlzere 3 dosyayla
tan mlanabilir Bu uumlccedil dosya tipi de XML destekli tuumlm sunucu ve veri tabanlar nda ccedilal t r labilir
Verinin yal n (native) olarak sakland veritaban youmlnetim sistemleri di er veritabanlar nda
kar la lan harici veri tipleri veya farkl format doumlnuuml uumlmlerine gerek duymad ndan sorgu
transfer ve entegrasyon i lemlerinin performanslar
oldukccedila yuumlksektir Ayr ca XML veritaban
youmlnetim sistemlerinde verinin yal n biccedilimde kendi iccedil format nda tutuluyor olmas n n bir
avantaj da eri imi kolayla t rmas d r Ba ka veritaban youmlnetim sistemi yakla mlar nda buna
benzer bir arama iccedilin karma k ccediloklu tablolar ara t r l r ve daha sonra XML verisine
doumlnuuml tuumlruumlluumlr Bu da i lem performans n n duuml mesine ve maliyet art r c ek uygulamalar
eklenmesine neden olur [66 76]
39 AJAX Prensipleri
AJAX yeni bir teknoloji olmas itibariyle henuumlz emekleme doumlnemindedir Bununla
birlikte birkaccedil Web tasar mc s bu yenili i ba a ccedil k lmas gereken bir sorun gibi alg lamaktad r
Bu sorun iyi bir AJAX Web uygulamas yapabilmek iccedilin s radan ya da koumltuuml bir uygulamaya
kar ne yap lmas gerekti i olarak tan mlanabilir Michael Mahemoff (wwwmahemoffcom)
bir yaz l m geli tirici ve kullan labilirlik uzman iyi Ajax uygulamalar iccedili birkaccedil temel ilke
belirlemi tir [37]
Minimal Trafik nternet trafi i internet uumlzerindeki veri ak d r Goumlnderilen ve al nan
mesajlar n miktar youmlnuuml web sitesine giren ziyaretccedililerin say s ziyaret ettikleri
sayfalar ccedilevrimiccedili trafi i olu turmaktad r AJAX uygulamalar nda amaccedil bu internet
trafi ini en alt seviyede tutmak iccedilin sunucudan muumlmkuumln olabildi i kadar az bilgi
goumlnderip almakt r Ayr ca bilgi ak nda gereksiz bilgilerin her seferinde goumlnderilip
al nmas n n oumlnuumlne geccedililmesiyle uygulamaya sa laml k kat l r
70
Kullan c etkile imli model Genellikle AJAX uygulamalar geleneksel Web
uygulamalar ndan farkl olarak de i ik kullan c etkile imli modeller sunar Web
standartlar ndaki t kla-bekle anlay na kar AJAX uygulamalar nda an nda suumlruumlkle
b rak ya da ccedilift t klamayla yak nla t rma gibi di er kullan c arayuumlz paradigmalar
vard r E er kullan c
etkile imli modeller seccedililirse kullan c
ne yapaca n bilir
Sade arayuumlz Yan p soumlnen sayfa boumlluumlmuuml ya da suumlrekli doumlnen animasyonlar gibi dikkat
da t c ve gereksiz sayfa elementlerinden kaccedil n l r Kullan c lar goumlze hitabeden
uyumlu ve sade sayfalar tercih etmektedir
Eri ilebilirlik nsanlar n ba lant h zlar ndan fiziksel engellerine ya ad uumllkenin
toplumsal yap s ndan ya l l a kadar birccedilok youmlnden eri ilebilirlik standartlar
incelenebilir Birincil ve ikincil kullan c lar n beklentilerine en uygun olacak AJAX
uygulamalar na eri im seccedilenekleri goumlz oumlnuumlnde bulundurulmal d r Oumlzel yaz l mlarla m
yoksa kullan lacak taray c oumlzellikleriyle mi adaptasyonun sa lanaca belirlenmelidir
Boumlylece yeni hedef kitleler de tamamen d ar da b rak lm olmayacakt r
Sayfan n tamam n indirilmesinden kaccedil nma Tetikleyici sayfa indirildikten sonra
tuumlm sunucu ileti imi AJAX motoru taraf ndan youmlnetilmektedir Boumlylece kuumlccediluumlk bilgi
al -veri leri iccedilin tuumlm sayfan n tekrar yuumlklenmesinin oumlnuumlne geccedililmi olur
lk kullan c AJAX uygulamalar nda tasar m kullan c lar n daha oumlnce
kar la mad klar bir biccedilimdedir Etkileyici efektler ve s k c olmayan bilgilendirici
reklamlarla genel kullan m durumlar n kolayca ba armaktad r
Buumltuumln bu ilkelerde bulunan ortak nokta kullan labilirliktir AJAX oumlncelikle kullan c lar
iccedilin web deneyimini geli tirmeye ccedilal rken arkas ndaki teknoloji sadece bunun iccedilin bir araccedilt r
Yukar daki ilkelere sad k kalarak AJAX uygulamalar oldukccedila faydal ve kullan l olacakt r
[37]
310 AJAX Kuumltuumlphaneleri ve Araccedillar
Kuumltuumlphaneler haz r fonksiyonlara kolayca eri im sa lar Ayr ca s k kullan lan var olan
kodlar tekrar yazarak zaman kaybedilmemesini sa lar A a da en ccedilok kullan lan AJAX
kuumltuumlphanelerine oumlrnekler verilmi tir
3101 Prototype
Prototype dinamik web uygulamalar yaratmak iccedilin kullanabilecek geli mi bir
kuumltuumlphanedir Accedil k kaynakl ve nesne tabanl kod kuumltuumlphanesidir Ajax iccedilin yaz lan
71
kuumltuumlphanelerin ilk oumlrneklerindendir ve di er haz r kuumltuumlphanelerin bir k sm prototypejs
kullanmaktad r [78]
3102 AJAX Gear Toolkit
AJAX olarak bilinen istemci tarafl tekni in buumltuumln avantajlar ndan faydalanmay
muumlmkuumln k lan bir araccedilt r XMLHttpRequest nesnelerini kullanarak internet taray c s n n
asenkron ccedila r yapmas n sa lar [78]
3103 AspNet Ajax
ASPNET AJAX ASPNET ile yap lan ve tuumlm nternet taray c lar nda ccedilal abilen
uygulamalar iccedilin Microsoft taraf ndan geli tirilen bir kuumltuumlphanedir Oumlnce Atlas daha sonra
ASPNET Ajax ad n alm t r ASPNET 20 ile kolay entegrasyon ASPNET 35 ile tam
entegrasyon sa lar Yeni nesil etkile imli arayuumlzler olu turmak iccedilin kullan l r [78]
3104 Dojo Toolkit
Accedil k kaynak kodlu bir javascript toolkit olup dhtml sorunlar n buumlyuumlk oumllccediluumlde ccediloumlzmuuml tuumlr
Arayuumlz programlama karma k kodlar n basite indirgenmesi toolkitin sa lad avantajlard r
Ayr ca dinamik web sitesi ya da ba ka ortamlar haz rlamay kolayla t ran ve sitenin daha
kullan l olmas n sa layan iccedilerikler sunar [78]
3105 MochiKit
Dreamweaver web uygulamalar iccedilin kullan lan ajax kuumltuumlphanelerinden birisidir E
zamanl olmayan davran lar iccedilin erteleme uygulamas n kulland ndan sunucuyla etkile im
halinde olan web sayfalar n n geli tirilmesinde tercih edilir [78]
3106 PHPLiveX
PHP ile yap lan uygulamalar iccedilin kullan lan bir kuumltuumlphanedir Versiyon 25 ile gelen
yenilikler ve optimizasyonlar kuumltuumlphanenin potansiyelini ciddi biccedilimde artt rm t r Di er php
tabanl kuumltuumlphaneler gibi php fonksiyonlar n javascript koduyla ccedila r r fakat di erlerine goumlre
daha az kodla kullan m sa lar [78]
72
3107 Sardalya (Sarmal Dinamik Altyap s )
Sardalya Dinamik AJAX Kuumltuumlphanesi DOM deste i olan tuumlm guumlncel taray c larda
ccedilal mak iccedilin tasarlanm bir AJAX Kuumltuumlphanesi dir Linux windows freebsd osx sun gibi
platformlarda ccedilal abilir Tuumlm taray c lardan ba ms z olarak ccedilal r ve kullan m s ras nda az
yer kaplar [78]
3108 Sajax
Sajax n accedil l m Simple Ajax Toolkit tir ASP ve PHP tabanl programlarda AJAX
uygulamalar geli tirmek iccedilin kullan lan bir kuumltuumlphanedir Buumltuumln sunucu tarafl platformlara
ccedila r goumlnderebilme yetene ine sahiptir [78]
3109 Solvent
AJAX uygulamalar n moduumller bir yap da gerccedilekle tiren farkl bir kuumltuumlphanedir
JavaScript ile yaz lm t r ve tuumlm taray c lardan ba ms z olarak ccedilal an bir AJAX uygulamas d r
Web uygulamalar n kuvvetlendirmek ve uygulamalar n geli tirme suumlrecini h zland rmak iccedilin
kullan l r [78]
31010 AjaxAC
AjaxAC accedil k kaynak kodlu php tabanl bir kuumltuumlphanedir AjaxAC ile varolan PHP
s n flar na ve MySQL veritaban na ek istek verilerini doumlnduumlrmek iccedilin geccedili oldukccedila kolayd r
[78]
31011 Xajax
Xajax Php JavaScript HTML XMLHttp ve XML kullanarak taray c ve sunucu
aras ndaki al veri i ve verileri goumlstermeyi gerccedilekle tirir Xajax ile geli tirilmi
uygulamalar sunucudaki php fonksiyonlar n ccedila rabilir ve sayfay yeniden yuumlklemeden
iccedileri ini guumlncelle tirebilir [78]
73
31012 Scriptaculous
Prototype tabanl bir js framework tuumlr Yap lan AJAX i lemleri prototype iccedilerisinde
bulunan nesneler ve fonksiyonlar ile yap l r [78]
311 AJAX Uygulamalar nda Kullan lan Di er Teknolojiler
AJAX istemci ile sunucu aras nda e zamanl olmayan ileti im sa layan bir teknolojiler
buumltuumlnuumlduumlr
3111 HTMLXHTML
stemci tarafl (client side) bir metin i aretleme dili olan XHTML (Extensible
HyperText Markup Language- Geli tirilebilir Metin aretleme Dili) dili XML soumlz dizimi ile
olu turulmu tur XHTML standart etiket ayarlar n tan mlarken spesifik bir yol kullan lmal d r
World Wide Web Consortium (W3C) duumlnyadaki Web geli tiriciler iccedilin olu turulmu ayn
standartla t r lm yakla m benimserler [66]
3112 CSS
XHTML de stil biccedilimlendirmesini sa lar Yuumlzlerce sayfan n tek merkezden
youmlnetilmesini sa lar Geleneksel youmlntemlerde her sayfan n biccedilimlendirme ayarlar birccedilok kod
sat r aras ndan stillerle ilgili olanlar n seccedililip duumlzeltilmesiyle yap l r CSS kullan lan
youmlntemlerde a a daki gibi bir kod parccedilas
tuumlm sayfalardaki stil ayarlar n n yap lmas n tek
merkeze ba lam t r
kabuk
width760px
background-colorEE7700
spot
colorEE7700
font-familyVerdana Comic Sans MS Helvetica sans-serif
74
AJAX ve CSS birlikte kullan larak masauumlstuuml ccedilal t r labilir EXE yaz l mlar ile ayn
h zda ve performansta ccedilal an web uygulamalar geli tirmek muumlmkuumln hale gelmi tir Google
belgelerinde Gmail bunun en buumlyuumlk oumlrne idir
Web sayfalar ndaki tuumlm iccedilerik biccedilimlendirmeler resimler vb istemciye
HTMLXHTML kodlar halinde goumlnderilir Bu kodlar sade ve basittir Bu da oldukccedila fazla
kullan c ya hitap edebilen web siteleri iccedilin oumlnemlidir Ccediluumlnkuuml internete ba land nda k s tl bir
bant geni li ine sahip kullan c lar daha az say da karakter iccedileren sayfalar daha k sa suumlrede
indirebilecektir Boumlylece kullan c lar toplam suumlrede daha fazla sayfa ziyaret edecektir
Sayfalar n h zl yuumlklenmesi kullan c lar n o siteler hakk ndaki memnuniyetini art racakt r
Ayr ca bu durum yaz c dostu sayfalar n olu turulmas nda etkilidir [79]
3113 XSLT
XSLT (Extensible Stylesheet Language Transformations Geni letilebilir
Biccedilimlendirme Dili Doumlnuuml uumlmleri) XML tabanl doumlkuumlmanlar n orijinal halini de i tirmeden
yeni bir dokuumlman olu turmak iccedilin kullan lan bir dildir [80] Oumlrne in bir XML doumlkuumlman n
XHTML ye doumlnuuml tuumlrmek iccedilin XSL doumlnuuml uumlmuuml (transformation) kullan labilir XMLnin iccedilindeki
hangi data nas l doumlnuuml tuumlruumllecek sorular ndan hangi sorusunun cevab XPath ile belirtilirken
nas l sorusunun cevab ise yine XML ile belirtilir [81]
75
4 FLEX
Flex MXML ActionScript 30 ve Flex s n f kuumltuumlphanelerinin birle iminden olu an
sunucu-istemci tabanl yeni bir teknolojidir Ayr ca Flex Flash uygulamalar ile derlenebilen
XML tabanl bir dil olarakta tan mlanabilir [84] Flex in ccedilal ma sistemati inin i lem ak
emas ekil 41 de goumlsterilmektedir
ekil 41 Flex uygulamalar n n i lem ak emas
ekil 41 de sol alt kouml eden sa uumlst kouml eye do ru i lem ak emas takip edildi inde
Flex Builder 3 ile geli tirlen appmxml uygulamas MXML derleyicide ccedilal t r ld nda bir swf
dosyas uumlretmektedir Ayr ca uumlretilen swf dosyas n n sunucu uumlzerinde test edilebilmesi iccedilin
birde html uzant l dosya olu turulur Flex in en oumlnemli oumlzelli i uumlretilen son uumlruumlnuumln swf
format nda olmas d r Ayr ca olay tutucu komut dizelerinin kolay kullan m
yaz l m n
olu turulmas nda Flex program n tercih nedeni olmas n sa lam t r
Adobereg Flexreg 3 yayg n olarak kullan lan taray c lar masauumlstleri ve i letim
sistemlerinde kolayl kla etkileyici web uygulamalar olu turmaya ve bak mlar n yapmaya
youmlnelik verimlili i yuumlksek bir programd r Accedil k kaynak (open source) altyap s na sahiptir
Eclipse tabanl bir plugin kuumlmesidir
Adobe firmas taraf ndan Flex Builder 3 Pro lisans
herhangi bir e itim kurumuna
ouml renci e itmen ya da ccedilal an olarak ba l olduklar n belgeleyenlere tamamen uumlcretsiz olarak
verilmektedir Kurulum tamamland ktan sonra ilk accedil l ekran ekil 42 de goumlsterildi i gibidir
[83]
76
ekil 42 Flex arayuumlzuuml
41 Adobereg Flexreg 3 Kurulumu ccedilin Gereken Minimum Sistem Gereksinimleri
Uygulama gerccedilekle tirmek iccedilin farkl i letim sistemleri iccedilin gerekli sistem
gereksinimleri a a da belirtilmi tir
411 Windows ccedilin Flex Builder 3 (Standart ve Profesyonel)
Flex in Windows kurulumu iccedilin gerekli minimum sistem gereksinimleri a a da
goumlsterilmektedir [83]
Intelreg Pentiumreg 4 i lemci
Microsoftreg Windowsreg XP Service Pack 2 veya Windows Vistareg Home (Premium
veya Basic) Business veya Ultimate
1 GB RAM (2 GB oumlnerilir)
500 MB kullan labilir sabit disk alan (eklenti yap land rmas iccedilin ek 500 MB gerekir)
Java Virtual Machine Sun JRE 142 Sun JRE 15 (dacirchildir) IBMreg JRE 15 veya
Sun JRE 16
Eklenti yap land rmas iccedilin Eclipse 322 33 ve 34 (Eclipse 33 Windows Vista iccedilin
oumlnerilir)
Adobe Flashreg Player 9 yaz l m
BEA Workshop 101
77
IBM Rational Software Architect 7003 (Yaln zca Eclipse 33 eklenti yap land rmas )
412 Macintosh ccedilin Flex Bu lder 3 (Standart ve Profesyonel)
Macintosh bilgisayarlar iccedilin gerekli minimum sistem gereksinimleridir [83]
PowerPCreg G4 125 GHz veya Intel i lemci
Mac OS X v1047 10410 veya 105
1 GB RAM (2 GB oumlnerilir)
500 MB kullan labilir sabit disk alan
Java Virtual Machine Appledan JRE 15 veya JRE 16
Eclipse 322 33 ve 34 (eklenti yap land rmas iccedilin)
Adobe Flash Player 9 yaz l m
78
5 CcedilEVR M Ccedil KATALOG TASARIMI F rat Uumlniversitesi Oumlrne i
AJAX teknolojisi AdobeMacromedia firmas n n geli tirdi i Flex program
ve
bile enleri kullan larak F rat Uumlniversitesinin 2009 ccedilevrimiccedili katalog ccedilal mas
herhangi bir
teknik bilgi gerektirmeden guumlncellenebilen alt yap s yla gerccedilekle tirilmi tir Kullan c arayuumlzuuml
olu turulurken XML tabanl bir gramer yap s
ve Flex program
kullan lm t r Bu tez
ccedilal mas nda sunucu olarak WampServer 20 kullan lm t r Katalog uygulamas n n kaynak
kodlar na ek boumlluumlmuumlnden bak labilir
AJAX teknolojisiyle ortaya ccedil kmaya ba layan ccedilevrimiccedili bro uumlrler ve kataloglar
internetteki Web uygulamalar uumlzerinde ccedilevrimiccedili hedeflerin oumlnemli bir boumlluumlmuumlne hacirckim
olmaktad r [37] Bu tez ccedilal mas da buna oumlrnek te kil etmektedir
Ccedilal man n olu um haritas na literatuumlr taramas yla ba lanm t r Bir sonraki ad mda
haz rlanacak olan program n oumlzellikleri belirlendi Bu a amadan sonra yaz l m iccedilin kullan lacak
program n seccedilimi yap ld Yaz l m algoritmas planlan p ekil 51 deki kodlama algoritmas
olu turulmu tur Yaz l m test edildi inde olu an hatalar giderilmi tir Ccedilal man n sayfa tasar m
yap larak son ekli verilmi tir
79
ekil 51 Kodlama algoritmas
Ba la
Harici verilerin XML dosyas ndan okunmas iccedilin HttpService s n f tan mland
De i ken tan mlamalar
Flex s n flar eklendi
Uygulamada kullan lacak resim boyutland rmas iccedilin maskeleme yap ld
Sunucu ile taray c ileti iminde AJAX scriptler kullan ld
Tuumlm sayfalar ekran goumlruumlntuumlsuuml iccedilin uygulama boyutland rmas yap ld
Zoom oumlzelli i iccedilin etiket tan mlamas ve buumlyuumltuumllmuuml sayfa goumlruumlntuumlsuuml iccedilin goumlruumlnuumlm
ayarlar fonksiyonu yaz ld
Navigasyon duuml meleri olu turuldu
XML format na uygun duuml uumlmler olu turuldu
Sayfa tasar m yap ld
Dur
A a daki kod sat rlar yla katalog ccedilal mas n n uygulama dosyas olan catamxml
dosyas na Flex iccedilinde ccedilal ma youmlntemlerini belirleyen faydal
s n flar dacirchil edilmi tir
lt[CDATA[
import mxutilsStringUtil
import mxrpcsoapLoadEvent
import mxcontrolsAlert
import mxrpceventsFaultEvent
import qscontrolsFlexBook
import qscontrolsflexBookClassesFlexBookPage
import qscontrolsflexBookClassesFlexBookEvent
import qscontrolsflexBookClassesWBookPageImpl
import qscachingContentCache
import mxrpceventsResultEvent
import mxrpchttpHTTPService
import mxcoreUIComponent
import mxmanagersPopUpManager
import compResimSec
import Kullan
import mxcoreScrollPolicy
import mxcollectionsArrayCollection
XML tan mlamalar diziler sunucu ba lant lar ve zoom i lemleri iccedilin gerekli de i ken
tan mlamalar a a daki kod sat rlar yla yap lm t r
private var aXML
[Bindable]
private var resimlerArrayCollection
private var dataSetHTTPService
private var resimdiziArray=new Array()
private var zoomYapBoolean=false
Katalo un local sunucu uumlzerinde ccedilal t r labilmesi iccedilin kaynak dosyas
Wamp kurulumu
sonras nda olu an www klasoumlruuml iccediline yerle tirilir E-katalog resimleri dinamik olarak data
dizinindeki imagesxml dosyas nda ccedilekilmektedir Katalog resimlerini de i tirmek iccedilin bu
dosyadaki xml duuml uumlmlerinin de i tirilmesi yeterlidir De i iklik yap lacak duuml uumlm oumlrne i
a a da goumlsterilmektedir
81
ltimage source=images2jpg thumb=images2jpg zoom=images2jpggt
Yukardaki sat rdaki duuml uumlmleri accedil klamak gerekirse source duuml uumlmuumlnde katalogda
goumlruumlnecek resim thumb duuml uumlmuumlnde e er as l resim (source) resmi yuumlklenene kadar ba ka bir
resim goumlruumlnmesi isteniyorsa o resmin kayna goumlsterilir Zoom duuml uumlmuuml ise sayfaya zoom
yap lmas esnas nda goumlruumlnecek resmin kayna n goumlsterir
Yukardaki 3 duuml uumlmden thumb duuml uumlmuuml iste e ba l olarak kullan l r Zoom
duuml uumlmuumlndeki resim as l resmin 100 buumlyuumlk hali olmal d r
ekil 52 Katalo un ilk sayfas n n ekran goumlruumlntuumlsuuml
E-katalog sayfalar n boyutunu kataloghtmlde tan ml olan object nesnesinin geni lik ve
yuumlkseklik oumlzelliklerinden almaktad r ekil 52 nin kaynak kodu a a da verilmi tir
ltscript src=ScriptsAC_RunActiveContentjs type=textjavascriptgtltscriptgt
ltscript type=textjavascriptgt
AC_FL_RunContent( idkatalogwidth894height653codebasehttpfpdownloadm
acromediacomgetflashplayercurrentswflashcabmoviekatalogqualityhighbgcolor
000000allowscriptaccesssameDomain ) end AC code
ltscriptgtltnoscriptgtltobject classid=clsidD27CDB6E-AE6D-11cf-96B8-444553540000
id=katalog width=894 height=653
82
codebase=httpfpdownloadmacromediacomgetflashplayercurrentswflashcabgt
ltparam name=movie value=katalogswf gt
ltparam name=quality value=high gt
ltparam name=bgcolor value=000000 gt
ltparam name=allowScriptAccess value=sameDomain gt
ltembed src=katalogswf quality=high bgcolor=000000
width=984 height=653 name=katalog align=middle
play=true
loop=false
quality=high
allowScriptAccess=sameDomain
type=applicationx-shockwave-flash
pluginspage=httpwwwadobecomgogetflashplayergt
ltembedgt
ltobjectgtltnoscriptgt
ekil 53 Katalo un 23 sayfa goumlruumlntuumlsuuml
Oumlrne in ekil 53 te kullan lan resimlerin width=447 height=613 boyutunda ise
resimlerin sayfada goumlruumlnmesi iccedilin html etiketindeki width oumlzelli ini 447x2=984 ve height
83
oumlzelli ini 613+40=653 eklinde duumlzenlenmesi gereklidir Yani width=resim geni li i X 2 ve
height=resim yuumlksekli i + 40 olmal d r
ekil 54 Katalo un sayfa ccedilevirme efektli goumlruumlntuumlsuuml
ekil 54 te goumlruumllen e-katalogun sayfay ccedilevirme oumlzelli i ile h z gibi i lemleri stylecss
dosyas nda tutulmaktad r Gerekli olmad kccedila bu dosya uumlzerinde de i iklik yap lmamas tavsiye
edilir Olu turulan stylecss dosyas n n kodlar a a da goumlsterilmi tir
FlexBook
color 000000
textRollOverColor 000000
border-thickness 0
border-style none
page-slope06
active-grab-area page
page-shadow-strength 1
curve-shadow-strength 1
auto-turn-duration 1500
Application
color F1F1CC
textRollOverColor FFFFFF
84
backgroundGradientColors FFFFFF FFFFFF
backgroundColor FFFFFF
SuperImage
border-thickness 0
border-style none
ekil 55 de goumlruumllen navigasyon ccedilubu unda 1 numara ile goumlsterilen alan istenilen
sayfaya konumland rma yap labilmesi iccedilin sayfa numaras n n girildi i kutudur 2 numara ile
goumlsterilen alan Sayfaya Git duuml mesine t kland nda istenilen sayfan n accedil lmas n sa layan
duuml medir 3 ve 4 numara ile goumlsterilen duuml meler Geri leri duuml meleridir Fare kontroluuml
olmadan da sayfalar aras nda gezinti yap labilmesini sa lar 5 numara ile goumlsterilen alan Tuumlm
Sayfalar duuml mesidir
ekil 55 Katalo un navigasyon ccedilubu u
Tuumlm sayfalar n accedil l r pencere iccedilerisinde goumlruumlntuumllenmesini sa layan fonksiyon a a daki
gibidir Kullanmxml sayfas nda ccedilekilen resimler pencerede goumlster komutuyla geni lik ve
yuumlksekli i ayarlan r Seccedililen nesneler customMoveend() komutuyla ekrana ta n r
private function tumsayfalar()void
Kullanshow_window(thisfalseapplicationwidth-10(applicationheight-60)2)
customMoveend()
customMoveplay()
ekil 56 da goumlruumllduuml uuml uumlzere ccedilevrimiccedili katalogdaki yuumlkluuml olan tuumlm sayfalar yukar dan
accedil lan bir pencere yard m yla goumlsterilir Tuumlm sayfalar
goumlster duuml mesi t kland nda goumlruumlnecek
resimler ile ilgi ayarlar ise data klasoumlruumlndeki onizlexml dosyas ndan ayarlanabilir Xml nin
esnek etiketleme yap s sayesinde onizlexml dosyas nda olu turulan ltsayfalargt etiketi aras na
a a daki kod sat rlar ccedilo alt larak olu turulmu tur
85
ltsayfagt
ltresim1gtimages2jpgltresim1gt
ltresim2gtimages3jpgltresim2gt
ltgitgt2ltgitgt
ltpagesgt23ltpagesgt
ltsayfagt
ekil 56 Tuumlm Sayfalar duuml mesi t kland ndaki ekran goumlruumlntuumlsuuml
Son olarak 6 numaral duuml me t kland nda + ve - konumlar n alarak buumlyuumlteccedil
oumlzelli i kullan l r ekil 57 de goumlsterildi i gibi imleccedil sayfa uumlzerinde gezdirilirken bu alan
uumlzerinde zoom yap larak yan sayfada buumlyuumltuumllmuuml goumlruumlntuuml sa lan r
86
ekil 57 Zoom oumlzelli i
Zoom oumlzelli inde resimler uumlzerindeki geni lik ve yuumlkseklik de erleri iccedilin if else blok
yap s kullan larak maskeleme fonksiyonu yaz lm t r Maskeleme fonksiyonu a a daki kod
sat rlar nda goumlsterilmektedir Fare nin x-y koordinatlar nda alaca de erlere goumlre fare nin
buumlyuumltuumllecek alan uumlzerinde gezinmesiyle yan sayfada buumlyuumltuumllmuuml goumlruumlntuuml elde edilmi tir
private function maskele(eMouseEvent)void if(zoomYap) if((mouseXgt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) )
maskex=0
img2visible=false img1visible=true img1x=(applicationwidth2)-mouseX img1y=-1mouseY else if((mouseXlt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) ) maskex=applicationwidth2 img1visible=false img2visible=true img2x=-1mouseX img2y=-1mouseY
Sayfa goumlruumlntuumllerinin maskelenmesinden sonra resimlerin kaynak dosyadan ccedilekilerek
ekrana buumlyuumltuumllmuuml hallerinin yans t lmas iccedilin a a daki fonksiyon olu turulmu tur
87
private function zoom()void
if(zoomerlabel==+) zoomerlabel=- if(img2source=aimage[bookcurrentPageIndex2]zoom) yuklemevisible=true
img2addEventListener(EventCOMPLETEbuyuk2_yuklendi) img2source=aimage[bookcurrentPageIndex2]zoom
if(aimagelength()gtbookcurrentPageIndex2+1) img1addEventListener(EventCOMPLETEbuyuk1_yuklendi)
img1source=aimage[bookcurrentPageIndex2+1]zoom
zoomYap=true else if(zoomerlabel==-)
zoomerlabel=+
setGorunum()
private function setGorunum()void zoomYap=false zoomerlabel=+ img1visible=false img2visible=false
88
6 SONUCcedil
Web 20 ak m ve zengin internet uygulamalar guumlnuumlmuumlz popuumller konular ndand r Bu
nedenle tez ccedilal mas
bu amaca youmlnelik olarak son teknolojiler kullan larak geli tirilmi tir
AJAX teknolojisi kullan larak kullan c n n istekleriyle sayfan n tamamen yenilenmeden
ilgili i lemin yuumlruumltuumllebilmesi sa lanmaktad r Geli tirilen sistem ccedilapraz taray c deste ine sahip
esnek ve kolay kullan labilir bir yap ya sahip oldu undan herhangi bir programlama bilgisine
sahip olmadan ki ilerin istenilen de i iklikleri yap labilece i bir alt yap ya sahiptir Bu ccedilal ma
nda en yenilikccedili internet yaz l mlar konusunda uygulama yapmak isteyen yaz l m
uzmanlar na kaynak te kil edecek bir ccedilal ma gerccedilekle tirilmi tir Yaz l m geli tiricileri ve
yaz l m mimarlar AJAX Flash Flex Appletler ve di er teknolojileri uygulamalar na kolayca
entegre edebilirler
Bu tez ccedilal mas kapsam nda Web de Ajax Tekni inin Bant Geni lik Optimizasyonuna
Etkisi ba l kl bir makale haz rlanm t r [85] Bu makalede Web Performance Suite 355941
program yla AJAX n performans testi yap lm t r Bu oumllccediluumlmler sonucunda elde edilen de erler
goumlstermi tir ki bir ebeke uumlzerinden goumlnderilecek sinyalin en duuml uumlk ve en yuumlksek frekanslar
aras nda gereksiz yere kullan lan aral n optime edilmesinde AJAX etkili bir youmlntemdir
AJAX n ccedilal ma prensibi sayesinde uygulamalar en iyi performansla gerccedilekle tirilir
AJAX teknolojisinin hala geli imi devam etmekte oldu undan baz eksik yanlar da
bulunmaktad r Oumlrne in taray c
uumlzerindeki Geri
fonksiyonu bazen beklendi i gibi
ccedilal mayabilir Dinamik olarak olu turulan sayfalar taray c n n oumlnceden i ledi i sayfalar
youmlneten mekanizmalar na kendini otomatik olarak kaydetmez bu yuumlzden taray c n n Geri
tu una bas ld nda istenen sayfa elde edilemeyebilir [86] Ba ka bir dezavantaj ise AJAX ile
olu turulan iccedileri in kodlar kaynak kodlar k sm nda goumlruumllememektedir Ayn zamanda Google
ve Yahoo gibi arama motorlar n n Web sayfalar na goumlnderdi i robot yaz l mlar da bu kodlar
goumlrememektedir Dolay s yla tamamen AJAX ile olu turulan iccedilerik arama motorlar n n sonuccedil
sayfalar nda listelenmezler Guumlnuumlmuumlzde yap lan Web sayfas n n arama motorlar nda
goumlruumlntuumllenmesi oldukccedila oumlnemlidir Fakat bir Web uygulamas ziyaretccedililer hakk nda oumlnemli
ki isel bilgilere sahipse bu bilgilerin arama motorlar nda herkes taraf ndan goumlruumlntuumllenmesini
sa lamas bir avantaja doumlnuuml uumlr [87] AJAX yerinde ve do ru bir ekilde kullan ld nda
uygulamalarda performans art n sa lar
Bu tez ccedilal mas nda Web 20 ak m n n ortaya ccedil k nedenleri ve RIA konseptine
duyulan ihtiyac n temeli irdelenmi tir Web 20 ak m nda oumlne ccedil kan uygulamalar ve ccedilal ma
sistematikleri incelenmi tir Oumlne ccedil kan bu uygulamalar n site tasar m nda dikkat ccedileken
89
oumlzelliklerine de inilmi tir AJAX teknolojisini olu turan bile enler incelenmi tir Bu inceleme
ve ara t rma sonucunda zengin internet uygulamalar na oumlrnek te kil edecek Web 20 ak m n n
ccedilekirde i olan AJAX teknolojisi kullan larak F rat Uumlniversitesi iccedilin ccedilevrimiccedili bir katalog
tasarlanm t r Bu tasar mda flexBook flexbookpage landscape wrapper zoomer gibi ek
bile enler kullan lm t r Navigasyon paneli tasarlanm t r Olu turulan tasar mda yerli ve
yabanc literatuumlr taramas yap larak emsallerindeki kullan l oumlzellikler projeye dahil edilmi tir
Projenin geli tirilmesi s ras nda izlenen ad mlar resimlenerek ortaya bir yol haritas ccedil kar lm t r
61 Oumlneriler
Bu tez ccedilal mas esas al narak ileride bu uygulamalar mobil cihazlar arac l yla
kullan labilirli i uumlzerine ara t rmalar suumlrduumlruumllebilir AJAX n uumlstuumln oumlzellikleri sayesinde Web
uumlzerinden yay nc l k ve mobil ileti im alanlar farkl bir boyut kazanm t r Birccedilok irket art k
ta nabilir cihazlar iccedilin Web 20 uygulamalar n AJAX la optimize etmeye ba lam t r Yeni bir
teknoloji olan AJAX la ta nabilir cihazlardaki performans bellek youmlnetimi s n rl tu giri i
gibi sorunlar n uumlstesinden gelinmesi hedeflenmelidir
AJAX kullan larak IDE (Integrated Development Environment) entegrasyonu Eclipse
iccedilin ba lant lar yaz labilir veya yap m servisi arac l yla do rudan IDE den yap m paketleri
geli tirilebilir Guumlnuumlmuumlzde oldukccedila popuumller olan accedil k kaynak kodlu yaz l m geli tirme
ortamlar nda entegre uygulamalar geli tirilebilir
Kullan c Arabirimi aretleme Beti i (User Interface Markup Language) s n f na dacirchil
edilecek gelece in en popuumller web tabanl teknolojilerinden biridir Flex geli tiricileri Adobe
Flex Builder - IDE ortam nda LiveCycle Data Services Java Coldfusion ASPNET JSP PHP
gibi popuumller web programlama dilleri yard m yla etkile imli ve guumlvenli web tabanl projeler
geli tirilebilir [82]
90
KAYNAKLAR
1 nternet Web 20 httptrwikipediaorgwikiWeb_20 Eri im tarihi 03092008
2 Oumlzer Z Web Teknolojileri ve AJAX Seminer Ccedilal mas Fen Bilimleri Enstituumlsuuml sf2
2007
3 nternet Web 20 Nedir wwworeillynetcompubaoreillytimnews20050930what-is-
web-20html Eri im tarihi 04102008
4 nternet httpravenyoungspaceslivecomblogcns17376F4C11A91E0E3717entry
Eri im tarihi 03092008
5 Mcluhan M Povers B R Ccedileviren Bahar Oumlcal Duumlzgoumlren Global Koumly 21 Yuumlzy lda
Yeryuumlzuuml Ya am nda ve Medyada Meydana Gelecek Doumlnuuml uumlmler Scala Yay nc l k 2001
6 nternet RIA konsepti httpwwwademaktepecomGunlukDetayaspxId=122 Eri im
Tarihi 26062008
7 Onat F A man Ouml K l ccedil A Sosyal A Sitelerinin Reklam Ve Halkla li kiler Ortamlar
Olarak De erlendirilmesi Sayfalar 3-6 2008
8 nternet httpi8tinypiccom6kymb0kgif Eri im tarihi 11072008
9 nternet DFA httpwwwdoubleclickcomproductsdfaindexaspx Eri im tarihi
14022009
10 nternet Adsensecom
httpswwwgooglecomadsensesupportbinanswerpyanswer=9712amptopic=13488 Eri im
tarihi 15112008
11 nternet DoubleClickcom wwwdoubleclickcom Eri im 13102008
12 nternet Adsense ho geldiniz wwwgooglecomadsense Eri im 18112008
13 nternet Flicker Tan m httptrwikipediaorgwikiFlickr Eri im tarihi 09032009
14 nternet Flicker Foto raf Payla m Sitesi httpwwwflickrcom Eri im 18022009
15 nternet BitTorent httptrwikipediaorgwikiBitTorrent Eri im tarihi 05012009
16 nternet Bittorent kulan m rehberi httpwwwbittorrentcombtusersguidesbeginners-
guide Eri im tarihi 05012009
17 nternet Bittorent kullan m k lavuzu httpwwwshukkocombittorrent_kilavuzu Eri im
tarihi 05012009
18 nternet Bittorent ccedilal ma mant httpwwwforumelbizbittorent-nedirgne-ise-
yarargresimli-detayli-super-anlatim-
t12836htmls=17f7b3147d97799d31c32b09e87d43e4ampamp Eri im tarihi 05012009
19 nternet Soumlzluumlk
91
httpwwwparliamentvicgovauSARCE-DemocracyFinal_ReportGlossaryhtm Eri im
tarihi 05012009
20 FU F LIU L WANG L Empirical Analysis of Online Social Networks in the Age of
Web 20 2007 Physica A Statistical Mechanics and its Applications Volume 387 Issues 2-3
Sayfalar 675-684
21 nternet Facebook httptrwikipediaorgwikiFacebook Eri im tarihi 06012009
22 nternet Facebook makale httpturkinternetcomhaberyazigosterphp3yaziid=22787
Eri im tarihi 06012009
23 nternet Facebook istatistiksel bilgiler
httpwwwinsidefacebookcom20090107facebook-growth-continuing-surpasses-150-
million-monthly-active-users Eri im tarihi 06012009
24 nternet Peter Thiel Facebook haberleri
httpwwwbusinessweekcomtechnologycontentmar2009tc2009031_743025htm Eri im
tarihi 06012009
25 nternet Blog httptrwikipediaorgwikiBlog Eri im tarihi 13022009
26 nternet Technorati httptechnoratimediacom Eri im tarihi 13022009
27 nternet Blog ara t rmas httpwwwmmistanbulcommakaletitlebloglarin-satin-alma-
kararlarina-etkisi-uzerine-bir-arastirma Eri im tarihi 13022009
28 nternet Wiki nedir httpyunushacettepeedutr~b0343579baglantilerwikinedirhtm
Eri im tarihi 13022009
29 nternet nternette wikinin yeri
httpogrencihacettepeedutr~besstindexphp20080603internette-wikinin-yeri Eri im
tarihi 14022009
30 Bergstedt S Wiegreffe S Wittmann J Moller D Content Management Systems and e-
Learning-Systems
A Symbiosis Proceedings of the The 3rd IEEE International Conference
on Advanced Learning Technologies (ICALT 03)
31 nternet ccedilerik Youmlnetim Sistemleri
httptrwikipediaorgwikiC4B0C3A7erik_yC3B6netim_sistemi Eri im tarihi
17022009
32 nternet ccedilerik Youmlnetim Sistemleri httpwwwmsxlabsorgforuminternet-bilgisayar-
dunyasi22262-icerik-yonetim-sistemi-cms-content-management-systemhtml Eri im tarihi
17022009
33 nternet Web 20 Tasar m Araccedillar httpwwweburhancomhazir-web-20-tasarim-
araclari Eri im tarihi 06022009
92
34 nternet Tasar m rehberi httpwwwhasanyalcincomweb-20-tasarim-rehberi-yansima-
ikon-ve-flaslarref=GuzelsTV Eri im tarihi 06022009
35 nternet AJAX kaynak makalesi
httpadaptivepathcompublicationsessaysarchives000385php Eri im tarihi 06022009
36 Keith J Bulletproof Ajax New Riders yay nc l k Sayfa 3 2007
37 Zakas N C McPeak J Fawcett J Professional Ajax 2nd Edition Wiley Publishing Inc
Sayfalar 5-18 2007
38 Gehtland J Galbraith B Almaer D Pragmatic Ajax A Web 20 Primer The Pragmatic
Programmers LLC sf1 2005
39 Babin L Beginning Ajax with PHP From Novice to Professional Apress Yay nc l k
Sayfa 6 2007
40 Crane D B beault B Sonneveld J Goddard T Gray C Venkataraman R Ve Walker J
Ajax in Practice Manning Publications Co Sayfalar 56 2007
41 Eichorn J Understanding AJAX Using JavaScript to Create Rich Internet Applications
August 11 2006 Sayfalar5-50
42 Ballard P SAMS Teach Yourself Ajax in 10 Minutes Sayfalar 6-78 28 Nisan 2006
43 nternet httpwwwipucuwebtraspders17php Eri im tarihi
44 Ullman C Dykes L Beginnig AJAX Wiley Publishing Inc Sayfa 44-100 2007
45 Zakas N C McPeak J Fawcett J Professional Ajax Wrox Press Chapter 2 Ajax
Basics Ajax Communication Techniques 2006
46 nternet Cross-Browser (Ccedilapraz Taray c Deste i) httpblogceyhunaksancomcross-
browser-capraz-tarayici-destegi Eri im 11032009
47 nternet
httpwwwyazgelistirnetviewtopicphpp=160ampsid=a49d3c26dd8e14e02e65bb222d6bcc39
Eri im 31032009
48 Jacobi J Fallows J R Pro JSF and Ajax Building Rich Internet Components Apress
Sayfa 175 2006
49 Schutta N T Asleson R Pro Ajax and Java Apress Sayfa 10 2006
50 Lauriat S M Ajax Architecture and Best Practices Pearson Education Inc Sayfa 25
2008
51 Powers S Adding Ajax OReilly yay nc l k June 01 2007
52 nternet Asenkron ve Senkron Meselesi httpAJAX-trcomasenkron-ve-senkron-meselesi
Eri im tarihi 02112008
53 Holzner S Ajax For Dummies Wiley Publishing Inc sf 40 2006
93
54 nternet httpwwwecma-internationalorgpublicationsfilesECMA-STEcma-262pdf
Eri im tarihi 06032009
55 Darie C Brinzarea B Chereche -To a F Bucica M AJAX and PHP Building
Responsive Web Applications Packt Publishing Sayfa42 2006
56 Olson S D Ajax on Java OReilly Yay nc l k Chapter 2 February 23 2007
57 nternet httpiibferciyesedutrggwebjavascriptpdf Eri im tarihi 06032009
58 nternet httpwwwmutasyonnetkitaplarasp hakk oumlcal javascript ders notu sf8 Eri im
tarihi 06032009
59 nternet httpwwwbilgisayarogrencomjava5doc Eri im tarihi 06032009
60 Asleson R Schutta N T Foundations of Ajax 2006 sf29
61 Wells C Securing Ajax Applications O Reilly Media Inc sf86 July 2006
62 nternet httpwwww3schoolscomdomdom_introasp Eri im tarihi 19032009
63 nternet httpwwww3orgTRREC-DOM-Level-1introductionhtml Eri im tarihi
19032009
64 nternet httpwwwberkerpeksagcomblogdom-document-object-model-belge-nesne-
modeli Eri im tarihi 19032009
65 nternet httpwwwrssnedircomxml_nedirphp Eri im tarihi 19032009
66 Jacobs S Beginning XML with DOM and Ajax From Novice to Professional Apress
Yay nc l k sf2631 2006
67 nternet
httpwwwcclubmetuedutrnenedirXML+(Extensible+Markup+Language)+Nedir3F
Eri im tarihi 20032009
68 nternet httpbelgelerorgelkitabixmldoc-howto_structhtml Eri im tarihi 20032009
69 nternet httpwwwverivizyoncomdetailaspcid=149 Eri im tarihi 20032009
70 nternet httpwwwbilgisayardershanesicomxml1htm Eri im tarihi 21032009
71 Johnson D White A Charland A ENTERPRISE AJAX Strategies for Building High
Performance Web Applications Prentice Hall Yay nc l k Sayfa 108 2008
72 nternet httpwwww3orgTRxhtml1dtds Eri im tarihi 01042009
73 nternet httpwwwcsharpnedircommakalegosteraspMId=51 52 Eri im tarihi
01042009
74 nternet httpofficemicrosoftcomtr-trinfopathHP010967301055aspx Eri im tarihi
01042009
75 nternet
httpwwwkodpaylascomviewtopicphpt=959ampsid=e5167bdea935943ed9bbdc91ee218c53
Eri im tarihi 01042009
94
76 nternet httpwwww3schoolscomXhtml Eri im tarihi 02042009
77 nternet httpwwwzvonorgxxlXMLTutorialOutput_turexample6html Eri im tarihi
02042009
78 nternet httpwwwbidbituedutrd=837 Eri im tarihi 03042009
79 nternet httpwwwcssnedircom Eri im tarihi 03042009
80 nternet httptrwikipediaorgwikiXSLT Eri im tarihi 03042009
81 nternet httpwwwbilisim-kulubucomsozluksozlukphpe=XSLT Eri im tarihi
08042009
82 nternet httpwwwsanalkursnetadobe-flex-nedir--1081html Eri im tarihi 10042009
83 nternet httpwwwadobecomtrproductsflex Eri im tarihi 11042009
84 nternet httpwwwtrflexcomp=4 Eri im tarihi 11042009
85 Oumlzer Z Varol A Web de Ajax Tekni inin Bant Geni lik Optimizasyonuna Etkisi
Bilimde Modern Youmlntemler Sempozyumu 2008
86 nternet httptrwikipediaorgwikiAJAX(programlama) Eri im tarihi 01062009
87 nternet httpajax-trcomajaxi-anlamak Eri im tarihi 01062009
95
OumlZGECcedilM
Zeynep OumlZER AYDO MU
zeynep_ozermsncom
F rat Uumlniversitesi Teknik E itim Fakuumlltesi
Elektronik Bilgisayar E itimi Boumlluumlmuuml
ELAZI
1983 y l nda Elaz da do du lk orta ve lise ouml renimini Elaz da tamamlad ktan
sonra 2002 y l nda F rat Uumlniversitesi Teknik E itim Fakuumlltesi Elektronik Bilgisayar E itimi
Bilgisayar Ouml retmenli i Boumlluumlmuuml nuuml kazand 2006 y l nda bu boumlluumlmden mezun oldu 2006
y l nda F rat Uumlniversitesi Fen Bilimleri Enstituumlsuuml Elektronik Bilgisayar E itimi Ana Bilim Dal
Bilgisayar Sistemleri Bilim Dal nda yuumlksek lisans e itimine ba lad 2007 y l ubat ay nda
Elaz n Karakoccedilan ilccedilesinin Yenice koumlyuumlnde h J Kd Uumlt m Mahir Oumlzdemir lkouml retim
Okulu nda Bilgisayar Ouml retmeni olarak goumlreve ba lad uan Elaz Korgeneral Hulusi Say n
Lisesi nde Bilgisayar Ouml retmeni olarak goumlrevini suumlrduumlrmektedir Yabanc dili ngilizce dir
Fatih AYDO MU ile evlidir
96
EK
Katalog ccedilal mas n n uygulama dosyas olan catamxml kullanmxml ve
imagepagemxml dosyalar n n kaynak kodlar a a daki gibidir
Catamxml
ltxml version=10 encoding=utf-8gt
ltmxApplication xmlnsmx=httpwwwadobecom2006mxml
layout=absolute
xmlnscontrols=qscontrols
backgroundColor=FFFFFF
creationComplete=init() color=FFFFFF xmlnslocal= xmlnscomp=comp
horizontalScrollPolicy=off verticalScrollPolicy=off borderColor=050505 borderStyle=solid
borderThickness=2gt
ltmxStyle source=stylecss gt
ltmxScriptgt
lt[CDATA[
import mxutilsStringUtil
import mxrpcsoapLoadEvent
import mxcontrolsAlert
import mxrpceventsFaultEvent
import qscontrolsFlexBook
import qscontrolsflexBookClassesFlexBookPage
import qscontrolsflexBookClassesFlexBookEvent
import qscontrolsflexBookClassesWBookPageImpl
import qscachingContentCache
import mxrpceventsResultEvent
import mxrpchttpHTTPService
import mxcoreUIComponent
import mxmanagersPopUpManager
import compResimSec
import Kullan
import mxcoreScrollPolicy
import mxcollectionsArrayCollection
private var aXML
[Bindable]
private var resimlerArrayCollectioncomboresim
97
private var dataSetHTTPService
private var resimdiziArray=new Array()
private var zoomYapBoolean=false
private function init()void
maskex=0
maskey=0
maskewidth=applicationwidth2
maskeheight=applicationheight-40
addEventListener(MouseEventMOUSE_MOVEmaskele)
addEventListener(tamam sayfa_secildi)
dataSet = new HTTPService()
dataSeturl = (dataimagesxml)
dataSetresultFormat = e4x
dataSetsend()
dataSetaddEventListener(FaultEventFAULT onFault)
dataSetaddEventListener(ResultEventRESULT onResult)
var wNumber=new Number
var hNumber=new Number
w=Applicationapplicationwidth
h=Applicationapplicationheight
bookwidth=w
bookheight=h-40
yuklemevisible=false
yuklemesource=assetsloadinggif
yuklemeaddEventListener(EventCOMPLETEyukleme_yuklendi)
private function yukleme_yuklendi(eventEvent)void
yuklemex=(applicationwidth2)-100
yuklemey=(applicationheight-40)2
private function maskele(eMouseEvent)void
if(zoomYap)
98
if((mouseXgt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) )
maskex=0
img2visible=false
img1visible=true
img1x=(applicationwidth2)-mouseX
img1y=-1mouseY
else if((mouseXlt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) )
maskex=applicationwidth2
img1visible=false
img2visible=true
img2x=-1mouseX
img2y=-1mouseY
maskex=mouseX
maskey=mouseY
private function onFault(eEvent)void
trace(e)
private function onResult(eResultEvent)void
a=new XML(eresult)
bookcontent = dataSetlastResultimage
bookaddEventListener(FlexBookEventTURN_STARTloadContent)
bookaddEventListener(FlexBookEventTURN_ENDloadContent)
private function sayfa_secildi(eventResimSec)void
99
sayfatext=eventyeniResim
git()
mxcontrolsAlertshow(sseventyeniResim)
private function loadContent(eventFlexBookEvent)void
setGorunum()
var pageImagePage = ImagePage(eventrenderer)
pageload()
sayfatext=(bookcurrentPageIndex2)toString()
resimdizi[bookcurrentPageIndex]=pagethumbsource
mxcontrolsAlertshow(bookcurrentPageIndextoString())
private function buyuk1_yuklendi(eventEvent)void
yuklemevisible=false
img1width=applicationwidth
img1height=(applicationheight-40)2
img1x=0
img1y=0
private function buyuk2_yuklendi(eventEvent)void
yuklemevisible=false
img2width=applicationwidth
img2height=(applicationheight-40)2
img2x=0
img2y=0
private function tumsayfalar()void
Kullanshow_window(thisfalseapplicationwidth-10(applicationheight-60)2)
customMoveend()
customMoveplay()
private function zoom()void
if(zoomerlabel==+)
zoomerlabel=-
if(img2source=aimage[bookcurrentPageIndex2]zoom)
yuklemevisible=true
img2addEventListener(EventCOMPLETEbuyuk2_yuklendi)
100
img2source=aimage[bookcurrentPageIndex2]zoom
if(aimagelength()gtbookcurrentPageIndex2+1)
img1addEventListener(EventCOMPLETEbuyuk1_yuklendi)
img1source=aimage[bookcurrentPageIndex2+1]zoom
zoomYap=true
else if(zoomerlabel==-)
zoomerlabel=+
setGorunum()
private function setGorunum()void
zoomYap=false
zoomerlabel=+
img1visible=false
img2visible=false
private function next()void
mxcontrolsAlertshow(bookcurrentPageIndextoString() bookpageCounttoString())
if(bookcurrentPageIndex+1 lt bookpageCount)
mxcontrolsAlertshow(--resimdizi[bookcurrentPageIndex])
setGorunum()
bookturnToPage(bookcurrentPageIndex + 1)
private function previous()void
if(bookcurrentPageIndex gt 0)
setGorunum()
bookturnToPage(bookcurrentPageIndex -1)
private function git()void
var s_nouint = new uint
s_no=Mathfloor(uint(sayfatext)2)
101
if(s_nogt0 ampamp s_noltbookpageCount)
bookturnToPage(s_no)
setGorunum()
]]gt
ltmxScriptgt
lt-- 614x453 --gt
ltmxParallel id=customMove target=Kullangt
ltmxMove duration=2000 xTo=(100) 2 yTo=(200) 2 gt
ltmxWipeRight duration=2000 gt
ltmxParallelgt
ltmxVBoxgt
ltmxHBoxgt
ltcontrolsFlexBook id=book width=100 height=100 x=0 y=0 horizontalCenter=0
verticalCenter=0
animateCurrentPageIndex=true
showCornerTease=false
edgeAndCornerSize=150
itemRenderer=ImagePage
animatePagesOnTurn=true
itemSize=halfPage cornerRadius=0 themeColor=1D99E8
backgroundAlpha=10 alpha=10gt
ltcontrolsFlexBookgt
ltmxHBoxgt
ltmxHBox height=30 width=100 verticalAlign=middle
horizontalAlign=center color=B65F5F backgroundColor=121313gt
ltmxSpacer width=10gt
ltmxSpacergt
ltmxTextInput borderColor=FFFFFF width=34 height=24 id=sayfa
color=FFFFFF fontSize=11 text=0 alpha=001gt
ltmxButton click=git() color=ffffff fontWeight=bold fontSize=11
width=114 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label=Sayfaya Git themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxSpacer width=60gt
102
ltmxSpacergt
ltmxButton click=previous() color=ffffff fontWeight=bold fontSize=11
width=70 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label=Geri themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxButton click=next() color=ffffff fontWeight=bold fontSize=11
width=70 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label= leri themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxButton click=tumsayfalar() color=ffffff fontWeight=bold fontSize=11
width=134 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label=Tuumlm Sayfalar themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxButton id=zoomer click=zoom() color=ffffff fontWeight=bold
fontSize=14 width=44 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00
00] label=+ themeColor=EDF2F5 textRollOverColor=EDD617 fontFamily=Arialgt
ltmxSpacer width=5gt
ltmxHBoxgt
ltmxSpacer height=10gt
ltmxVBoxgt
ltmxCanvas id=maske x=224 y=168 width=200 height=168
verticalScrollPolicy=off horizontalScrollPolicy=off borderThickness=0 borderColor=000000
borderStyle=solidgt
ltmxImage id=img1 x=0 y=0gt
ltmxImage id=img2 x=40 y=0gt
ltmxCanvasgt
ltmxImage x=10 y=144 id=yuklemegt
ltmxApplicationgt
103
Kullanmxml
ltxml version=10 encoding=utf-8gt
ltmxTitleWindow xmlns= xmlnsmx=httpwwwadobecom2006mxml
creationComplete=on_creation_complete()
styleName=popupWindow showCloseButton=true
paddingBottom=0 paddingTop=0 paddingLeft=0 paddingRight=0
height=200 width=100 alpha=09 borderAlpha=1gt
ltmxScriptgt
lt[CDATA[
import mxcontrolsAlert
import mxcollectionsArrayCollection
import mxrpceventsResultEvent
[Bindable]
private var sayfalarArrayCollection
[Bindable]
private var introString =
import mxeventsCloseEvent
import mxmanagersPopUpManager
import mxcoreApplication
import mxeventsDragEvent
import mxmanagersDragManager
import mxcoreDragSource
import compResimSec
import koraxcontrolsColorPickerResimSecEvent
private var m_parentDisplayObject = null
private function myResult(eventResultEvent)void
sayfalar = eventresultsayfalarsayfa
private function sayfaac(eventEvent)void
wndwith_last_preved()
mxcontrolsAlertshow(myTileselectedItemgittoString())
uyeler = eventresultsayfalarsayfa
104
private function on_creation_complete()void
myHTTPsend()
private static var wndKullan = null
public static function show_window(parentDisplayObject
modalBooleanwNumberhNumber)void
if (wnd == null)
wnd = new Kullan()
wndaddEventListener(mxeventsCloseEventCLOSE on_close_event)
wndm_parent = parent
if (wndisPopUp)
PopUpManageraddPopUp(wnd DisplayObject(Applicationapplication) modal)
PopUpManagercenterPopUp(wnd)
else
PopUpManagerbringToFront(wnd)
wndstart_init()
wndx=0
wndy=0
wndwidth=w
wndheight=h
wndmyTilewidth=w-20
wndmyTileheight=h-40
private function with_last_preved()void
if (m_parent = null) m_parentdispatchEvent(new ResimSec(tamam
myTileselectedItemgit))
private static function on_close_event(eventCloseEvent)void
if (wnd == null) return
PopUpManagerremovePopUp(wnd)
wnd = null
105
private function yardim()void
Kullanshow_window(thisfalse)
]]gt
ltmxScriptgt
ltmxHTTPService id=myHTTP url=dataonizlexml
result=myResult(event) showBusyCursor=truegt
ltmxTileList id=myTile dataProvider=sayfalar change=sayfaac(event)
itemRenderer=compUyeSayfasi width=100 height=147 rowHeight=110 columnWidth=120
rowCount=2gt
ltmxTitleWindowgt
106
ImagePagemxml
ltxml version=10 encoding=utf-8gt
ltmxCanvas xmlnsmx=httpwwwadobecom2006mxml width=600 height=400
xmlnscontrols=qscontrols
backgroundColor=FFFFFF horizontalScrollPolicy=off verticalScrollPolicy=offgt
ltmxstatesgt
ltmxState name=loadingStategt
ltmxAddChild position=lastChildgt
ltmxImage id=loadingContent horizontalCenter=0 verticalCenter=-6
source=assetsloadinggif gt
ltmxAddChildgt
ltmxStategt
ltmxstatesgt
ltmxtransitionsgt
ltmxTransition fromState= toState=loadingStategt
ltmxFade alphaTo=1 target=loadingContent duration=1000gt
ltmxTransitiongt
ltmxTransition toState= fromState=loadingStategt
ltmxSequencegt
ltmxFade alphaTo=0 target=loadingContent duration=1000gt
ltmxRemoveChildAction target=loadingContent gt
ltmxSequencegt
ltmxTransitiongt
ltmxtransitionsgt
ltmxScriptgt
lt[CDATA[
import mxcontrolsAlert
private var _loadedBoolean = false
public function load()void
if(_loaded)
return
_loaded = true
fullsource = datasourcetoString()
mxcontrolsAlertshow (fullsource)
107
currentState = loadingState
]]gt
ltmxScriptgt
ltcontrolsSuperImage left=0 right=0 top=0 bottom=0 id=thumb
source=datathumbtoString() gt
ltcontrolsSuperImage left=0 right=0 top=0 bottom=0 id=full complete=currentState = gt
ltmxCanvasgt
This document was created with Win2PDF available at httpwwwwin2pdfcomThe unregistered version of Win2PDF is for evaluation or non-commercial use onlyThis page will not be added after purchasing Win2PDF
TC
FIRAT UumlN VERS TES
FEN B L MLER ENST TUumlSUuml
AJAX TEKNOLOJ S KULLANARAK CcedilEVR M Ccedil
KATALOG TASARIMI
Zeynep OumlZER AYDO MU
Tez Youmlneticisi Prof Dr Asaf VAROL
YUumlKSEK L SANS TEZ
ELEKTRON K VE B LG SAYAR E T M ANAB L M DALI
ELAZI 2009
TC
FIRAT UumlN VERS TES
FEN B L MLER ENST TUumlSUuml
AJAX TEKNOLOJ S KULLANARAK CcedilEVR M Ccedil
KATALOG TASARIMI
Zeynep OumlZER AYDO MU
YUumlKSEK L SANS TEZ
ELEKTRON K VE B LG SAYAR E T M ANAB L M DALI
Bu tez tarihinde a a da belirtilen juumlri taraf ndan oybirli ioyccediloklu u ile ba ar l ba ar s z olarak de erlendirilmi tir
Dan man Prof Dr Asaf VAROL
Uumlye
Uumlye
Bu tezin kabuluuml Fen Bilimleri Enstituumlsuuml Youmlnetim Kurulu nun tarih ve say l karar yla onaylanm t r
TE EKKUumlR
Bu tez ccedilal mas
suumlresince desteklerini esirgemeyen Dan man m Say n Prof Dr Asaf
VAROL a Prof Dr Z Hakan AKPOLAT a ccedilal mam n her a amas nda sevgi ve guumlvenlerini
her zaman hissetti im aileme e im Fatih AYDO MU a ve oumlzellikle karde im Ya mur
OumlZER e te ekkuumlrlerimi ve uumlkranlar m sunar m
Zeynep OumlZER AYDO MU
I
Ccedil NDEK LER
TE EKKUumlR
Ccedil NDEK LER I
EK LLER L STES
IV
TABLO L STES
VI
KISALTMALAR L STES
VII
OumlZET IX
ABSTRACT X
1 G R
1
11 Tez Ccedilal mas n n Amac
1
12 Tez Ccedilal mas n n Kapsam
1
2 WEB 20 AKIMI 2
21 Web 20 Platformunda Oumlne Ccedil kan Popuumller Uygulamalar 4
211 Double Click - Google AdSense 4
212 Flickr 5
213 BitTorrent 5
214 Sosyal A Siteleri 8
2141 Facebook 8
215 Web Guumlnluumlkler 11
216 Wiki 11
217 ccedilerik Youmlnetim Sistemleri 13
218 Etiketleme (Folksonomi) 14
22 Web 20 da Site Tasar m nda Dikkat Ccedileken Oumlzellikler 14
221 Logolar 14
222 Butonlar 15
223 Arka Planlar 15
224 Ccedilerccedileveler 16
225 Menuumller 16
3 AJAX 17
31 Google Suggest 18
32 Google Maps 18
33 Neden AJAX 19
34 AJAX Metodolojisi 23
341 HTTP Requests Nesnesi 24
II
342 HTTP Request Nesnesinin Oumlzellikleri ve Youmlntemleri 25
343 HTTP Response Nesnesi 26
35 AJAX leti im Teknikleri 27
351 XMLHttp Requests (XHR) Nesnesi 27
36 AJAX Olu turan Bile enler 34
361 E zamanl Olmayan leti im 34
362 E zamanl leti im 35
363 Javascript 36
37 Basit Bir AJAX Oumlrne i 49
38 XML 51
381 Oumlrnek XML Belgesi Olu turma 53
382 XML Dokuumlman n n Yap s
55
383 XML nin Soumlz Dizim Kurallar
67
384 XML Dokuumlmanlar n n leyi i ve Sunumu 69
39 AJAX Prensipleri 69
310 AJAX Kuumltuumlphaneleri ve Araccedillar
70
3101 Prototype 70
3102 AJAX Gear Toolkit 71
3103 AspNet Ajax 71
3104 Dojo Toolkit 71
3105 MochiKit 71
3106 PHPLiveX 71
3107 Sardalya (Sarmal Dinamik Altyap s ) 72
3108 Sajax 72
3109 Solvent 72
31010 AjaxAC 72
31011 Xajax 72
31012 Scriptaculous 73
311 AJAX Uygulamalar nda Kullan lan Di er Teknolojiler 73
3111 HTMLXHTML 73
3112 CSS 73
3113 XSLT 74
4 FLEX 75
41 Adobereg Flexreg 3 Kurulumu ccedilin Gereken Minimum Sistem Gereksinimleri 76
411 Windows ccedilin Flex Builder 3 (Standart ve Profesyonel) 76
III
412 Macintosh ccedilin Flex Bu lder 3 (Standart ve Profesyonel) 77
5 CcedilEVR M Ccedil KATALOG TASARIMI F rat Uumlniversitesi Oumlrne i 78
6 SONUCcedil 88
61 Oumlneriler 89
KAYNAKLAR 90
OumlZGECcedilM
95
EK 96
IV
EK LLER L STES
Sayfa
ekil 21 Web 20 kavram
2
ekil 22 Web 20 ak m nda oumlne ccedil kan uygulamalar 3
ekil 23 Doubleclick ve Google Adsense sitelerinin logolar 4
ekil 24 Flickr sitesinin logosu 5
ekil 25 ccedilerik da t m sitelerinde bittorrent site logosu 5
ekil 26 Torrent program n n anasayfas
6
ekil 27 Torrent program n n arayuumlzuuml 7
ekil 28 Facebook kullan c say s n n aylara goumlre da l m grafi i 9
ekil 29 Aylara goumlre facebook ve myspace site analizi 10
ekil 210 Vikipedi oumlzguumlr ansiklopedi sitesinin logosu 12
ekil 211 Oumlrnek etiket bulutu 14
ekil 212 Yans mal logo oumlrne i 15
ekil 213 Web 20 da buton oumlrnekleri 15
ekil 214 Web 20 da arka plan oumlrnekleri 15
ekil 215 Web 20 da ccedilerccedileve yap s na oumlrnek 16
ekil 216 Web 20 da menuuml oumlrne i 16
ekil 31 Jesse James Garrett in makale goumlruumlntuumlsuuml 17
ekil 32 Google Suggest ekran goumlruumlntuumlsuuml 18
ekil 33 Google Maps ekran goumlruumlntuumlsuuml 18
ekil 34 Geleneksel sunucularda istekcevap modeli 20
ekil 35 AJAX n asenkron istekcevap modeli 20
ekil 36 Klasik Web uygulamalar nda t kla-bekle doumlnguumlsuuml 21
ekil 37 T kla-T kla interaktif AJAX uygulamas
21
ekil 38 Geleneksel Web ileti im modeli ile AJAX ileti im modeli 21
ekil 39 Web uygulamas ndaki cevap ak
22
ekil 310 AJAX uygulamalar ndaki istek ak
22
ekil 311 Normal Web ile AJAX uygulamalar n n kar la t rmas
23
ekil 312 Geleneksel istekcevap (requestresponse) youmlntemi 23
ekil 313 Standart AJAX etkile imi 32
ekil 314 E zamanl olmayan ileti im modeli 35
ekil 315 E zamanl ileti im modeli 36
ekil 316 Javascript nesneleri 44
V
ekil 317 DOM a accedil yap s
46
ekil 318 AJAX oumlrne i 49
ekil 319 sonuchtml sayfas n n ekran ccedil kt s
51
ekil 320 denemexml dosyas n n a accedil yap s
53
ekil 321 XML belgesi 55
ekil 322 Oumlrnek bir XML dokuumlman yap s
56
ekil 323 denemexsd nin ekran goumlruumlntuumlsuuml 65
ekil 41 Flex uygulamalar n n i lem ak emas
75
ekil 42 Flex arayuumlzuuml 76
ekil 51 Kodlama algoritmas
79
ekil 52 Katalo un ilk sayfas n n ekran goumlruumlntuumlsuuml 81
ekil 53 Katalo un 23 sayfa goumlruumlntuumlsuuml 82
ekil 54 Katalo un sayfa ccedilevirme efektli goumlruumlntuumlsuuml 83
ekil 55 Katalo un navigasyon ccedilubu u 84
ekil 56 Tuumlm Sayfalar duuml mesi t kland ndaki ekran goumlruumlntuumlsuuml 85
ekil 57 Zoom oumlzelli i 86
VI
TABLO L STES
Tablo 21 Facebook ve myspace in buumlyuumlme tablosu 10
Tablo 31 Standart XHR nesnesinin oumlzellikleri 30
Tablo 32 Standart XHR nesnesinin fonksiyonlar
31
Tablo 33 De i ken tuumlrleri 41
Tablo 34 leccediller ve goumlrevleri 41
Tablo 35 kili i leccediller 42
Tablo 36 DTD karakterleri ve accedil klamalar
61
Tablo 37 DTD ccedilindeki niteliklerin de er ve accedil klamalar
62
Tablo 38 Varsay lan de erler ve accedil klamalar
62
Tablo 39 XML Belgelerinde kullan lan varl k bildirimleri 67
VII
KISALTMALAR L STES
AJAX Asenkron JavaScript ve XML
API Application Programming Interface (Uygulama Program Arayuumlzuuml)
ASP Active Server Pages (Aktif Sunucu Sayfalar )
CDNs Content Distributed Networks ( ccedilerik Da t c A lar)
CMS Content Management System ( ccedilerik Youmlnetim Sistemi)
CGI Common Gateway Interface (Genel Geccedili Arayuumlzuuml)
CSS Cascading Style Sheets (Basamakl Stil Sayfalar )
DFA DART for Advertisers
DOM Document Object Model (Doumlkuumlman Nesne Modeli)
DTD The Document Type Definition (Dokuumlman Tipi Tan mlama)
DWR Direct Web Remoting ( Direkt Web Eri imi)
ECMA European Computer Manufacturers Association (Avrupa Bilgisayar
Uumlreticileri Birli i)
GOumlBL GNU Oumlzguumlr Belgeleme Lisans
HTML Hyper Text Markup Language (Yard ml Metin aretleme Dili)
HTTP Hypertext Transfer Protocol (Yard ml Metin Aktar m Protokoluuml)
IDE Integrated Development Environment (Tuumlmle ik Geli tirme Ortam )
JSP Java Server Pages (Java sunucu Sayfalar)
LAN Local Area Network (Yerel Alan A )
MIYS E-ticaret ve Muuml teri li kileri Youmlnetim Sistemleri
MSN Microsoft Network
OOP Object Oriented Programming (Nesne Youmlnelimli Programlama)
PHP Hypertext Preprocessor (Yard ml Metin Oumlni leme)
PIs Processing Instructions ( lem Accedil klamalar )
RIA Rich Internet Applications (Zengin nternet Uygulamalar )
VIII
RPC Remote Procedure Call (Uzaktan Yordam Ccedila rma)
SAX Simple API for XML (XML iccedilin Basit API)
WIKI What I Know is (Ne Biliyorsam)
W3C World Wide Web Consortium (Duumlnya Ccedilap nda A Birli i)
XML eXtensible Markup Language (Geli tirilebilir aretleme Dili)
XHR XMLHttpRequest
XHTML Extensible HyperText Markup Language (Geli tirilebilir Yard ml Metin
aretleme Dili)
XSD eXtensible Schema Document(Geni letilebilir ema Dokuumlman )
XSL Extensible Stylesheet Language (Geli tirilebilir Biccedilimlendirme Dili)
XSLT Extensible Stylesheet Language Transformations (Geli tirilebilir
Biccedilimlendirme Dil Doumlnuuml uumlmleri)
IX
OumlZET
Yuumlksek Lisans Tezi
AJAX TEKNOLOJ S KULLANARAK CcedilEVR M Ccedil
KATALOG TASARIMI
Zeynep OumlZER AYDO MU
F rat Uumlniversitesi
Fen Bilimleri Enstituumlsuuml
Elektronik-Bilgisayar E itimi Anabilim Dal
2009 Sayfa 107
Gerccedilekle tirilmi olan bu uygulama kapsam nda Flex program ve Web 20 n
ccedilekirde ini olu turan AJAX (Asynchronous JavaScript and XML) teknolojisi kullan larak F rat
Uumlniversitesini tan tan kolayl kla guumlncellenebilen Zengin nternet Uygulamalar na (RIA- Rich
Internet Applications) oumlrnek bir ccedilevrimiccedili katalog tasar m ve gerccedilekle tirimi yap lm t r
Projenin gerccedilekle tirim a amalar nda kullan lan teknolojilerin ve izlenen youmlntemlerin
anlat mlar n iccedileren bir yol haritas olu turulmu tur
Anahtar soumlzcuumlkler AJAX RIA Web 20 ccedilevrimiccedili katalog e-dergi
X
ABSTRACT
Master Thes s
ONLINE CATALOG DESIGN USING AJAX TECHNOLOGY
Zeynep OumlZER AYDO MU
F rat University
Graduate School of Natural and Applied Sciences
Department of Electronic and Computer Education
2009 Page 107
Embracing in this comparison F rat University is introduced by using Flex program and
AJAX (Asynchronous JavaScript and XML) technology which forms Web 20 Also RIA (Rich
Internet Applications) is easily renowated which is instance for online catalog design A road
map including realization of the project and tracing methods are illustrated
Keywords AJAX RIA Web 20 online catalog e-journal
1
1 G R
Web in geli im suumlrecinde ccedile itli youmlntemler kullan l r Bu youmlntemlerin farkl amaccedillara
hizmet etmeye ba lamas yla Web te ak mlar meydana gelmi tir Bu ak mlardan ilki Web 10
ak m olarak adland r l r Bu ak mda kullan c lar bilgilendirmeye youmlnelik iccedilerik sunumu
yap lmaktad r [1]
Web 20 ak m ise internet sitelerinin bilgi bar na olmas ndan i leyen platformlara
ta nmas
olarak tan mlanabilir Web 20 RIA (Rich Internet Applications- Zengin nternet
Uygulamalar ) i lemleri internet sunucu mimarisi temeline dayanmaktad r RIA da beraberinde
kulland AJAX Flex gibi teknolojiler uumlzerine kuruludur [1]
Baz yeni teknolojilerle de i en World Wide Web duumlnyas Web 20 RIA AJAX
(Asynchronous JavaScript and XML- E zamanl olmayan JavaScript ve XML) terimleriyle izah
edilmektedir
11 Tez Ccedilal mas n n Amac
Bu tez ccedilal mas yla Web 20 n ccedilekirde ini olu turan AJAX (Asynchronous JavaScript
and XML) teknolojisi ve Flex program kullan larak F rat Uumlniversitesini tan tan kolayl kla
guumlncellenebilen Zengin nternet Uygulamalar na (RIA-Rich Internet Applications) oumlrnek bir
ccedilevrimiccedili (online) katalog tasar m yap lmas hedeflenmi tir Projenin gerccedilekle tirim
a amalar nda kullan lan teknolojilerin ve izlenen youmlntemlerin anlat mlar n iccedileren bir yol
haritas olu turulmas amaccedillanm t r Bu tez ccedilal mas sonucunda geli tirilen yaz l mla kolay
guumlncellenebilen katalog haz rlanmas na katk sa lanmas amaccedillanm t r
12 Tez Ccedilal mas n n Kapsam
Bu tez ccedilal mas 6 boumlluumlmden olu mu tur 1 Boumlluumlm giri i olu turmaktad r 2Boumlluumlmde
Web 20 ak m incelenecektir 3 Boumlluumlmde AJAX teknolojisi accedil klanacakt r 4 Boumlluumlmde
yaz l m gerccedilekle tirme arac olarak kullan lan Flex tan t lacakt r 5 Boumlluumlmde gerccedilekle tirilmi
ccedilevrimiccedili katalog hakk nda bilgi verilecektir 6 Boumlluumlmde ccedilal man n sonuccedillar
ve gelece e
youmlnelik oumlneriler bulunmaktad r
2
2 WEB 20 AKIMI
Ccedilo u teknolojilerde oldu u gibi yenilik aray ihtiyaccediltan do ar Yeni Web ak mlar n n
do u u da 2001 y l ndaki tuumlm duumlnyay etkileyen kriz sonras nda iflas eden irketlerin yeniden
aya a kalkma ccedilabalar n n bir sonucu olarak ortaya ccedil km t r [2 3] Web 20 ak m 2005 te ilk
kez OReilly ve MediaLive International aras nda gerccedilekle en bir beyin f rt nas s ras nda
uumlretilmi bir kavramd r [3] Web 20 kavram World Wide Web teknolojisinde kullan lan
de i en ve geli en e ilimlere verilen bir ad olarak da tan mlanabilmektedir
ekil 21 Web 20 kavram
[4]
Web 20 kavram ekil 21 de goumlsterildi i uumlzere Web bir uygulama platformu ve sosyal
etkile imli olma oumlzelliklerini bar nd r r Ccedilevrimiccedili hayat n ba lang c ve devam n temsil eder
Say sal ortamda kendini ifade etme imkacircn sunar Kullan c lar (oku-yaz oumlzelli i ile) Web te
kat l mc kimlik kazan r
Asl nda Web 20 ortam n 1964 y l nda McLuhan Global Koumly terimini kullanarak
ortaya atm t r McLuhan Global Koumlyuuml gelecekte ileri teknolojiye geccedililmesiyle ve toplumlar
aras nda s n rlar n kalkmas yla duumlnyan n her kouml esinde teknolojiyi kullanan herkesin co rafi
s n rlar ve s n rlamalar olmaks z n diledikleri ki iyle ileti im kurabilecekleri
haberle ebilecekleri ve payla mda bulunabilecekleri bir ortam olarak tan mlam t r [5]
Mc Luhan n n tan m ndan guumlnuumlmuumlze kadar geccedilen suumlreccedil iccedilinde kullan c ihtiyaccedillar
da
de i im ve geli im goumlstermi tir Bu ihtiyaccedillar kar lamak iccedilin genel olarak internet
uygulamalar n n daha zengin bir arayuumlz ile sunulmas n sa layan uygulamalar Zengin nternet
Uygulamalar ad alt nda k sa zaman oumlnce hayat m za girmi tir
RIA uygulamalar s radan HTML web uygulamalar ile standart masauumlstuuml uygulamalar
aras ndaki bo lu u dolduran bir geli tirme platformudur Web arayuumlzuumlnde basit HTML ile
3
s n rl kalmadan masauumlstuumlndeki zengin goumlrsel ouml eleri program niteli inde kullanabilecek her
tuumlrluuml araccedil RIA konseptini uygulamaktad r [6]
Kullan c lar art k iccedilerik uumlreticilerin s n rlar n kald rarak kullan c n n yan s ra kat l mc
olarak ta nitelendirilerek etkile imli bir rol uumlstlenmi lerdir nternetin bu yeni gereksinimlere
cevap vermesiyle ortaya ccedil kan Web 20 doumlnuuml uumlmuuml hem kullan c say s nda art a neden
olmu tur hem de kullan c lar n iccedilerikleri yani mesajlar olu turdu u ve payla t buumlyuumlk bir
guumlce doumlnuuml muuml tuumlr Bu guumlcuumln oumlnemini ccedilabuk anlayan kurulu lar mimarilerine AJAX da dacirchil
ederek oumlnce arama motorlar n Google Yahoo yu daha sonra MSN yi Hotmail i bloglar
(Myspace Bloggercom Blogcucom gibi) Youtube u Wikileri ve sosyal a sitelerini
(Facebook Twitter Orkut vb) ke fetmi lerdir Bu ke iflerin sonucunda McLuhan n Global
Koumly uumlnuumln 21 Yuumlzy lda tam olarak gerccedilekle ti i soumlylenebilir Bu interaktif siteler sayesinde
ayn anda milyarlarca ki inin rk dil din ya am tarz e itim ya cinsiyet statuuml goumlzetmeksizin
e zamanl payla mda bulunup kendi ccedilevreleri ve ba ka ccedilevrelerle ileti ime geccedilebilmektedirler
ekil22 de goumlsterilen irketler Web 20 ak m nda oumlne ccedil kan sitelerin oumlzellikle ccedilevrimiccedili
faaliyet goumlsteren reklacircm irketleri pazarlama ve ticari irketler perspektifinden bak ld nda da
oumlnemli bir potansiyele sahip kitle ileti im araccedillar olarak goumlruumlluumlr [7]
ekil 22 Web 20 ak m nda oumlne ccedil kan uygulamalar [8]
Kitle ileti im arac olarak kullan labilen bu uygulamalar iccedilin birccedilok geli tirme ortam
mevcuttur Adobe Flex AJAX Java Applet Adobe Flash ve Microsoft Silverlight uygulamalar
en ccedilok bilinen RIA uygulamalar d r A a da da bu uygulamalarla olu turulmu Web 20
platformunda oumlne ccedil kan popuumller uygulama oumlrnekleri incelenecektir [7]
4
21 Web 20 Platformunda Oumlne Ccedil kan Popuumller Uygulamalar
kinci nesil internet hizmeti olarak literatuumlre giren Web 20 ak m yla internet sitelerinin
ccedilehresi de i mi tir nternet siteleri art k masauumlstuuml uygulamalar ile internet uygulamalar
aras nda bir koumlpruuml goumlrevi uumlstlenmi tir A a da bu ak m n popuumller uygulamalar ndan oumlrnekler
bulunmaktad r
211 Double Click - Google AdSense
Google firmas na ait iki uygulama da reklacircm verenlerin ve yay nc lar n web uumlzerinden
reklacircm hizmeti sunmas n sa layan sitelerdir Her reklacircmc n n hedefi tuumlketicilerin isteklerine
uygun ccediloumlzuumlmler sunmakt r Bu ccediloumlzuumlm ise Web 20 la reklacircmlar n profilini de i tirmi tir Art k
istenmeyen kendili inden accedil lan reklacircm pencerelerinin yerini kullan c n n bilgisayar na
yerle tirilmi ccedilerezlerden ccedilekti i bilgilere dayanarak kullan c n n ilgisini ccedilekebilece ini tahmin
etti i rahats z edici olmayan metin ya da resim tabanl
reklacircmlar alm t r
DoubleClick in di er reklacircm firmalar ndan ayr lan youmlnuuml reklacircmc lar iccedilin DART
oumlnerisiyle k saca DFA (DART for Advertisers) ile reklacircm youmlnetimi ve servis ccediloumlzuumlmlerinde
kullan c lar na dijital pazarlama programlar n n tuumlmuumlnuuml kapsayan youmlnetimi kolay daha iyi bir
arayuumlze sahip h zl geni bir arama sistemine sahip de eri artan sitelerin trafik ak n
belirleyen bir ccediloumlzuumlm olmu tur DoubleClick daha ccedilok grafiksel reklacircmlar yay nlamaktad r
Oumlnceleri Web 10 uygulamalar aras nda say lan bu site Web 20 doumlnuuml uumlmuumlnuuml ba ar yla
gerccedilekle tirmi tir [9]
Google AdSense ise web sitesi yay nc lar n n site iccedileri iyle alakal dinamik ve goumlze
batmayan Google reklacircmlar n
web sitelerinde goumlstererek kullan c lar n bu reklacircmlara
t klamalar yla para kazanmalar n sa laman n h zl ve kolay bir yoludur Uumlcretsiz olan bu
program sayesinde her t klama ve goumlsterim iccedilin site sahiplerine oumldeme yap l r [10] Bu
uygulamalar sayesinde Web de daha ak ll bir sisteme do ru youmlnelim ba lam t r
ekil 23 Doubleclick ve Google Adsense sitelerinin logolar [11 12]
5
212 Flickr
Yahoo nun sundu u bir hizmet olan uumlcretsiz foto raf arama ve payla m sitesi Flickr
ayn zamanda web servisi ve ccedilevrimiccedili topluluk platformudur Web 20 n ilk uygulamalar ndan
biridir Foto raf payla m nda en popuumller sitelerin ba nda gelmektedir ccedileri inde yakla k
olarak 3 milyar
a an foto raf bulunmaktad r Yenilikccedili ccedilevrimiccedili topluluk araccedillar foto raflar
etiketlemeye ve s n fland rmaya yard mc olur Bu da popuumllaritesindeki ciddi art n
nedenlerinden biridir
Flickr a imaj yuumlkleyebilmek iccedilin Yahoo dan bir e-mail adresiyle sisteme giri
yap lmal d r Payla lmak istenen foto raflar uumlcretli uumlyelik olmadan her imaj iccedilin 5 Mb l k
s n rlamayla ayda toplam 100 Mb a kadar yuumlkleme yap labilir Sadece foto raf eklemenin
d nda imajlar uumlzerinde duumlzenlemeler yap labilir Belirlenen alanlara notlar eklenebilir
Be enilen foto raflara yorumlar eklenebilir Ccedile itli gruplara uumlye olunup ileti im kurulabilir
Ayr ca API leri sayesinde XML-RPC (Remote Procedure Call- Uzaktan Yordam Ccedila rma)
arabirimi kullanarak flickr sitesindeki foto raflarla ilgili bilgileri proseduumlrler sayesinde XML
format nda al p ayr t rarak ba ka bir programda kullan labilinir Flickr daki blog grup ve
etiketleme alt yap s bu API lere dayanmaktad r [13]
ekil 24 Flickr sitesinin logosu [14]
213 BitTorrent
BitTorrent internet uumlzerinden yuumlksek h zlarla iccedileri in da t ld duumlnya ccedilap nda bir
standartt r Ayr ca 150 milyondan fazla kullan c ya sahip en son p2p (peer to peer) dosya
payla m youmlntemlerinden biridir Di er p2p payla m programlar ndan fark sabit olmayan
ba ms z sunucu tan mlama dosyalar sayesinde sabit bir sunucuya ihtiyaccedil olmaks z n belirli bir
protokol ccedilerccedilevesinde indirme (download) yaparken yuumlkleme (upload) yap lmas na da izin
vererek payla ma devam edebilmesidir [15]
Python programlama diliyle yaz lm bir uygulamad r [15]
ekil 25 ccedilerik da t m sitelerinde bittorrent site logosu [16]
6
Bit Seli olarak da ccedilevirebilece imiz ccedilok h zl bir sistemdir BitTorrent sayesinde
oldukccedila buumlyuumlk boyutlu videolara ses ya da yaz l m dosyalar na daha h zl daha ucuz ve daha
kolay bir ekilde ula labilmeyi sa lar
Guumlnuumlmuumlzde ccedilerik Da t c A lar (Content Distributed Networks-CDNs) guumln geccediltikccedile
popuumllaritesini art rmaktad r Bittorent kullan m n n 2004 te internet te teknik standartlar ve
youmlnetim konusunda yetkili organ olan W3C (World Wide Web Consortium - Duumlnya Ccedilap nda
A Birli i) taraf ndan yap lan bir ccedilal maya goumlre P2P ba lant lar n toplamda 60 n tuumlm
internet trafi inin ise 30 unu a aca tahmin edilmektedir
BitTorrent le dosya transferi yap l rken oumlncelikle bilgisayarda BitTorrent stemci
(Client) yuumlkluuml olmal d r stemci yaz l mlara oumlrnek Flashget Azureus BitTorrent Torrent
ABC LimeWire vb yaz l mlar olabilir ekil 26 ve ekil 27 de en popuumller uygulamalardan
Torrent yaz l m n n kurulum ve arayuumlz oumlrne i goumlruumllmektedir
ekil 26 Torrent program n n anasayfas
7
ekil 27 Torrent program n n arayuumlzuuml
BitTorrent istemciler BitTorrent Protokol uygulamalar n yapar Her istemci bu
protokoluuml kullanarak dosyalar n kullan c lar n BitTorent in kulland protokole sahip
duumlnyadaki tuumlm iccedileriklere h zl ve guumlvenilir bir ekilde eri mesine izin verir stenilen iccedileri in
indirilebilmesi iccedilin gerekli tan mlama bilgilerinin bar nd
torrent uzant l bir dosyaya
ihtiyaccedil vard r Bu torrent dosyalar n ccedile itli duyuru sitelerinden ya da Web den temin edildikten
sonra istemciler yukar da bahsedilen herhangi bir torrent yaz l m kullanarak bu dosyay accedilarlar
ndirme ba lad anda indirilmek istenen dosyay payla an kullan c lar n olu turdu u kuumlccediluumlk
a a (swarm) dacirchil olurlar Bu kuumlccediluumlk a daki her kullan c dosyan n indirdi i boumlluumlmuumlnuuml di er
kullan c larla payla mas gerekir Tuumlm bu i lemleri de takipccedili (tracker) isimli bir sunucu kontrol
eder Yakla k olarak 256 Kb buumlyuumlkluuml uumlndeki bu kuumlccediluumlk boyutlu dosyalara indeksleyici
(indexer) de denmektedir Kuumlccediluumlk bir a
kurulmas iccedilin tuumlm dosyaya sahip en az bir da t c n n
(seeder) olmas gerekir Da t c lar herhangi bir dosyay yuumlkleyen kaynaklard r O dosyan n
tamam n
kendi bilgisayar na indiren her kullan c art k bir da t c
olur Fakat da t c olmak
kullan c lar n insiyatifindedir ndirme i lemi bittikten sonra o dosya payla ma accedil k tutulmazsa
di er kullan c lar da t c dan bu dosyay ccedilekerek indirme i lemini h zland ramazlar Da t c
say s
ne kadar artarsa indirme i lemi o kadar h zl olur ndirme yapan kullan c lara da grup
uumlyeleri (peers) denilmektedir Torrent dosyas n indiren kullan c lar izleyicilere (tracker) dosya
hakk nda bilgi goumlnderirler di er kullan c lar (peers) ise izleyicilere ba lanarak kimde hangi
dosyan n hangi parccedilalar n n oldu unu ouml renirler zleyiciler uumlzerinden kesinlikle dosya transferi
8
gerccedilekle mez sadece kaynak payla l r Hangi kullan c ne kadar dosya ccedilekti ve ne kadar
yuumlkledi gibi istatistiksel bilgileri de bar nd rabilir [16 17]
Sadece indirme i lemi yap p kaynak olmay istemeyen ki ilere leecher (suumlluumlk) denir Bu
anlay a sahip ki iler gruplar iccedilinde ho kar lanmazlar Bir torrent dosyas payla m nda
kaynak (seed) say s s f r ise yani dosyan n tamam na sahip ki iler payla mdan ccedilekilmi lerse
eksik dosyaya sahip buumltuumln uumlyeler (peer) birbirleri aras nda veri al veri i yaparak eksik
parccedilalar indirebilecekleri bir kaynak olmad ndan belli bir yuumlzdesi tamamlanm dosyaya
sahip olarak kal rlar Bu durumda daha oumlnce dosyay indirmi ve dosyan n tamam na sahip olan
bir kullan c
eksik parccedilalar goumlndermek iccedilin dosyay yeniden payla ma accedilabilir (seed eder) Bu
olaya reseed etme denir [18]
214 Sosyal A Siteleri
Sosyal a lar bireyler aras ndaki ki isel veya profesyonel ili kilerin olu turuldu u
duumlzenlendi i a d r [19] Son y llardaki bilgi teknolojilerindeki geli meler sosyal a lar n gerccedilek
ya amdakinden daha farkl bir ekilde yeniden yap lanmas n
sa lam t r Herhangi bir
irketteki yerel a iccedilinde personelin e-posta al p-goumlndermesiyle olu an etkinlik ve e-posta
gruplar ilk ccedilevrimiccedili sosyal a oumlrneklerinden say labilir Daha sonra h zla hayat m za giren
bloglar wikiler ve sosyal a siteleri gibi sosyal i birli i sa layan teknolojilerin geli mesi
insanlar n ileti im kurduklar bilgi resim muumlzik video payla t klar ve birbirleriyle suumlrekli
haberle tikleri ccedilevrimiccedili sanal topluluklar n olu mas n sa lam t r [20] Bu topluluklar n h zla
yay lmas n n temelinde kullan c lar n bireysel aktivitesine ba l olarak duygu ve duuml uumlncelerini
bilgiyi guumlncel haberleri tavsiyelerini be enilerini payla ma fikri vard r A a da sosyal a
sitelerinden en popuumller olanlar iccedilinde yer alan Facebook incelenecektir [7]
2141 Facebook
En yayg n sosyal a sitesi Facebook Amerika Birle ik Devletleri nde 4 ubat 2004
tarihinde Harvard Uumlniversitesinde ouml renci Mark Zuckerberg taraf ndan kurulmu tur Facebook
oumlncelikle Harvard ouml rencileri iccedilin kurulmu tu Daha sonra h zla tuumlm duumlnyaya yay lm t r
Kullan c lar siteyi uumlcretsiz uumlye olarak kullanabilmektedir Site gelirini banner reklamlar ndan ve
sponsor gruplar ndan almaktad r Duumlnyan n en popuumller Web 20 blogu TechCruncha goumlre
Amerika Birle ik Devletleri ndeki uumlniversitelerdeki ouml rencilerin 85inin facebookda bir
hesab bulunmakta ve bunlar n 60 her guumln ba lanmaktad r 85 her hafta 93 her ay
ba lananlar aras ndad r [21] Facebook sitesinden ba ms z Web 20 ak m n yak ndan takip
9
eden bir blog sitesi olan insidefacebook 2009 Ocak ay n n ba nda yay nlad habere goumlre
facebook kullan c say s a a daki grafikte goumlruumllduuml uuml gibi yakla k 140 milyonu bulmu tur
Milyonlar a k n aktif uumlye say s yla guumlnde ortalama 150 bin aktif kullan c yla sanal duumlnyan n en
popular sitesi olmu tur [22]
ekil 28 Facebook kullan c say s n n aylara goumlre da l m grafi i [23]
Aktif kullan c lar n iccedileri e katk s a a daki istatistik sonuccedillar n do urmu tur [22]
13 milyon kullan c durumlar n en az ndan guumlnde bir kez guumlncellenmektedir
25 milyon kullan c her guumln Sayfa hayran (fan of Pages) olmaktad r
Siteye her ay 700 milyon foto raf yuumlkleniyor ki toplam foto raf rakam yakla k 10
milyar bulmaktad r
Her ay 4 milyon video yuumlklenmektedir
Her ay 15 milyon iccedilerik parccedilas (web linki yeni hikacircyeler blog yaz lar notlar
foto raflar vb) payla ma sunulmaktad r
Her ay 2 milyon etkinlik olu turulmaktad r
Sitede 19 milyon adet aktif grup varl n suumlrduumlrmektedir
Yukar da belirtilen bu rakamlar sosyal ileti im a lar n n ne kadar ciddi boyutlarda bir
kapasiteye sahip oldu unu goumlstermektedir
10
ekil 29 Aylara goumlre facebook ve myspace site analizi [22]
Facebook ve ona en yak n rakibi sosyal ileti im web sitesi olan MySpace compete de
kar la t r ld nda yukar daki grafik elde edilmektedir
Tablo 21 Facebook ve myspace in buumlyuumlme tablosu
Tarih 032008 032009 Kullan c
Ayl k Y ll k
facebookcom
91054535 234
1951
myspacecom
55594761 48
-114
Tablo 21 de Mart 2008 ile Mart 2009 aras ndaki ayl k aktif ziyaretccedili say s n
goumlstermektedir Compete verilerine goumlre Aral k 2008 de facebook myspace in kullan c say s n
yakalam t r Tablo 21 deki verilere goumlre bir oumlnceki y la goumlre Facebook taki kullan c say s nda
ayl k 234 luumlk bir art varken MySpace 48 lik bir buumlyuumlmeye sahiptir Yakla k olarak
ayl k MySpace Facebook u 5 kat geriden takip etmektedir Facebook taki bir oumlnceki y la
goumlre 1951 lik buumlyuumlmeye kar n myspace de 114 luumlk kuumlccediluumllme goumlruumllmektedir Elde edilen
veriler ileriki y llarda bu rakamlar aras ndaki uccedilurumun artaca n i aret etmektedir
Facebooktaki bu h zl buumlyuumlme ekonomi ve ticari sektoumlruumlnuumln de ilgisini ccedilekmektedir Oumlnemli bir
yat r m alan olarak giri imcileri cezbetmektedir
Facebook youmlneticilerinden Peter Thiel ise Facebookun iccedil de erinin 8 Milyar dolar
oldu unu ve proje gelirlerinin 2015 y l iccedilin 1 milyar dolar oldu unu soumlylemektedir [24]
Duumlnyaca tan nm Microsoft irketi 24 Ekim 2007 de Facebooku 16l k hissesini 240 milyon
dolara sat n alm t r Google ve di er irketler de gittikccedile de er kazanan Facebook hisselerine
youmlnelmektedir [24]
11
215 Web Guumlnluumlkler
ngilizcedeki Web
ve log kelimelerinin birle iminden olu an Blog kelimesi internet
uumlzerinden ki ilerin istedikleri konu hakk nda fikir beyan edebilecekleri kendilerini kolayca
ifade etmelerini sa layacak bir ortamd r
Bloglar genellikle en yeni yorum ve yaz lardan eski tarihli yorum ve yaz lara do ru
s ralanm web tabanl yay nlar
belirtir Bloglar n iccedileri i suumlrekli guumlncellendi i iccedilin sadece
bloglar iccedilin kurulmu oumlzel indeksleme mekanizmalar ve arama motorlar bulunmaktad r [25]
Duumlnya ccedilap nda indeksleme mekanizmalar n n en oumlnde geleni Technorati firmas
milyonlarca blog okuyucusu iccedilin her geccedilen guumln 15 milyondan fazla yeni blogu
indekslemektedir [26] Forrester in ara t rma irketlerinden internet ile ilgili ciddi bir ara t rma
kurumu olan JupiterResearch uumln 2008 A ustos unda bloglar uumlzerine gerccedilekle tirdi i
ara t rmada internet kullan c lar na 40 soruluk kapal uccedillu soru youmlneltilmi tir Bu ara t rma
sonucunda geccedilti imiz doumlrt y l iccedilerisinde bloglar n okunma oranlar nda 300 oran nda bir art
oldu u ortaya ccedil km t r Belki ilgimi ccedilekecek bir bloga ula abilirim duuml uumlncesi ile kullan c lar
okuduklar bloga eklenmi
olan di er linkleri de takip edebiliyorlar S k blog okuruyum
diyenlerin 38 i yeni bir blogu okudu u blogun linklerinden ke fetti ini belirtmi tir
Ara t rmaya kat lan blog okurlar n n 34 uuml Web te dola rken yeni bir blogla tan t n 11 i
blog arama motorlar n kulland n
belirtmi [27]
Bloglar n bu kadar yayg nla mas n n nedenlerinde biri de internet gezginler sanal
acirclemdeki tek duumlze yorumsuz hatta bazen oldukccedila bilimsel bir dille yaz lm yaz lardan
s k ld klar iccedilin bloglar tercih etmektedir Bloglarda ki iler gittikleri bir seminer hakk ndaki
yorumlar n kulland klar bir uumlruumln hakk ndaki fikirlerini k saca hayata dair kendi yorumlar n
katarak ba ka ki ilerle payla abilmektedirler
216 Wiki
Bilgiye ula mak iccedilin eskiden oldu u gibi kitap ya da ansiklopediler kullan lmamaktad r
Guumlnuumlmuumlzde kuumlreselle menin ve geli en teknolojinin etkisiyle tuumlm kaynaklara bilgisayar
uumlzerinden ula lmas elde edilen bilgilerin k sa suumlrede derlenebilmesine imkacircn vermi tir
Wiki ler kullan c lar n uumlzerinde istedi i gibi duumlzenlemeler yapmas na izin veren bilgi
sayfalar toplulu udur ngilizce What I Know is soumlzcuumlklerinin k saltmas
olan Wiki
Bildi im kadar yla anlam na gelir [28]
12
Wikilerin ccedilal ma prensibi u ekilde accedil klanabilir Bir web program script ya da script
grubu sayesinde veritaban na yaz lm olan ya da sadece dosya halindeki verileri okur bu
verileri HTML kodlar ile de i tirir ve Web taray c s na yans t r
ekil 210 Vikipedi oumlzguumlr ansiklopedi sitesinin logosu
Wiki dilini kullanan ve internetin en geni iccedileri ine sahip ccedilevrimiccedili ansiklopedisi
Vikipedi 22 Ocak 2007de Alt n Oumlruumlmcek 2006 En yi ccedilerik oumlduumlluumlnuumln sahibi oldu
Wikipediaorg taraf ndan geni kitlelere tan t lan Wiki dili pek ccedilok farkl programlama
platformunda Javascript ASP PHP C++ vb kullan labilmektedir
2161 Wiki Kullanman n Avantajlar
Web proje gruplar
projeleri olu tururken ekiplere ayr ld iccedilin programc lar kendi
goumlrevi d ndaki ccedilal malarda neler yap ld n
tam olarak bilemez ccedileri in yap land r lmas nda
geli melerden sadece iccedilerik koordinatoumlrleri haberdard r An nda yap goumlster oumlzelli iyle Wikiler
bu sorun iccedilin pratik bir ccediloumlzuumlm te kil eder
ndekslenme yapan sitelerde bile arama yap l rken defalarca ayn siteye girilebilir yahut
aran lan bilgiyi bulmak ccedilok zaman alabilir Wiki gereksiz tekrarlardan kurtar r steyen herkes
wiki iccedileri indeki bilgileri eksik ya da hatal
ise de i tirilebilir veya kald rabilir Bu i lemleri
yapan wiki youmlneticilerine wikipedist denir Wikipedistler sayfa duumlzenlemelerine ve iccedilerik
zenginle tirmeye yard mc olurlar
Wiki de de i iklik yap ld nda de i iklik yapan ki inin bir hesab yoksa IP adresiyle
varsa kullan c ad yla kaydedilerek hemen sonuccedil goumlzlenebilir Yap lan iccedileriksel herhangi bir
hata ba kalar taraf ndan fark edildi inde duumlzeltilir Geccedilmi sekmesiyle duumlzeltilen sayfalar n
oumlnceki suumlruumlmleri kronolojik s ralamayla takip edilebilir hatta sayfalar aras nda kar la t rma
bile yap labilir Sayfa iccedilerikleri hakk nda Tart ma
sekmesiyle fikir beyan nda bulunulabilinir
Tart malara yorum eklenebilir Denetleme mekanizmas sayesinde telif haklar n n ihlali gibi
durumlarda ihlali yapan kullan c lar engellenebilmektedir
13
Wiki di er ansiklopedilerden farkl olarak Vikipedi GNU Oumlzguumlr Belgeleme Lisans
(GOumlBL) kullanmaktad r Kullan c lar na oumlzguumlr iccedilerik kat l m e it tarafs z ve uumlcretsiz kat l m
hakk verir Ayr ca diluumllkekonuya goumlre geli mi kategorilendirme sistemine sahiptir Diff
oumlzelli i sayesinde sayfalar aras ndaki fark izlenebilir [29]
217 ccedilerik Youmlnetim Sistemleri
ngilizce Content Management System ya da k saca CMS olarak tan nan ccedilerik
Youmlnetim Sistemleri - YS bilgiyi olu turmak ar ivlemek ara t rmak denetlemek ve
yay nlama olana sa layan buumlyuumlk bir veritaban na sahip moduumlllerden olu an buumltuumlnle ik bir
ortamd r YS lerde iccedilerik iki ayr boumlluumlmden olu ur Bunlardan birincisi uumlzerinde i lem
yap lmam olan ham bilgiyi bar nd ran veritaban
di eri ise bu bilginin yerle imini goumlsteren
ablondur ablonda bilginin goumlsterilece i sayfan n goumlrsel boumlluumlmuumlnuuml olu turan yaz tipleri
renkleri gibi tuumlm biccedilim bilgileri saklan r Genellikle PHP benzeri dillerle kodlan r Boumlylece daha
esnek hale gelebilirler [30]
ccedilerik Youmlnetim Sistemleri uluslararas platformda birccedilok organizasyon iccedilin zorunluluk
haline gelen modern bir veri youmlnetimi tekni idir Guumlnuumlmuumlzde iccedilerik youmlnetim sistemleri kendi
iccedilerisinde boumlluumlnmuuml bir yaz l m enduumlstrisi haline gelmi tir Kendi iccedilerisinde portal sistemleri
Wiki sistemleri web-based grupware vb alt dallara ayr lan enduumlstri guumlnuumlmuumlzde halen
geli imini suumlrduumlrmektedir [31]
Web yay nlama sistemi kullan c lar arad klar iccedileri e goumlre veritaban iccedilinde anahtar
kelimeler yazar olu turulma tarihi gibi ccedile itli oumllccediluumltlere goumlre arama yapabilirler Web iccedilerik
youmlnetim sistemleri bilgi portallar olu turmak iccedilin bilgi youmlnetimi hizmeti sunar YS buumlnyesinde
bar nd rd
yaz l m moduumllleri sayesinde herhangi bir kullan c n n web sitesi uumlzerindeki
i lemleri yapabilmesi iccedilin grafiksel kullan c arayuumlzuuml sunar
YSnin temeli iccedileri in olu turulmas ndan son hali olan yay nlanma evresine kadar tuumlm
evrelerde iccedileri i youmlnetme esas na dayan r Ayr ca YS nin iccedileri i E-ticaret ve Muuml teri li kileri
Youmlnetim Sistemleri (MIYS) (ing CRM - Customer Relationship Management System) ile de
payla labilir YS sayesinde iccedilerik yay n
teknik bilgisi olmayan kullan c lar taraf ndan bile
yap labilir Kullan c lar na sade basit ama guumlccedilluuml web taray c s destekli bir uygulama arayuumlzuuml
sunar [32]
14
218 Etiketleme (Folksonomi)
Web 20 sitelerinde goumlze ccedilarpan etiket bulutlar ile kullan c lara ilgilendikleri konulara
ili kin kolay ve h zl ba lant lar sa lanmaktad r Site iccedileri iyle ilgili konular ccedile itli etiketler ad
alt nda s n fland r l r Her etiket iccedilinde bar nd rd makale yaz ba l k ile farkl boyutlarda
olabilmektedir Yani etiketin yaz boyutu ne kadar buumlyuumlkse iccedilinde bar nd rd iccedilerik o kadar
fazlad r ekil 211 de bir etiket bulutu goumlruumllmektedir
ekil 211 Oumlrnek etiket bulutu
22 Web 20 da Site Tasar m nda Dikkat Ccedileken Oumlzellikler
Yukar daki popuumller uygulamalar olu turulurken dikkat ccedileken ortak oumlzellikler bu ba l k
alt nda incelenecektir Genel olarak Web sitelerindeki de i im ve geli im tasar m ve arayuumlz
accedil s ndan de erlendirilecektir
221 Logolar
Logolara daha parlak bir goumlruumlntuuml verilirken yans ma efekti bolca kullan lmaktad r
Yans ma efekti dinamik olmayan tuumlm objelere kullan larak siteye derinlik hareket ve modern
bir goumlruumlnuuml kazand r l r Kullan c lar n dikkatini ccedilekmek iccedilin ekil 212 de goumlruumllduuml uuml gibi
logolara rozet eklinde yenilik bildiren kelimeler eklenebilmektedir [33] Bu yenilik bildiren
kelimelerden Beta ifadesiyle s k s k kar la l r Bunun nedeni Web 20 ak m na goumlre
kullan c lar birer yard mc -geli tiriciler olarak benimsenir Sonuccedil olarak ortaya ccedil kan site suumlrekli
geli mekte ve de i mektedir Logolara yerle en Beta bu geli imin bir simgesi haline gelmi tir
[34]
15
ekil 212 Yans mal logo oumlrne i [34]
222 Butonlar
Butonlarda ise klasik butonlar yerine resim olarak haz rlanan butonlarda oumlzellikle cam
efekti ve renk geccedili (gradient) efekti hacirckimdir Gradient efekti butonlarda logolarda ya da arka
planlardaki renk geccedili lerini daha yumu at r Bir renkten farkl bir renge keskin geccedili lerin oumlnuumlne
geccedililmi olur [33] Ccedile itli buton oumlrnekleri ekil 213 de goumlruumllmektedir
ekil 213 Web 20 da buton oumlrnekleri
223 Arka Planlar
Web 20 ile sitelerde arka planlar olu turulurken yatay eritlerden ya da duumlz renk
geccedili lerinden faydalan labilinir Her iki ekilde de hedeflenen ortak amaccedil ekil 214 te oldu u
gibi goumlzuuml yormayan tasar mlar gerccedilekle tirmektir [33]
ekil 214 Web 20 da arka plan oumlrnekleri
16
224 Ccedilerccedileveler
Site iccedilinde goumlruumlnmez iframe ler yerine ekil 215 deki gibi ccedilerccedilevelerin yuvarlak kouml eli
kutular olarak tasarlanmas
oumln plana ccedil km t r Kouml eleri keskin duumlz kare veya dikdoumlrtgen
biccedilimde kutular art k kullan lmamaktad r Yuvarlak kouml eli kutu yap m iccedilin farkl tekniklerle
olu turulabilecek programlar mevcuttur Resim css ve html teknikleri kullan lacaksa Spiffy
Corners RoundedCornr ve CSS Rounded Box Generator gibi araccedillar kullan labilirken Nifty
Corners Cube ve curvyCorners gibi araccedillar da JavaScript tekni i ile kullan labilinir [33]
ekil 215 Web 20 da ccedilerccedileve yap s na oumlrnek
225 Menuumller
Site iccedileri inden etkin bir ekilde faydalanabilmek iccedilin menuuml ve sekmeler sade kolay
anla labilir olmal d r Hem goumlrsel hem kullan l menuumller CSS kodlarla olu turulabilir [33]
ekil 216 Web 20 da menuuml oumlrne i
Yukar da bahsedilen konu Web 20 platformunda olu turulan sitelerin genel oumlzellikleri
olarak alg lanabilir Bu oumlzellikler d nda da tasar mlar olabilmektedir
17
3 AJAX
AJAX kavram n n ilk ccedil k noktas
ubat 2005 de Jesse James Garrett taraf ndan the
Adaptive Path Web sitesinde Ajax A New Approach to Web Applications ba l yla
yay nlanan makaledir [35]
ekil 31 Jesse James Garrett in makale goumlruumlntuumlsuuml [36]
Bu makalede Web uygulamalar olu turulurken tasar mlardaki buumlyuumlleyici geli meler
yenilikccedili ccedilevrimiccedili projelerle desteklenirken bunun yan nda h zl cevap verebilir daha zengin
goumlrsellere sahip masauumlstuuml uygulamalar aras ndaki bo lu a dikkat ccedilekilmi tir Bu bo lu u
dolduran Google Suggest ve Google Maps uygulamalar Adaptive Path sitesinde AJAX olarak
adland r lan Web uygulamalar na yeni yakla m n en iyi oumlrnekleri oldu u belirtilmi tir Klasik
Web uygulamalar n n ccedilal ma modeliyle AJAX l uygulamalar n ccedilal ma modeli
kar la t r lm t r AJAX di er uygulama youmlntemlerinden ay ran oumlzellikleri belirtilmi tir
AJAX yakla m na buumlyuumlk yat r mlar yapan Google n neden AJAX tercih etti i accedil klanm t r
Google Groups Google Suggest Gmail Google Maps ve ard ndan Flickr Amazon nun
A9com servisleriyle kullan c lar n oda haline geldi ine de inilmi tir [35]
AJAX n ccedilekirde i olan XMLHttpRequest (XHR) nesnesi sayesinde de iyi haz rlanm
sa lam ve kolay anla labilir-kullan labilir sitelerin olu umuna dikkat ccedilekilmi tir [35] A a da
18
ise AJAX tekni i kullanan en populer servislerden Google Suggest ve Google Maps hakk nda
k sa bilgi verilecektir
31 Google Suggest
ekil 32 Google Suggest ekran goumlruumlntuumlsuuml
Google Suggest a httpwwwgooglecomigcomplete=1amphl=en
adresine girildi inde
ekil 32 de goumlruumlnen ana sayfaya ula lmaktad r Google Suggest servisinin oumlzelli i arama
motorunda aranacak kelimenin harfleri girilmeye ba land andan itibaren filtreleme yaparak
text alan n n alt na accedil lan boumllmede oumlneriler sunulmaktad r Sadece oumlneri sunmakla da kalmay p
oumlnerileri popuumllarite s ras na goumlre s ralar Kelime tamamlama oumlzelli i sayesinde aranan kelime
tam yaz lmadan gelen oumlnerilerden biri t klanarak istenen sonuca ula labilinir Ayr ca oumlnerilerin
yan nda o kelimeye ait kaccedil sonuccedil oldu u da belirtilir ve bu i lem sadece 1-2 sn iccedilinde
gerccedilekle ir
32 Google Maps
ekil 33 Google Maps ekran goumlruumlntuumlsuuml
19
Google Maps sitesine httpmapsgooglecom
adresinden ula labilinir Google n
etkile imli harita servisi ile arama motorunda goumlruumlntuumllenmek istenen konum yaz larak
Haritalarda Ara butonu ile o konuma odaklan l r Bir yerden bir yere gitmek iccedilin Yol
Tariflerini Al butonu kullan l r Konumun iste e goumlre uydu arazi ve sokak haritas
goumlruumlnuumlmlerine ula labilinir Daha fazla seccedilene i ile resim video ve wikipedia katmanlar da
goumlruumlntuumlye eklenir Hatta yurtd ndaki ba lant larda yoldaki trafik ak n n h z hakk nda bile
bilgi katman mevcuttur
Di er harita web uygulamalar ndan farkl olarak Google Maps te harita uumlzerinde ccedile itli
youmlnlere ula mak iccedilin suumlrekle b rak youmlntemi kullan l r Harita bir imaj serisi halinde ayr larak
boumlluumlnuumlr Biti ik imajlar n birlikte goumlruumlntuumlsuumlnuumln olu turulabilmesi iccedilin bu serilerden faydalan l r
Goumlruumlntuumllenen haritada kullan lan imaj say s s n rl d r Bu da her seferinde yeni imajlar n
olu turulmas gerekti ini goumlsterir Kullan c n n harita uumlzerindeki h zl hareketleri haf za
problemlerine yol accedilabilir Bunun yerine ayn imajlar haritan n farkl segmentlerinde tekrar
tekrar goumlruumlntuumllenir [37]
stemci-sunucu ileti imi gizli bir IFRAME uumlzerinden yap l r Bir arama yap ld nda
veya yeni bir yol soruldu unda bu bilgiler goumlnderilir ve IFRAME iccedilinde doumlnduumlruumlluumlr Veri XML
format nda ccedilevrilir ve bir Javascript fonksiyonunda (AJAX Motorunda) kullan lmak iccedilin
aktar l r Bu XML verisi sonra farkl ccedile itli ekillerde kullan l r Bazen hatas z harita imajlar n n
ccedila r lmas nda bazen de XML dokuumlmanlar n n XSLT (Extensible Stylesheet Language
Transformations Geni letilebilir Biccedilimlendirme Dili Doumlnuuml uumlmleri) sayesinde HTML kodlar na
doumlnuuml tuumlruumllerek ana pencerede goumlruumlntuumllenmesinde kullan l r [37]
Bunlar n d ndaki daha birccedilok accedil k kaynak projeler ve ticari uumlruumlnler bu yeni Web
uygulama modelinin avantajlar ndan faydalanarak geli tirilmeye ba lanm t r [37]
33 Neden AJAX
AJAX terimi oldukccedila guumlccedilluuml bir kelimedir Guumlcuumlnuuml daha zengin geni enduumlstri trendlerinin
olu umunda kullan labilmesinden ve oumlzguumlr Web uygulamalar n n kurulumunda odak noktas
olmas ndan al r Ayr ca programc lar yabanc olduklar yeni programlama dilleri ouml renmelerine
gerek kalmadan geli tirdikleri Web uygulamalar na istedikleri etkiyi katabilmektedirler Bunu
yaparken de sunucu tarafl teknolojileri kullan rken var olan yat r mlar n n d nda ba ka
masraflar olmaz AJAX guumlccedilluuml bir teknik olmas n n yan s ra di er teknolojilerle birlikte
kullan ld nda daha etkili sonuccedillar al nabilmektedir [38] AJAX Java 2 Enterprise Edition
(JAVA EE) Net PHP Flex CGI scriptler ve di er birccedilok uygulama geli tirme ortam nda
ccedilal abilir
20
AJAX uygulamalar n n gittikccedile yayg nla mas n n bir nedeni de geleneksel uygulamalara
goumlre istekcevap modelleri aras ndaki farkt r ekil 34 te goumlsterildi i uumlzere geleneksel Web
uygulamalar nda sunucuya yap lan her istekte olu turulan cevap Web sayfas n n tuumlmuumlnuuml
etkileyerek yeniden yuumlklenmesine neden olmaktad r
ekil 34 Geleneksel sunucularda istekcevap modeli [39]
AJAX n asenkron metodolojisiyle klasik Web mimarilerindeki gibi sunucuya gidip
parametreleri i lemek yerine ekil 35 te goumlruumllduuml uuml uumlzere birccedilok sunucu iste i tuumlm sayfan n
yenilenmesine ihtiyaccedil duymadan cevaplanabilmektedir
ekil 35 AJAX n asenkron istekcevap modeli [39]
Yukar da anlat lan durum kullan c lar ekil 36 da goumlruumllen t kla-bekle doumlnguumlsuumlnden
kurtar r AJAX kullan c lara ekil 37 deki gibi kesintisiz gezinti (soumlrf) imkacircn sunar
21
ekil 36 Klasik Web uygulamalar nda t kla-bekle doumlnguumlsuuml [40]
ekil 37 T kla-T kla interaktif AJAX uygulamas
[40]
stek i lem basamaklar ekil 38 te goumlsterildi i gibi AJAX motoru sayesinde JavaScript
kod betikleri kullan larak sunucuya HTTP tabanl ba lant sa lan r Bu ba lant
XMLHttpRequest protokoluumlnuuml kullanarak mesaj transferi yap lmas n sa lar Bu sayede hem h z
artar hem de bant geni li i verimli bir ekilde kullan lm olur
ekil 38 Geleneksel Web ileti im modeli ile AJAX ileti im modeli [37]
AJAX sunucuya kullan c n n Web taray c s uumlzerinden Javascript ortam nda ikinci bir
ileti im yoludur AJAX n kullan m normal Web uygulamalar nda goumlruumllen tipik sayfa ak nda
de i ikliklere neden olur AJAX ile istekler daha s k ve daha kuumlccediluumlk cevaplar halinde HTML
olmayan veri formunda cevaplan r Daha iyi anlayabilmek iccedilin normal bir Web uygulamas n n
ileti im ak ekil 39 da goumlruumllmektedir [41]
22
ekil 39 Web uygulamas ndaki cevap ak
Bir AJAX Web uygulamas bir Web uygulamas n n normal ileti im ak n al r ve yeni
bir istek tipi ekler Bu durum sunucuya normal sayfa iste i gibi goumlruumlnuumlr ama Web taray c iccedilin
farkl formatta bir giri i vard r Kullan c taraf ndan do rudan tetiklenmeyen ve sayfan n
tamam n n yeniden yuumlklenmesini gerektirmeyen bir istektir Ccedilo u durumda bu AJAX istekleri
baz verilerin oumln yuumlklenmesi ya da bir formdaki baz alanlar n do rulama istekleri gibi kuumlccediluumlk
de i iklikler olabilir Bazen de JavaScript ile bir form goumlnderimi veya HTML sayfalar n n bir
parccedilas uumlzerindeki iccedileri i de i tirmek iccedilin kullan l r Oumlrnek bir AJAX ileti im ak ekil
310 da goumlruumllmektedir AJAX uygulamalar ndaki istek biti zamanlar ve bunun normal Web
uygulamalar yla kar la t rmas ekil 311 de goumlruumllebilir Boumlylece ikisinin aras ndaki istek
frekanslar n n fark na var labilinir [41]
ekil 310 AJAX uygulamalar ndaki istek ak
23
ekil 311 Normal Web ile AJAX uygulamalar n n kar la t rmas
AJAX Web uygulamalar yla frekanstaki bu de i im hostlar iccedilin buumlyuumlk etki yapabilir
Boumlylece sunucular ayn kullan c say s yla yuumlksek h zlarda veri al -veri ini yapabilecek duruma
gelir Bu oumlzellikle daha fazla i lem gerektiren normal sayfa yuumlklemelerinde oldukccedila zor bir
i lemdi [41]
34 AJAX Metodolojisi
World Wide Web istemci-sunucu a mimarisine uygun ccedilal r [42] A aktiviteleri iki
tiptir Bunlardan birincisi kullan c taraf ndan tetiklenen HyperText Transfer Protocol (HTTP)
istekler (URL yazarak ya da bir link t klanarak olu turulur) di eri ise sunucu cevaplar d r
HTTP protokoluuml soru ve cevaplar serisinden olu an bir ileti im yoludur [41]
ekil 312 Geleneksel istekcevap (requestresponse) youmlntemi [39]
24
Web taray c dan bir istekte bulunuldu unda HTTP kullan larak cevap goumlnderilir Web
taray c bir istemci internet sayfas n n sunucusu ise HTTP sunucudur AJAX sunucu
cevaplar n HTTP kullanarak goumlnderir Sunucu taraf ndan geri doumlnduumlruumllen farkl tuumlrlerdeki
HTTP istek ve cevaplar n n tan nmas oumlnemlidir AJAX uygulamalar n sunucudan gelecek olan
HTTP cevaplar n iccedileri inin ne oldu u hakk nda karar verebilmesi iccedilin sunucunu
sorgulanmas nda HTTPRequest nesnesine ihtiyaccedil duyar [42]
341 HTTP Requests Nesnesi
HTTP request nesnesinin kullan m format a a daki ekildedir
ltrequest-linegt
ltheadersgt
ltblank linegt
[ltrequest-bodygt]
HTTP request nesnesinin ilk sat r genellikle iste in tipini belirten uumlccedil boumlluumlmden olu ur
Youmlntemin ad gerekli olan sunucu kayna n n yolu HTTP suumlruumlmuumlduumlr Birinci istek sat r (accedil l
sat r ) olmal d r kinci boumlluumlm sunucunun kullanabilece i ba l k sat r eklenebilen bilgilerin
goumlsterildi i boumlluumlmduumlr Son boumlluumlm olan bo sat r ise iste e ba l olarak BODY boumlluumlmuumlnden
ccedila r labilecek ek verilerin takip edilebilece i sat rd r
HTTP iccedilinde ccedile itli istek tuumlrlerinin tan mlanabilece i ccedilok say da youmlntem vard r Fakat
AJAX sadece GET ve POST youmlntemleriyle ilgilenir
3411 GET Youmlntemi
HTTP GET youmlntemi ccedila r lmak istenen URL adresi ard na eklenen anahtar-de er
ccediliftleri (key-value pair) ile ccedilal r Bir Web taray c dan talep edilen bir URL ccedila r s sunucuya
GET youmlnetemi ile bir istek goumlnderir Basitccedile sunucu kayna getirir ve taray c ya cevab
goumlnderir A a da Get youmlnetemi kullan larak F rat uumlniversitesinin Web sitesine yap lan bir ccedila r
sat r goumlsterilmektedir
GET HTTP11 ltrequest-linegt
Host wwwfiratedutr
User-Agent Mozilla50 (Windows U Windows NT 51 en-US rv176) ltheadersgt
Connection Keep-Alive
25
Oumlrnek kod parccedilas nda da goumlruumllduuml uuml uumlzere ilk sat r GET istek sat r d r Di er boumlluumlm ise
istek hakk nda bilgi goumlnderilen ba l k (header) k sm d r Bu boumlluumlme bir parametre ve her sat r
ba na bir de er ccedilifti gelebilir Host ba l iste in hedef sunucu adresini iccedilerir User-Agent
ba l eri ilebilir her iki sunucu ve istemci tarafl scriptler ve taray c lar n temel ta d r Bu
bilgi ile her istekte otomatik olarak goumlnderilir ve kullan lan taray c tan mlan r Connection
ba l ise taray c i lemleri iccedilin kullan lan tipik ba lant ayarlar nda kullan l r
3412 POST Youmlntemi
POST iste i ise sunucuya request body iccedilinde ek bilgi sa lar Genellikle ccedilevrimiccedili
formlarda doldurulmayan sat r bilgileri POST youmlntemi ile sunucuya bildirilir POST istekleri
a a daki yap dad r
POST HTTP11
Host wwwfiratedutr
User-Agent Mozilla50 (Windows U Windows NT 51 en-US rv176)
Content-Type applicationx-www-form-urlencoded
Content-Length 40
Connection Keep-Alive
Yukar daki kod parccedilas nda gri ile vurgulanan sat rlar GET youmlnteminden farkl olan
sat rlar goumlstermektedir lk sat rda kullan lan youmlntemin ad belirtilmi tir Content-Type sat r
request-body nin nas l kodland n goumlsterir Content-Length sat r nda request-body nin kaccedil
byte uzunlu unda oldu u goumlsterilir [37]
342 HTTP Request Nesnesinin Oumlzellikleri ve Youmlntemleri
Request nesnesi be tane temel fonksiyon bulundurmaktad r [43] Bunlar
Querystring URL iccedilersinde bulunan dosya ismi ile birlikte goumlnderilen bilginin veya
form iccedilerisinden GET
youmlntemi ile goumlnderilen bilgilerin al nmas nda kullan l r
Form POST
youmlntemi genellikle form iccedilerisinden bilgi al nmas iccedilin kullan l r
Servervariables Web sunucu request ile ilgili bilgilere (Http ServerVariables)
ula may sa layan bir youmlntemidir
Cookies(Ccedilerezler) Kullan c n n taray c s sunucudan gelen ccedilerezleri kabul ediyor ise
bu bilgilere ula lmas n sa lar
26
ClientCertificate Dijital bir sertifikad r Sunucu ve istemcinin birbirini tan mlamas
iccedilin kullan l r
343 HTTP Response Nesnesi
HTTP response nesnesi HTTP request nesnesine benzer ekilde goumlsterilir
ltstatus-linegt
ltheadersgt
ltblank linegt
[ltresponse-bodygt]
HTTP request nesnesinden tek fark ilk sat rda istek bilgisinin yerine iccedileri in durum
bilgisi vard r Durum sat r istek kayna
hakk nda temin edilen bir durum kodunu bildirir
A a da basit bir HTTP response kod parccedilas
goumlsterilmektedir
HTTP11 200 OK
Date Sat 31 March 2009 165959 GMT
Content-Type texthtmlcharset=ISO-8859-1
Content-Length 122
lthtmlgt
ltheadgt
lttitlegtFirat Universitesilttitlegt
ltheadgt
ltbodygt
lt-- body buraya gelir --gt
ltbodygt
lthtmlgt
Bu oumlrnekte durum sat r nda 200 eklinde bir HTTP durum kodu ve Tamam (OK)
diye bir mesaj verilmektedir Durum sat r her zaman durum kodu ve her hangi bir kar kl
oumlnlemek iccedilin k sa bir mesaj iccedilerir A a da en yayg n kullan lan durum kodlar verilmektedir
200 (OK) Sunucu ba ar l istekler iccedilin bu kodu kullan r
304 (NOT MODIFIED) Sunucu goumlnderilen istekle ilgili verilerin daha i lenmedi ini
istemciye bildirmek iccedilin bu kod kullan l r Taray c lar n oumln bellek mekanizmalar iccedilin en s k
kullan lan koddur
27
401 (UNAUTHORIZED) stemcinin kaynak eri im yetkisi yoktur
anlam nda
kullan l r Genellikle bu taray c n n sunucudan kullan c ad ve ifre gibi bilgi giri i istemesiyle
olu an hatalarda meydana gelir
403 (FORBIDDEN) Yetki elde etmek iccedilin istemci ba ar s z oldu
hata kodudur 401
hatas ndan sonra e er do ru bir kullan c ad ve ifre ile oturum accedil lmamas halinde genelde bu
hata kodu olu ur
404 (NOT FOUND) Kaynak belirtilen yerde bulunamad nda bu hata kodu uumlretilir
Kod parccedilas n n ikinci sat r nda uumlretilen cevab n tarihi ve saati Date ba l nda
sunucuya goumlnderilir Content-Type ve Content-Length ba l klar POST youmlnteminde oldu u gibi
kullan l r BODY cevab basitccedile istemci kayna (iccedilerik duumlz metin ikili veri ya da farkl
tuumlrden
bilgiler olabilir) HTML kayna n iccedilerir [42]
35 AJAX leti im Teknikleri
Web uygulamalar nda ccedilo unlukla kullan c istekleri bir form uumlzerinden yap l r ve
sunucu cevab h zl bir ekilde Java ya da Php gibi bir programlama dili ile olu turulur Normal
Web uygulama modelinde kullan c daima istek uumlretir boumlylece kullan c lar n h zl ca
t klamalar yla olu an yuumlksek h zlardaki sayfa istekleri genellikle rastgele aral klarla olu ur ve
her bir istek h z n n cevab duuml uumlktuumlr [41]
AJAX uygulamalar nda yukarda bahsedilen eksikli in oumlnuumlne geccedilebilmek iccedilin ccedile itli
ileti im teknikleri geli tirilmi tir Bu teknikler
Gizli Ccedilerccedileve (Hidden Frame) Tekni i stemci-sunucu ileti iminde kullan lan gizli
ccedilerccedileve yap s yuumlksekli i ve geni li i 0 pikselden olu an ekranda goumlruumlnmeyen bir
frameset yap s na dayan r
XMLHttp Requests (XHR) AJAX teknolojisinin temel nesnesidir A a daki ba l kta
ayr nt l bir biccedilimde incelenecektir
351 XMLHttp Requests (XHR) Nesnesi
AJAX la do rudan ilgili teknolojilerin ccedilo u asenkron ve XML tekni i ile yak ndan
ilgilidir Ccediluumlnkuuml veri kodlama yollar ve ileti im katmanlar n n tedarik edilmesi bu teknikler ve
kuumltuumlphaneler uumlzerinden hareket eder Ccedilo u durumda bu XMLHttpRequest nesnesi kullan l r
ancak IFrame lerde popuumllerdir Ccedilerezler veya ActiveX Java goumlmuumlluuml ba ka bir alternatif de
kullan labilir [41]
28
XHR Nesnesi Internet Explorer 50 (IE 5) iccedilindeki ActiveX control ile ortaya ccedil km t r
XHR Javascript ile olu turulur [44] Sayfalar n tamamen yeniden yuumlklenmeden sa lanan parccedilal
guumlncelleme oumlzelli i bu nesne sayesinde olmaktad r Arka planda ccedilal an bu sistem sayesinde
asenkron bir ileti im gerccedilekle ir Yenilenme s ras nda taray c yla ba lant kesilmeksizin yeni bir
istek yap labilir
World Wide Web Consortium (W3C) standart organizasyonu standartla amam
XMLHttpRequest nesnenin tuumlm taray c larda kullan labilen youmlntem ve oumlzelliklerinin genel bir
alt kuumlmesini olu turma ccedilal malar suumlrmektedir u anda kullan lan kural kuumlmesi W3C DOM
Level 3 yuumlkleme ve kaydetme oumlzellikleri iccedilerir kinci ccedilal ma tasla
wwww3orgTRXMLHttpRequest adresinde bulunabilir Henuumlz bir standart haline
gelememesinin nedeni taray c dan taray c ya goumlre farkl davran lar goumlstermesidir
Ccedilal ma tasla na goumlre XHR nesnesinin iki goumlrevi vard r Birincisi HTTP yolu ile
sunucuya programlanabilir ba lant kuran betiklerin ccedilal mas na izin verir kinci ifade ekli ise
normal HTTP istekcevap doumlnguumlsuumlnuumln d nda sunucuyla ileti ime izin verir
XMLHttpRequest Microsoft taray c ccedile itlerinde Mozilla Firefox Konqueror Opera
ve Safari gibi neredeyse tuumlm modern taray c lar taraf ndan desteklenmektedir [42]
3511 XMLHttpRequest Nesnesi Olu turma
Nesneler olu turulurken farkl taray c lar iccedilin farkl kurallar vard r Oumlrne in Microsoft
Internet Explorer XMLHttpRequest nesnesini bir ActiveX nesnesi olarak Safari Mozilla
Firefox ve Opera ise sadece normal bir JavaScript nesnesi olarak yorumlar
Windows un guumlncelleme sisteminin temelini olu turan ActiveX Web sayfalar ndaki
aktif nesneleri etkinle tiren oumlzel bir Microsoft teknolojisidir ActiveX i mevcut Web taray c lar
aras nda u anda sadece Microsoft Internet Explorer desteklemektedir Microsoft IE nin di er
suumlruumlmleri iccedilin MSXML geli tirerek daha aktif ve kararl bir yap olu turulmu tur IE nin farkl
suumlruumlmleri iccedilin a a daki bile enler kullan l r [45]
MicrosoftXMLHttp
MSXML2XMLHttp
MSXML2XMLHttp30
MSXML2XMLHttp40
MSXML2XMLHttp50
29
IE 60+ taray c lar iccedilin a a daki tan mlama yap l r
var nesne = new ActiveXObject(Msxml2XMLHTTP)
IE 55 suumlruumlmleri iccedilin ise a a daki tan mlama yap l r
var nesne = new ActiveXObject(MicrosoftXMLHTTP)
Mozilla Firefox Opera Safari gibi taray c lar iccedilin ise a a daki tan mlama yap l r
var nesne = new XMLHttpRequest ()
Ayn anda birden fazla internet taray c s (ie firefox opera vb) ile uyumlu Web
uygulamalar iccedilin ccedilapraz taray c deste i ifadesi kullan lmaktad r Ccedilapraz taray c deste i bir
arayuumlz kodlamas nda kodlay c lar n en ccedilok zaman harcad konudur Guumlnuumlmuumlzde ccedilapraz
taray c deste i bir zorunluluk haline gelmi tir [46] AJAX uygulamalar n n sorunsuz tuumlm
taray c larla uyumlu bir ekilde ccedilal abilmesi iccedilin JavaScript iccedilerisinde try-catch bloklar
yazarak taray c ya goumlre yeni bir nesne olu turulur
function NesneOlustur()
var nesne
try
nesne = new ActiveXObject(Msxml2XMLHTTP) IE 60+ taray c lar iccedilin
catch(e)
try
nesne = new ActiveXObject(MicrosoftXMLHTTP) IE 55 taray c lar iccedilin
catch(e)
try
nesne = new XMLHttpRequest () Firefox Opera 80+ ve Safari taray c lar iccedilin
30
catch(e)
alert( Maalesef taray c n z AJAX desteklemiyor)
return null
return nesne
Yukar da tan mlanan fonksiyon sayesinde dinamik ve ccedilapraz taray c deste ine sahip bir
XHR nesnesi olu turulmu tur
3512 XHR Nesnesinin Oumlzellik ve Youmlntemleri
XMLHttpRequest nesnesine eklenebilen oumlzellikler Tablo 31 de goumlsterilmektedir [42]
Tablo 31 Standart XHR nesnesinin oumlzellikleri
Oumlzellikler Tan mlar
onreadystatechange
Nesnenin readyState oumlzelli i de i ti inde hangi olay tutucunun (event
handler) ccedila r laca n belirler
readyState ste in durumunu raporlayan tamsay de eridir
0 = uninitialized ( stek haz rlanmad Henuumlz open youmlntemi kullan lmad )
1 = loading ( stek haz rland goumlnderiliyor)
2 = loaded ( stek goumlnderildi)
3 = interactive ( stek de erlendiriliyor ve sonuccedil bekleniyor)
4 = completed ( stek tamamland ve sonuccedil geldi)
responseText Form iccedilindeki metin dizesi sunucu taraf ndan veriye doumlnuuml tuumlruumlluumlr
responseXML Sunucu taraf ndan bir belge nesnesi gibi ifade edilen veri geri doumlnduumlruumlluumlr
Status Sunucu taraf ndan geri doumlnduumlruumllen HTTP durum kodudur Oumlrne in 404
kodu Not Found yani istenilen sayfa bulunamad anlam na gelir 200 ise
OK de eri goumlnderir ve i lemin tamamland n belirtir
31
statusText Status oumlzelli inin metin kar l n verir
XMLHttpRequest nesnesinin fonksiyonunu artt ran ek youmlntemler Tablo 32 de
goumlsterilmektedir Bu youmlntemler sayesinde sunucuyla asenkron ileti im kurulur
Tablo 32 Standart XHR nesnesinin fonksiyonlar
[42]
Youmlntemler Tan mlar
abort() Geccedilerli iste i iptal eder
getAllResponseHeaders()
Gelen cevab n ba l k bilgilerini string olarak getirir
getresponseHeader(x) x gibi bir parametre olarak verilen ba l k bilgisini getirir
setRequestHeader(xy) stekle goumlnderilen ba l k bilgisine istenilen etiketi ya da de eri atar
Tablodaki youmlntemler d nda open ve send youmlntemleri de s kccedila kullan lmaktad r
Open youmlnteminin parametreleri a a da goumlsterilmektedir
nesneopen( POST | GET URL asynch username password)
1 Parametre Web sayfas na yap lacak iste in hangi youmlntemle yap laca n belirtir
2 Parametre stek yap lacak Web sayfas n n URL adresi E er GET youmlntemi
kullan l yorsa querystring lerin de erleri URL e birle tirilerek belirtilmelidir
3 Parametre True de eriyle yap lacak iste in e zamans z olaca false de eri ile
e zamanl
olaca belirlenir E er false de eri verilirse i lem bitene kadar taray c di er
kullan c isteklerine cevap veremeyecektir True yap l rsa istek ayr bir i lem olarak ele
al nacakt r
4 ve 5 Parametre Opsiyonel parametreler olup e er istek yap lan Web sayfas ifre ve
kullan c ad istiyorsa bu ekilde goumlnderilebilir [47]
Open ile haz rlanan istek sunucuya goumlnderilir E er open ile accedil lan istek post metodunu
kullan yorsa send metodu parametre olarak goumlnderilecek veriyi ta yabilir
Send metodu parametresiz veya null parametresi ile de kullan labilinir Send metodunda
cevab n gelip gelmedi inin anla labilmesi iccedilin yani e zamanl haberle menin hangi safhada
oldu unun belirlenebilmesi iccedilin Tablo 31 deki oumlzellikler eklenir Send metodunun kullan m
ekli a a da verilmi tir [42 47 48 49]
nesnesend() veya nesnesend(null)
32
3513 XHR Ccedilal ma Mant
ekil 313 bir AJAX uygulamas nda standart etkile imli bir paradigmay
goumlsterir [49]
lem ad mlar a a da s ralanmaktad r
ekil 313 Standart AJAX etkile imi [49]
1 stemci tarafl bir olay AJAX olay (event) tetikler stemcinin a a daki gibi her
hangi bir hareketi onchange olay n ba lat r
ltinput type=text d=eposta name=eposta onblur=validateEposta()gt
2 Oumlrnek bir XHR nesnesi olu turmak iccedilin open() youmlntemi kullan l r ve ccedila r lar iccedilin
ayarlan r URL ayarlar iste e goumlre kullan lacak HTTP youmlntemlerinden GET ya da
POST a goumlre belirlenir A a daki kod oumlrne inde oldu u gibi istek send() youmlntemi
ile bir ccedila r y tetikler
var xmlHttp
function validateEposta()
var eposta= documentgetElementById(eposta)
var url = validateeposta= + escape(epostavalue)
if (windowActiveXObject)
xmlHttp = new ActiveXObject(MicrosoftXMLHTTP)
else if (windowXMLHttpRequest)
xmlHttp = new XMLHttpRequest()
xmlHttpopen(GET url)
xmlHttponreadystatechange = gericagir
33
xmlHttpsend(null)
3 Sunucuya bir istek yap l r Bu bir servlet CGI script PHP ya da ASPNET ile
yaz lm herhangi bir sunucu tarafl (server-side) script olabilir
4 Sunucu herhangi bir veri ambar na eri ebilir
5 stek taray c ya geri doumlnduumlruumlluumlr XHR nesnesi Content-Type ayar textxml dir
XHR nesnesi sadece texthtml tipindeki sonuccedillar i leyebilir Daha karma k
oumlrneklerde cevap JavaScript DOM manipuumllasyon ya da ba ka benzer teknolojiler
iccedilerebilir
responsesetHeader(Cache-Control no-cache)
responsesetHeader(Pragma no-cache)
Taray c lokal sonuccedillar oumln belle inde depolamaz Bunun iccedilin yukar daki kod sat rlar na
ihtiyaccedil duyar
6 Bu oumlrnekte i lemler geri doumlnduumlruumllduuml uumlnde gericagir() ad ndaki XHR fonksiyonu
ayarlan r Bu fonksiyon sunucudan goumlnderilen durum kodlar na bakar ve XHR
nesnesinin readyState oumlzelli ini kontrol eder gericagir() fonksiyonu beklendi i gibi
i lenmi se a a daki gibi bir kod parccedilas goumlruumlluumlr
function gericagir()
if (xmlHttpreadyState == 4)
if (xmlHttpstatus == 200)
stek Ba ar l
Yukar daki anlat mla XHR nesnesinin ccedilal ma mant na de inilmi tir Genellikle
kullan lan standart ccedila r lar oumlrneklenmi tir Bu ccedila r lar yap l rken bir kuumltuumlphaneden yap lan bir
uygulamadan da faydalan labilir Yeni bir ccedilal ma alan olmas na ra men accedil k kaynak
topluluklar nda hat r say l r etkinlikler yap lmaktad r [49]
Uygulamalar olu turulurken genellikle ccedile itli frameworkler ve toolkitlerden faydalan l r
Bunlardan baz lar sadece istemci tarafl ccedilal r baz lar ise sunucu uumlzerinde ccedilal maya ihtiyaccedil
duyar
34
Bu frameworkler suumlrekli de i en ve geli en bir ortam oldu u iccedilin yeni kuumltuumlphaneler ve
suumlruumlmleri takip edilmelidir En yayg n kullan lan kuumltuumlphanelerin ba nda Prototype
scriptaculous Dojo Toolkit Direct Web Remoting (DWR) Taconite ve Rico gelmektedir [49]
36 AJAX Olu turan Bile enler
Asynchronous JavaScript and XML kelimelerinin ba harflerinden olu an AJAX
kavram kullan l zengin Web uygulamalar geli tirebilmek iccedilin pratik bir araccedilt r [50]
AJAX n A parccedilas veri ileti im tekni ini JA parccedilas ileti im youmlntemini X
parccedilas tekni in veri kodlama k sm n olu turur AJAX tam manas yla anlayabilmek iccedilin onu
olu turan bile enlerin her birini de anlamak gerekmektedir [41]
361 E zamanl Olmayan leti im
AJAX tekni inin ccedilekirde ini olu turan XMLHttpRequest nesnesi hem e zamanl hem
de e zamans z olarak ccedilal abilen bir yap uumlzerine kurulmu tur
Ccedilo u AJAX uygulamas XHR nesnesini asenkron olarak kullan r Asenkron istek
taray c ya goumlnderilir ama sunucudan bir cevap gelmesini beklemektense sonraki istek kodlar
i letilmeye devam eder lenen cevap goumlnderildi inde XHR nesnesinin onreadystatechange
oumlzelli i bir fonksiyona ba lan r Bu fonksiyonun i letilmesinden sonra readystate koduyla
iste in durumu test edilir readystate oumlzelli i 4 de erini ald nda sunucuya istek tamamland
ve sonuccedil geldi mesaj gider [51]
A a daki kod parccedilas nda asenkron bir ileti im goumlsterilmektedir [51]
get recipe using Ajax
function getRecipe(evnt)
if (xmlhttp) xmlhttp = aaGetXmlHttpRequest( )
if (xmlhttp) return
var drink = encodeURIComponent(documentgetElementById(drink)value)
var qry = drink= + drink
var url = recipephp + qry
xmlhttpopen(GET url true)
xmlhttponreadystatechange = printRecipe
xmlhttpsend(null)
if (evnt ampamp evntpreventDefault( ))
evntpreventDefault( )
35
return false
E zamans z ileti imde kullan c ayn zaman diliminde birden fazla i lem yapabilir
Oumlrne in Web sayfas nda bir form dolduruldu unda formdaki bilgiler AJAX ile goumlnderilirken
i lemin bitmesini beklemek gerekmemektedir O zaman diliminde Web sayfas n n ba ka bir
yerinde bulunan anket cevapland r labilir Ccediluumlnkuuml e zamanl
ccedilal l rken bloke edilen JavaScript
motoru e zamans z ccedilal rken serbesttir ve ba ka isteklerin goumlnderilmesine muumlsaade eder Yani
ayn zaman dilimi iccedilerisinde birden fazla iste i kabul edebilir [52]
ekil 314 E zamanl olmayan ileti im modeli
ekil 314 te goumlruumllduuml uuml gibi ayn zaman dilimi iccedilerisinde 4 adet istek yap lm t r
Kullan c bu isteklerin tamamlanmas n beklemek zorunda de ildir Bu sebeple istemci ve
sunucu aras ndaki t kla-bekle-t kla-bekle etkile imi ortadan kalkmaktad r
362 E zamanl leti im
Senkron isteklerde taray c cevap iccedilin beklerken kilitlenir
var state = documentforms[0]elements[0]value
var url = ajaxphpstate= + state
xmlhttpopen(GET url false)
xmlhttpsend(null)
alert(xmlhttpgetAllResponseHeaders( ))
Yukar daki kod dizesiyle bir form alan na Web servisi uumlzerindeki HTTP GET istek
yap s kullan larak eri ilir Uumlccediluumlncuuml sat rdaki open youmlnteminin uumlccediluumlncuuml parametresinin false
olmas n n anlam iste in e zamanl (senkron) oldu unu goumlsterir Herhangi bir parametre
almadan null de erli istek goumlnderilir stek goumlnderildikten hemen sonra uyar mesaj kutusu
36
accedil larak cevap ba l yaz l r [51] Kullan lan Web servisi h zl ysa cevap hemen gelir E er
servis yava sa istek bitinceye kadar di er sayfa aktiviteleri gerccedilekle emez [51]
E zamanl
ileti imde ayn zaman diliminde yaln zca bir i lem yap labilinir Web
taray c m zdan uzaktaki Web sunucusuna goumlnderilen istek Web sunucusunda i lenir ve tekrar
geldi i yoldan Web taray c s na geri doumlner Bu i lem belli bir zaman al r E zamanl
ccedilal rken
bu zaman diliminde ba ka bir istek goumlnderilemez [52]
E zamanl
ccedilal ma oumlzellikle Web sunucusu ayn bilgisayarda ise veya yak n olan bir
LAN uumlzerindeyse sa l kl ccedilal abilir Fakat Web sunucusu a r bir yuumlk alt ndaysa veya Web
taray c s Web sunucusuyla yava bir ba lant uumlzerinden etkile ime geccediltiyse koumltuuml bir
performans verecektir Ccediluumlnkuuml Web taray c s iccedilindeki JavaScript motoru goumlnderdi i istek
tamamlan ncaya kadar bloke edilir ve Web taray c s donmu bir ekilde iste in
tamamlanmas n bekler Bu zaman diliminde kullan c goumlnderilen iste i iptal de edemez Bu
yuumlzden Web sayfas ndaki ba ka bir noktaya t klayamaz veya ba ka bir sekmeye geccedili yapamaz
[52]
ekil 315 E zamanl
ileti im modeli
ekil 315 de goumlruumllduuml uuml gibi Web taray c s ndan goumlnderilen 1 nolu istek Web
sunucusuna iletilmektedir Al nan istek i lendikten sonra Web taray c s na geri
goumlnderilmektedir Bu zaman diliminde ba ka bir istek yap lamaz
363 Javascript
1995 y l nda Brendan Eich ad ndaki yaz l m geli tiricisi taraf ndan Netscape Navigator
20 ile birlikte geli tirilen JavaScript dili istemci tarafl
(client-side) bir betik (script) dilidir
Web sayfalar nda dinamik iccedilerik sa lamak ya da kullan c yla ileti im kurmak iccedilin kullan l r [53]
Bu ileti imin sa lanabilmesi iccedilin ortak kurallar duumlnyada uluslararas standart kurumu olan
Avrupa Bilgisayar Uumlreticileri Birli i (European Computer Manufacturers Association-ECMA)
taraf ndan belirlenir Temel kurallar ECMA Script (ECMA-262) ad verilen bir standartta
toplanm t r [54]
37
Javascript in soumlz dizim kurallar C diline benzerlik goumlsterir Derleme i lemi yap lmayan
ayr t rmal (parsed language) bir dildir Nesne youmlnelimli programlama (Object Oriented
Programming - OOP) yetene ine sahiptir [55]
AJAX n JavaScript le olan ili kisi k saca u ekilde oumlzetlenir Herkes taraf ndan
bilinen goumlnder (submit)-cevap(response) doumlnguumlsuumlnuumln oumlnuumlne geccedilerek kullan c lar n Web
sunucusuyla direk etkile im iccedilinde bulunmas n sa lar [56] AJAX goumlnder duuml mesi olmaks z n
sunucu etkile imini sa lar Veriye ihtiyaccedil duyuldu unda Web sayfas iccedilindeki Javascript kodlar
ile bir istek yapar Sunucu cevab tam bir HTML sayfas olarak de il veri olarak geri doumlnduumlruumlr
ve istemciyi cevaplar Cevab n bu ekilde olu turulmas Web uygulamalar n n masauumlstuuml
uygulamalar gibi ccedilal abilmesini sa lar [56]
Sonuccedil olarak Javascript HTML kodlar aras na goumlmuumllebilen kod parccedilalar d r Bunun
yan s ra tek ba na js uzant l JavaScript kodlar da yaz labilir Bu kodlar Internet Explorer
Firefox Opera vb tuumlm taray c lar taraf ndan desteklendi i iccedilin sorunsuz ccedilal r [57]
3631 JavaScript Ccedilal ma Prensibi
JavaScript kodlar
iccedilin herhangi bir metin editoumlruuml kullan labilir ya da Notepad gibi bir
duumlz yaz program yla da kodlar olu turulabilir Taray c lar n yorumlayabilmesi iccedilin ltSCRIPTgt
etiketiyle ba layan ltSCRIPTgt etiket ile biten JavaScript kodlar HTML belgelerinin ccedile itli
yerlerine eklenebilir Eklenen kodlar kullan c lar n HTML belgesindeki bir ba lant ya t klamas
veya klavyede bir tu a basmas yla tetiklenir ya da HTML sayfas kullan c
Browser nda
goumlruumlntuumllendi i anda otomatik olarak ccedilal maya ba lar Otomatik ccedilal an Javascript kodu ise iki
ayr youmlntemle ccedilal t r labilir lk youmlntem HTML kodlar i letilmeden oumlnce (yani Web sayfas
kullan c n n Web Browser nda goumlruumlntuumllenmeden oumlnce) ccedilal mas ikinci youmlntem sayfa
goumlruumlntuumllendikten sonra script kodlar n n ccedilal mas d r [58] Bu youmlntemler a a da s ras yla
accedil klanmaktad r
HEAD boumlluumlmuumlnde
BODY boumlluumlmuumlnde
HEAD Boumlluumlmuumlndeki Scriptler HEAD etiketleri iccediline ltSCRIPTgt ltSCRIPTgt etiketi
kullanarak istenilen JavaScript kodlar
eklenebilir Bu kodlar HTML sayfas n n BODY boumlluumlmuuml
yuumlklenmeden i lenir
38
ltHTMLgt
ltHEADgt
ltSCRIPT LANGUAGE=Javascript12gt
alert(Merhaba Duumlnya) ltSCRIPTgt
ltHEADgt
ltBODYgt
ltBgtDeneme Sayfas na Ho geldinizltBgtltbrgt
ltBODYgt
ltHTMLgt
Yukar daki oumlrnekte kaynak kodlar yukar dan a a ya do ru i letilirken sayfada ilk
goumlruumlntuumllenecek olan alert( ) komutuyla ekrana yaz lan Merhaba Duumlnya
ileti im kutusu
olacakt r Gelen ileti im kutusunda Tamam butonuna bas ld nda body boumlluumlmuumlndeki
kodlar n i lenmesine s ra gelecektir Ekrana Deneme Sayfas na Ho geldiniz mesaj
yazacakt r
BODY Boumlluumlmuumlndeki Scriptler HTML belgesinin BODY boumlluumlmuumlnde JavaScript
kullanmak iccedilin iki yol vard r
Do rudan ccedilal acak kodlar ve kullan c taraf ndan ccedilal acak kodlar
Do rudan ccedilal acak JavaScript kodlar
ltBODYgtltBODYgt etiketleri aras na
ltSCRIPTgt etiketi kullan larak HTML belgesinin istenilen yerine yaz l r Bu cuumlmleler taray c
taraf ndan okundu u anda yerine getirilir
ltHTMLgt
ltHEADgt
kinci Ornek
ltHEADgt
ltBODYgt
ltSCRIPT LANGUAGE=Javascript12gt
alert(Javascript duumlnyas na ho geldiniz)
ltSCRIPTgt
ltBODYgt
ltHTMLgt
Yukar daki oumlrnekte ise kod i leme s ras na uygun olarak i letilerek oumlnce HEAD
etiketleri yorumlanarak ekrana kinci Ornek yaz p hemen ard ndan ileti im kutusu ccedil karak
39
Javascript duumlnyas na ho geldiniz yazacakt r Kullan lan di er bir youmlntem ise kullan c
taraf ndan bir olay n ba lat lmas yla bir JavaScript kodunun ccedilal t r lmas d r
ltHTMLgt
ltHEADgt
ltSCRIPT LANGUAGE=Javascript12gt
genel de i ken tan mlar
var n = Merhaba Duumlnya
bu fonksiyon uyar kutusu accedilar
function merhaba()
alert(n)
ltSCRIPTgt
ltHEADgt
ltBODYgt
ltbrgtltbrgtltbrgtltbrgtltBgtButona T klad n zda Merhaba Duumlnya yazan ileti im kutusu ekrana
gelecektirltBgtltbrgtltbrgt
ltFORMgt
ltINPUT TYPE=SUBMIT NAME=dugme1 VALUE=TIKLAYINIZ
onclick=merhaba()gt
ltFORMgt
ltBODYgt
ltHTMLgt
Yukar daki oumlrnekte ise HEAD etiketleri aras nda de i ken tan mlama ve fonksiyon
olu turma i lemleri yap lm t r BODY komutu i letildikten sonra FORM ouml esiyle olu turulan
duuml me kullan c taraf ndan t kland nda script kodu tetiklenerek fonksiyon ccedila r l r ve mesaj
kutusu ekrana gelir
Ayr ca ltBODYgt iccedilinde URL kullan larak da a a daki oumlrnek kodla goumlsterildi i gibi
JavaScript kodu ccedila r labilmek muumlmkuumlnduumlr
ltA HREF=javascript alert(Ccedil kmak istedi inizden emin misiniz)gtSiteden Ccedil kltAgt
40
3632 Javascript Dilinin Oumlzellikleri
JavaScript dilinin temel soumlz dizim yap s na a a da incelenecektir
36321 De i kenler
Bir de eri iccedileren bellek adlar n ifade ederler De i kenler verileri saklar ve onlara
eri imi sa larlar De i kenlerin bir ad olur bir de de eri olur Program boyunca de i kenin ad
de i mez fakat iccedileri i de i ebilir
Bir JavaScript de i keni belli kurallara uymak zorundad r
a) De i kenler harfle ya da alt ccedilizgi (_) ile ba lamal d r Rakam veya di er
i aretler birinci karakter olarak kullan lamaz fakat de i ken ad n n di er
karakterlerinde kullan labilir
b) Javascript buumlyuumlk kuumlccediluumlk harfe kar duyarl d r (case-sensitive oumlzellli i) Ayn
kelimenin buumlyuumlk harfle yaz lmas ile kuumlccediluumlk harfle yaz lmas farkl isimler
olarak alg lanmas na neden olur
c) De i ken isimleri iccedilinde bo luk olmamal d r
d) Kullan c lar n bilgisayar nda kullan lan dil setinin ayarlar her bir kullan c iccedilin
farkl l k goumlsterebilece i iccedilin ngilizce alfabede bulunmayan Tuumlrkccedile ve di er
dillerdeki high-ASCII karakterleri ( ile uuml Uuml ouml Ouml ccedil ve Ccedil)
kullanmamakta fayda vard r [58]
36322 Kapsam
Bir de i kene bir de er atand nda bu de erin geccedilerli olaca suumlreyi belirlemek iccedilin
kapsam (scope) kavram kullan l r Bir de i kenin kapsam
global ya da lokal olabilir Bir
global de i kene sayfa uumlzerinde herhangi bir JavaScript ten eri ilebilir Lokal de i ken ise
de erin atand yordam iccedilinde geccedilerlidir
A a daki oumlrnekte bir de i kenin kendisine atama yaparak de er verilir
adi= Zeynep
Bir fonksiyon yaz l rken yerel bir de i ken olu turmak iccedilin a a daki oumlrnekte oldu u
gibi var kelimesiyle tan mlama yap l r
41
function toplama()
var sayi=1
toplam=0
deyimler
Yukar daki oumlrnekte sayi adl de i ken toplama fonksiyonu iccedilin yerel toplam de i keni
ise tuumlm sayfa iccedilin genel (global) de i ken olacakt r De i kenlere atanan de erler Tablo
33 deki de i ken tuumlrlerinden herhangi biri olabilir Verinin tuumlruumlne ba l olarak de er uumlzerinde
belirli i lemler yap labilir ya da yap lamaz Oumlrne in iki string de er uumlzerinde aritmetik i lem
yap lamaz
Tablo 33 De i ken tuumlrleri
De i ken Tuumlrleri
Numbers Tam ve ondal kl
say lar iccedilerir Pozitif 0 ya da negatif olabilir
Booleans Mant ksal veri tuumlruumlduumlr True (Do ru) ya da False (Yanl ) de erini al r Sorgulama
sonunda geriye True iccedilin 1 False iccedilin 0 de erini doumlnduumlruumlr
Strings Karakter bilgi iccedileren bir de i kendir T rnak iccedilinde yaz lan ifadeler de i kene
atan r
Objects Taray c ya ait nesnelerdir nesne= new Object() eklinde kodlamada kullan labilir
Null Oumlzel bir de i kendir ccedili bo ya da de ersiz olarak ifade edilir
Undefined
Bir de i ken yarat ld ktan sonra iccedilerdi i tan ms z de eri simgeler
36323 leccediller (Operators)
leccediller iki ya da daha fazla de er uumlzerinde i lem yap lmas n sa lar De erler ya da
de i kenler aras nda toplama ccedil karma mod gibi i lemler yap labilir
Tablo 34 leccediller ve goumlrevleri
leccediller ve Goumlrevleri
+ Toplama
- Ccedil karma
Ccedilarpma
Boumllme
42
MOD Boumllmede kalan verir (10 3 i lemi 1 de erini verir )
++
Tek art r m De er 1 art r l r
-- Tekli azaltma
- Negatifle tirme lenenin negatif de erini doumlnduumlruumlr
36324 kili leccediller
kili i leccediller birden ccedilok kar la t rma i lemini tek bir ko ul ifadesi olarak birle tirirler
Oumlrne in
sayi =1 AND dongu gt 1000 ise gibi
Tablo 35 kili i leccediller
kili i leccediller
ampamp
Mant ksal Ve And ki ifade de do ruysa True de erini doumlnduumlruumlr
|| Mant ksal Veya Or fadelerden birisi do ruysa True de erini doumlnduumlruumlr
Mant ksal De il Not Negatifle tirme i lemi do ruysa True de erini doumlnduumlruumlr
36325 Atama Deyimi
Atama deyimi (=) bir de i kene sa dan bir de erin atanmas n sa lar De i kenlere
tuumlrlerine ve tan mlamalar na uygun olan herhangi bir de er atanabilir
Oumlrnek sayi=100
Oumlrnek toplam=(fiyat+kdv)
Sa daki de eri soldaki de i kene atayan += -= = = ifadeleri de kullan labilir
Oumlrne in toplam+=fiyat (di er bir de i kenden gelen fiyat de erini toplam de erine
ekler ve sonucu toplam de i kenine atar)
36326 fadeler
De i kenlerin i leccedillerin ve deyimlerin bir araya gelerek olu turduklar yap lar
ifade
eder
Oumlrne in toplam = sayi 1 sayi2 formuumlluuml bir ifadedir
43
36327 Deyimler
Deyimler belli bir komut ya da soumlz dizimi bile enlerine verilen add r Oumlrne in bir komut
ya da bir IF yap s deyim olabilir
Oumlrnek if (basari_notugt50) deyimler else deyimler
36328 Nesneler
Kendi de erleri oumlzellikleri ve i lemleri olan bile enlere nesne (object) denir JavaScript
dilinde ccedilok say da yerle ik nesne vard r
JavaScript buumltuumln Web sayfas n ve taray c y nesneler toplulu u olarak goumlruumlr Bu
sisteme DOM (Document Object Model) denir [59]
JavaScript kullanarak dinamik ve etkile imli goumlruumlnuumlmler elde edilir DOM a JavaScript
ve JScript gibi ECMAScript olan kullan c taraf ndaki bir scripting dili yard m yla eri ilebilinir
DOM la veri al -veri i yeni bir sayfada kullan c ekran na yans t lmaz Parccedilal guumlncelleme
olay n n buumlyuumlk k sm bu modelle gerccedilekle tirilir
Ba lang ccedilta Javascript geli tiricileri kullan c lar na daha zengin uygulama deneyimleri
ya atabilmek ve sayfalardaki etiketlerde dinamik de i imler sa lanabilmesi iccedilin ccedilaba sarf
ediyordu Bu durum sayfalar n bir nesne gibi i lenebilmesini gerekli k ld Boumlylece DOM ortaya
ccedil km t r lk oumlnceleri Javascript ve DOM s k bir ili ki iccedilindeydi sonuccedilta ise iccedilerik ayr larak
geli tirilmi tir DOM sayfalar n JavaScript veya VBScript gibi bir betik dili ile de i tirilebilir
sayfalar n tamamen nesne youmlnelimli goumlsterimidir [60]
DOM ekil 316 da goumlsterilen JavaScript iccedilindeki buumltuumln nesneleri ifade etmektedir
Hiyerar ik olarak ccedilok say da nesneyi iccedilerir NetScape ve Microsoft taray c lar iccedilin DOM
nesneleri farkl oldu u iccedilin yaz lan kodlar uyumlu de ildir [59]
44
ekil 316 Javascript nesneleri [59]
Window nesnesi taray c n n kendisidir Window nesnesi birccedilok youmlnteme oumlzelli e ve
olaya sahiptir Form nesnesi DOM nesnesinin ana nesnesidir Form uumlzerindeki alanlar bu nesne
arac l yla kullan l r [59]
Verilerin yuumlklenmesinde kullan lan XML ile uumlretilen Javascript istemci kodlar ve veri
sunucu uumlzerindeki kodlar aras ndan ayr larak goumlsterilir Bu istemcinin etkilenmeksizin sunucu
uumlzerinde de i iklik yap lmas n sa lar Benzer API iccedileren di er istemciler iccedilin bilgileri accedil a
ccedil kar r [41]
363281 DOM (Document Object Model)
Document Object Model (DOM) XML ve HTMLXHTML iccedilin World Wide Web
Consortium (W3C) taraf ndan geli tirilen bir belgenin a accedil yap s n (tree-based) temsil eden bir
standartt r DOM bir tak m nesneler iccedilin belgenin yap s n temsil etmesinin yan s ra bu
nesnelere eri im iccedilin youmlntemler de sa lar [44]
DOM bir belgenin stilini kaynak dosyas n yap s n ve iccedileri ini guumlnceller ve program
ile scriptlerin belgeye eri imine izin veren bir platformdur Ayn zamanda bir API (application
programming interface) dir [62]
Nesneleri iccedileren belgeler iccedilin standart model olarak DOM uumlccedil boumlluumlme ayr lm t r
Core DOM
XML
HTMLXML DOM - XML
45
HTML DOM
HTML
DOM da her internet sayfas bir belge ve bu belge iccedilerisinde bulunan tuumlm elemanlar ise
nesne olarak kabul edilir DOM sayfa uumlzerindeki her bir XML eleman
iccedilin nesnelerin a accedil
yap s n n resmini goumlrselle tirmenin kolay bir yoludur A a daki oumlrnek basit bir XML
belgesinin doumlrt duuml uumlmden olu an DOM u goumlstermektedir Koumlk Dokuumlman duuml uumlmuuml koumlk etiketi
iccedilin bir Element duuml uumlmuuml alt etiketler iccedilin bir Element duuml uumlmuuml ve alt etiketin sahip olaca
herhangi bir bilgi girilebilen bir metin duuml uumlmuumlduumlr [41]
ltrootTaggt
ltchildTaggtSome TextltchildTaggt
ltrootTaggt
Bir a accedil yap s n n goumlrsel bir temsili a a da goumlsterilmektedir
Dokuumlman
Element (koumlkEtiket)
Element (altEtiket)
Metin
A a daki kod kuumlmesinin [63] DOM goumlsterimi ekil 317 deki gibidir
ltTABLE border=1gt
ltTBODYgt
ltTRgt
ltTDgtOumlgr NoltTDgt
ltTDgtAd Soyad ltTDgt
ltTRgt
ltTRgt
ltTDgt900ltTDgt
ltTDgtZeynep OumlZERltTDgt
ltTRgt
ltTBODYgt
ltTABLEgt
46
ekil 317 DOM a accedil yap s
[63]
Geccedilerli her HTML ve XML belgesindeki element nitelik metin duuml uumlmuuml (text node)
hatta bo luk ve sekme karakterleri(whitespace) bile W3C DOM taraf ndan duuml uumlm (node) olarak
kabul edilir ekil 317 deki gibi belgedeki duuml uumlmlerin kullan m hiyerar isine goumlre
s ralanmas na da duuml uumlm a ac (node tree) denir Belge nesnesi yeni duuml uumlmler olu turmak bu
duuml uumlmlerin oumlzeliklerini de i tirmek ve youmlnetmek iccedilin ccedilok say da youmlnteme sahiptir
363282 DOM Elementinin S k Kullan lan Genel Oumlzellikleri ve Youmlntemleri
A a da duuml uumlmlere eri mek ve youmlnetmek iccedilin s k kullan lan JavaScript youmlntemleri
vard r [64]
getElementById()
Soumlzdizimi
documentgetElementById(herhangiBirID)
Oumlrnek kullan m
element = documentgetElementById(kimlik)
getElementById() youmlntemi id oumlzelli i belirtilen elementlerin referans n n al nmas n
sa lar Ayn id kimli ine sahip ba ka bir element olmas durumunda sadece ilk elementi verir
Di erlerine eri im sa lamaz kimlik
dokuumlman uumlzerinde elementi bulmak iccedilin kullan lacak
e siz bir oumlzelli ini ifade eder
47
getElementsByTagName()
Soumlzdizimi
documentgetElementsByTagName(herhangiBirHTMLElementi)
Oumlrnek kullan m
documentgetElementsByTagName(etiketAdi)
Dokuumlman uumlzerinde belirtilen ayn etiket ismine ait buumltuumln elementlerin bir listesini verir
documentgetElementById(herhangiBirID)documentgetElementsByTagName()
parametresiyle id niteli inin de eri herhangiBirID olan elementin duuml uumlmleri
iccedilindeki tuumlm elementler listelenir
getElementsByName()
Soumlzdizimi
documentgetElementsByName(herhangiBirIsim)
Oumlrnek Kullan m
documentgetElementsByName(baslik)
Bu youmlntem dokuumlman uumlzerinde belirtilen name oumlzelli ine sahip elementlerin bir listesini
verir Oumlrnek kullan mda name niteli inin de eri baslik olan elementleri verir
firstChild
Bu oumlzellik elementin ilk alt elementini verir
Soumlzdizimi
documentgetElementById(herhangiBirID)firstChild
lastChild
Bu oumlzellik elementin son alt eleman n verir
Soumlzdizimi
documentgetElemementById( herhangiBirID )lastChild
48
nodeValue
nodeValue oumlzelli i text comment ve CDATA duuml uumlmlerinin iccedilerdikleri de eri verir
Soumlzdizimi
m= documentgetElemementById( herhangiBirID )lastChildnodeValue
m e er varsa duuml uumlmuumln iccedilerdi i de erin string olarak de eridir document nesnesinin
ve elementlerin nodeValue de eri null doumlner
removeAttribute()
removeAttribute fonksiyonu elementin belirtilen bir oumlzelli inin silinmesini sa lar
Soumlzdizimi
elementremoveAttribute(ozellik)
ozellik silinecek oumlzelli in ad d r
nodeName
Duuml uumlm bilgilerini almak iccedilin kullan l r Geccedilerli duuml uumlmuumln ad n doumlnduumlruumlr
Geccedilerli duuml uumlm element ise elementin tipini doumlnduumlruumlr Nitelik ise nitelik ad n doumlnduumlruumlr
nodeType
Geccedilerli duuml uumlmuumln tuumlruumlnuuml say sal olarak doumlnduumlruumlr
nextSibling
Duuml uumlmler aras gezinti yap labilmesiyi sa lar Geccedilerli duuml uumlmden bir sonrakine referans verir
previousSibling
Geccedilerli duuml uumlmuumln bir oumlncekine referans verir
setAttributeNode
Bir duuml uumlme nitelik atamada kullan l r
Soumlzdizimi
elementsetAttributeNode(nitelik)
49
36329 Fonksiyonlar
Fonksiyonlar birden fazla ad mdan olu an i lemlerin kolayca tek seferde yap lmas n
sa lar Fonksiyonlar bir dizi i lemi yerine getirir ve bir sonuccedil doumlnduumlruumlr Ayr ca fonksiyonlar
parametre olarak kabul edilen birccedilok de er al rlar
Fonksiyonlar n HTML dosyas n n HEAD boumlluumlmuumlne koyulmas yani gerekli buumltuumln
fonksiyonlar alt alta HTML in HEAD boumlluumlmuumlnde yer alacak bir SCRIPT etiketi iccedilinde
olu turulmas taray c n n Javascript yorumlay c s bak m ndan h z kazanmas n sa lar Sonra
ihtiyaccedil duyuldu unda yeni bir SCRIPT etiketi koyarak bu fonksiyon goumlreve ccedila r l r [58]
function fonksiyonun_ad (arguumlman1 arguumlman2 arguumlmanN)
i lemler
deyim 1
deyim 2
deyim N
363210 Accedil klamalar
Programlar n anla l r olmas n sa layan accedil klama sat rlar JavaScriptte bu lt- ve --gt
i aretlerinin aras nda ifade edilir [58]
lt- Accedil klama sat r d r --gt
37 Basit Bir AJAX Oumlrne i
Ekran ccedil kt s ekil 318 de goumlruumllen basit bir oumlrnek uumlzerinde i leyi anlat lacakt r
ekil 318 AJAX oumlrne i
50
indexhtml dosyas accedil ld nda Metnin AJAX la getirilmesi iccedilin tiklayiniz
ba lant s na t kland nda taray c kullan lan AJAX youmlntem sayesinde tuumlm sayfa yeniden
yuumlklenmeden iccedileri i sunucu da depolanan sonuchtm dosyas ndan alarak ekrana yans t r
Yukar daki indexhtml dosyas n n kodlar a a da goumlsterilmektedir
lthtmlgt
ltheadgt
lttitlegtAJAXla oumlrne ilttitlegt
ltscript language=JavaScript type=textjavascriptgt
function getXmlHttpRequestObject()
if (windowXMLHttpRequest)
return new XMLHttpRequest() IE olmayan
else if(windowActiveXObject)
return new ActiveXObject(MicrosoftXMLHTTP) IE
else
alert(Maalesef taray c n z XmlHttpRequest nesnesini desteklememektedir AJAX
destekleyen bir taray c da tekrar deneyiniz)
var receiveReq = getXmlHttpRequestObject()
function cevap()
if (receiveReqreadyState == 4 || receiveReqreadyState == 0)
receiveReqopen(GET sonuchtml true)
receiveReqonreadystatechange = handlecevap
receiveReqsend(null)
function handlecevap()
if (receiveReqreadyState == 4)
documentgetElementById(span_result)innerHTML = receiveReqresponseText
ltscriptgt
ltheadgt
lta href=javascriptcevap()gtMetnin AJAXla getirilmesi icin tiklayinizltagtltbr gt
51
ltspan id=span_resultgtltspangt
lthtmlgt
Oumlrnekte ilk olarak tuumlm taray c larda sorunsuz ccedilal abilmesi iccedilin ccedilapraz taray c deste i
sa lanm t r receiveReq de i keni getXmlHttpRequestObject() ile tan mlanm t r Daha
sonra cevap fonksiyonu olu turulmu tur Sunucudan gelen cevab n durumu ifelse yap s yla
kontrol edilmi tir Sunucudan gelen gelen cevaba goumlre doumlnduumlruumllen de erlerle sonuchtml sayfas
ccedila r larak uygulama sonlan r
AJAX youmlntemi ile ccedilekilen bilginin tutuldu u sonuchtml dosyas nda ise sadece ekil
319 de yazan veri bulunmaktad r
ekil 319 sonuchtml sayfas n n ekran ccedil kt s
38 XML
XML (eXtensible Markup Language) internet te teknik standartlar ve youmlnetim
konusunda yetkili organ olan W3C (World Wide Web Consortium) organizasyonu taraf ndan
geli tirilmi tir XML programc lar n kendi sistemlerini olu turabilecekleri kendi etiketlerini
tan mlayarak ccedilok daha rahat ve etkin programlama yapabilecekleri ve bu belirlenen etiketleri
kendi yap lar iccedilerisinde standartla t rabilece i esnek geli tirilebilir ve kolay uygulanabilir bir
meta-dil (bir dili tan mlamak iccedilin kullan lan soumlzcuumlkler dilbilim dili) dir [65]
XML ile ilgili ilk ve en oumlnemli nokta ba l ba na bir dil olmamas d r Daha ziyade
di er dilleri ya da bir dili olu turan soumlzcuumlkleri olu turmak (vocabularies) iccedilin kullan lan bir
meta-dildir XML bu soumlzluumlklerin olu turulmas iccedilin gerekli kurallar tan mlar [66]
XML bu kural yap s na uygun olarak etiketleri iccedilerik bilgisiyle tan mlayabilir XML nin
esnek yap s sayesinde a a daki oumlrnekte oldu u gibi kullan lan dilde ccedilok farkl tiplerde etiket
olu turulmas na muumlsaittir XML soumlzluuml uumlndeki tek k s tlamas etiketlerin iyi biccedilimlendirilmi
olmas gerekti idir [66]
52
ltnotgt
ltkimegt Melek lt kimegt
ltkimdengt Zeynep lt kimdengt
ltbaslikgt Hatirlatici ltbaslikgt
ltbodygt Bana proje teslim tarihini hatirlat lt bodygt
ltnotgt
Yukar daki not oumlrne i kendi kendini accedil klay c bir oumlrnektir Goumlnderici ve al c bilgisinin
yan nda mesaj metni ve ba l da mevcuttur XML nin HTML de oldu u gibi oumlnceden
tan mlanm etiketleri yoktur XML yazar kendi etiketlerini ve kendi belge yap s n oumlrnekteki
gibi olu turabilir
Her dil farkl d r ama hepsinde iccedileri i i aretlemek iccedilin etiketler kullan l r Etiket
adlar n n seccedilimi ve yap s esnektir ve genellikle gruplarda bilginin payla labilmesi iccedilin standart
XML soumlzluumlkleri kararla t r lm t r [66]
XML 1998 y l nda SGML alt yap s uumlzerine kurulmu tur SGML (Standard
Generalized Markup Language) bir etkinle tirme teknolojisidir HTML gibi uygulamalarda
kullan l r Geni letilebilir aretleme Dili (Extensible Markup Language-XML) nin oldukccedila
basit bir diyalektidir [66]
XML SGML ve HTML sistemlerinin her ikisinin de uygulanmas n kolayla t rmak iccedilin
tasarlanm t r XML ayn zamanda son derece popuumller bir veri format d r Ccediluumlnkuuml ccedilo u
programlama dili taraf ndan desteklenir Bu dil sayesinde geli iguumlzel veri tipleri tan mlamak
kolayd r Ccedilo u kez XML Uzak Yordam Ccedila r s - Remote Procedure Call (RPC) mekanizmas
sayesinde istemci-sunucu ileti imini kolayla t rmak iccedilin kullan lm t r [66] XML elde edilmek
istenen alan bilgileri konfiguumlrasyon parametreleri teknik ccedilizim hesap ccedilizelgesi (spreadsheet)
gibi ouml eleri iccedileren dosyalar n yaz l m nda kullan l r [67]
XML verileri goumlruumlntuumllemek iccedilin de il verilerin platformdan ba ms z bir ekilde
depolanmas ve transferi iccedilin tasarlanm t r XML tuumlm bilgiler duumlz metin format nda saklar Bu
da tuumlm platformlarda sorunsuz bir ekilde kullan labilir olmas n sa lar Bu dosyalar diskte duumlz
metin olarak tutman n bir avantaj
da olu turuldu u programda accedil lmas gerekli de ildir Bu
yaz dosyalar programc n n istedi i bir yaz i leme program nda accedil l p duumlzenlenebilir Ayr ca
XML veriyi duumlz metin (plain text) format nda saklamas ndan dolay veriyi payla t rma
konusunda hem yaz l m hem de donan mdan ba ms z hareket edebilme imkacircn n sunmu tur
53
381 Oumlrnek XML Belgesi Olu turma
XML belgelerinin yap s n n daha iyi kavranabilmesi iccedilin basit bir oumlrnekten yola ccedil k l r
Bir dizi karakter mant ksal bir yap ya ccedilevrilmelidir Bu ccedilevrim a accedil yap s kullan larak
yap labilir Oumlrnek belgede koumlk dizin ya da element ve alt boumlluumlmler iccedilin de dallar belirlenir
denemexml olarak kaydedilecek belgenin iccedileri inde sisteme kay tl kullan c lar n bilgileri
vard r
Haz rlanan denemexml belgesinin a accedil yap s a a daki gibi olu turulmu tur Koumlk
element ve alt dallar ve alt dala ait nitelik belirtilmi tir
ekil 320 denemexml dosyas n n a accedil yap s
A accedil yap s olu turulduktan sonra kodlama k sm na geccedililir XML de kod yaz m n
kolayla t rmak iccedilin Altova XMLSpy MoreMotion XML Editor XMLwriter XML Editor 26
gibi ccedile itli editoumlr programlar kullan labilir Bu tez ccedilal mas nda oldukccedila i levsel oumlzelliklere
sahip Altova XMLSpy yaz l m kullan lm t r Editoumlr kullanarak dokuumlmandaki metinlerin
yap sal elemanlar yaz oumlzellikleri (renk stil biccedilim vb ) belirginle tirilir mlerin otomatik
soyadi
adi
soyadi
eposta
adi
soyadi
eposta
Kullanicilar Kullanici Kullanici_id= 2
Kullanici Kullanici_id= 3
Kullanici Kullanici_id= 1
adi
eposta
54
olarak kapanmas sa lanabilir Olu turulan yap lar n do rulu u ve geccedilerlili i kolayca kontrol
edilebilir Altova XMLSpy editoumlruumlyle olu turulan belge a a daki kodlardan olu maktad r
ltxml version=10 encoding=UTF-8gt lt--Bu XML belgesi kullan c bilgilerini tan mlar --gt ltKullanicilargt
ltKullanici kullanici_id=1gt
ltadigtZeynepltadigt
ltsoyadigtOZERltsoyadigt
ltepostagtz_ozerhotmailcomltepostagt
ltKullanicigt
ltKullanici kullanici_id=2gt
ltadigtYagmurltadigt
ltsoyadigtOZERltsoyadigt
ltepostagty_ozeryahoocomltepostagt
ltKullanicigt
ltKullanici kullanici_id=3gt
ltadigtFatihltadigt
ltsoyadigtAYDOGMUSltsoyadigt
ltepostagtf_aydogmusgmailcomltepostagt
ltKullanicigt ltKullanicilargt
Haz rlanan dokuumlman iyi biccedilimlendirilmi (well-formed) bir yap ya sahiptir ekil 321
de Altova XMLSpy editoumlruumlyle olu turulan belgenin ekran goumlruumlntuumlsuumlnde denemexml
goumlruumllmektedir
55
ekil 321 XML belgesi
382 XML Dokuumlman n n Yap s
XML ile veriler yap bak m ndan moduumllerlik kazanmaktad r Bu sayede verilerin iccedilerik
yap ve sunum k s mlar ayr moduumlller halinde farkl XML dokuumlmanlar nda tutulmaktad r
Her XML belgesini olu turan moduumlller iki boumlluumlmde incelenecektir Bu moduumlller giri
boumlluumlmuuml (prolog) ve belge ya da koumlk duuml uumlm (document node) olarak ayr lm t r
Prolog XML belgesinin ba nda goumlruumlntuumllenir ve belge hakk nda iccedilerikle ilgili bilgiler
iccedilerir XML bildirimleri i lem accedil klamalar yorumlar ve DTD (Document Type
Definition)XML ema iccedilerebilir
yi duumlzenlenmi bir XML dokuumlman tek ve temel bir koumlk duuml uumlm uumlzerine kurulur
Elementler nitelikler metin CDATA (character data) varl k ve yorumlar iste e ba l olarak
eklenebilir
56
ekil 322 Oumlrnek bir XML dokuumlman yap s
[ 66]
3821 Giri Boumlluumlmuuml (Prolog)
Bu boumlluumlmde XML belgesinde bulunabilecek oumln tan mlama konular incelenecektir
3822 XML Bildirimleri
XML dokuumlmanlar genellikle a a daki bildirim sat r yla ba lar Bildirim sat r ndan
oumlnce ba ka komut sat r yaz lmamal d r Tersi bir durumda XML dokuumlman iccedileri i i leme
koyarken do ru bir ekilde okuyamaz ve hata mesaj uumlretir
ltxml version= 10 encoding= UTF-8
gt
Bu i lem sat r nda ba lang ccedil etiketi ve biti etiketi yoktur XML bildiriminin yap ld
ltxml ve gt i lem komut etiketleridir lem komutlar oumlrnekteki gibi biti ik yaz l r Bu oumlrnek
sat rda 2 tane oumlznitelik bar n r Birinci oumlznitelik xml dokuumlman n n hangi suumlruumlm oldu unu bildirir
ve yaz lmas zorunludur En yayg n kullan lan ve en guumlncel suumlruumlmuuml olan 10 yerine ba ka bir
57
de er yaz ld nda dosya i lenmeyebilir kinci oumlznitelik olan encoding belge i lenirken
kullan lacak dil seccediliminin belirtildi i aland r Oumlrnekteki kod birccedilok dili destekleyen UTF-8
karakter dil setini tan mlar
38221 lem Accedil klamalar (Processing Instructions)
Giri boumlluumlmuumlnde di er uygulamalara XML dokuumlman hakk nda bilgi veren i lem
accedil klamalar (Processing Instructions- PIs) dacirchil edilebilir lem accedil klamalar lt karakterleriyle
ba lar ve gt karakterleriyle biter PIs XML belgesinin di er boumlluumlmlerinde goumlruumllebilmesine
ra men genellikle giri boumlluumlmuumlnde goumlruumlluumlr
XML bildirimleri ltxml karakter grubuyla ba lar lem accedil klamalar yla benzerlik
goumlsterir Fakat aralar ndaki fark XML bildirimleri ltxml karakter grubuyla ba larken i lem
accedil klamalar ise lt karakterleriyle ba lar
Bir XSL stylesheet i referans goumlsteren PI goumlsterimi
ltxml-stylesheet type= textxsl
href= stylesheetxsl gt
PI nin ilk ouml esi bir isimdir PI hedefi olarak adland r l r Yukar da goumlsterilen PI xml-
stylesheet ismine sahiptir simler ltxml karakter grubundan - semboluumlyle ayr l r PI ler type=
textxsl href= stylesheetxsl metin karakter dizesine sahiptir Oumlrnek kod sat r nda stylesheet
ad nda metin iccedilerikli bir XSL dosyas referans goumlsterilmi tir
38222 Yorumlar (Comments)
Yorum sat rlar XML belgesinin hemen hemen her yerinde iste e ba l olarak
kullan labilir XML yorum sat rlar XHTML belgelerindeki yap yla ayn d r Ayn karakterlerle
ba larlar
lt--Bu alana yorumlar yaz labilir --gt
Yorum sat rlar XML belgesi i lenirken etkilenmezler Bu sat rlar programc lar n ya da
kullan c lar n program kodlar n kolayca anlayabilmeleri iccedilin yaz l r [68]
58
38223 Dokuumlman Tipi Tan mlama-The Document Type Definition (DTD) ve XML
emalar
XML belgesinin standartla t r lmas iccedilin kullan lan bir yap d r XML belgesinin hangi
elementleri iccedilerece ini ve bu elementlerin oumlzniteliklerinin ne olaca n elementlerin neleri
ta yaca n dokuumlman iccedilerisindeki tekrar eklini ve say s n kurallarla belirtir [69]
382231 DTD kullanman n Avantajlar
Veri depolama XML nin temel amaccedillar ndan birisidir Oumlrne in yaz l m geli tirecek bir
proje ekibi ccedilal rken ortak bir DTD nin olu turulmas yla geli iguumlzel yeni etiketler eklenmesinin
etiketlerle depolanan bilginin hatal s ralanmas n n etiketlere hatal nitelikler eklenmesinin
oumlnuumlne geccedililmi olur Ayr ca i lem yapan program n da bu belgeleri tan mas ve i lemesi kesinlik
kazan r [70] Belge i lenirken geccedilerlilik derleyicileri (validating parsers) XML belgesinin DTD
geccedilerlili i sa lanana kadar tekrar tekrar kontrol eder E er geccedilerlilik kontroluumlnden geccedilemezse
derleyici hata mesaj verir [66]
ccedileri in bir standarda oturtulmas yla AJAX ve dinamik DOM manipuumllasyonunda
istenmeyen gereksiz kod parccedilalar n n ve ccedilal mayan i aretlemelerin oumlnuumlne geccedililir Ayr ca daha
h zl HTML derleyicileri ve daha iyi ccedilapraz taray c performans iccedilin geli mi arama motoru
optimizasyonu sa lan r Bir DOCTYPE belirlemenin en oumlnemli etkisi HTML iccedileri inin nas l
ayr t r ld n ve yorumland n n Web taray c ya goumlsterilmesi gerekti ini belirtmesidir Ayr ca
DOCTYPE ba l olarak CSS yorumlanabilir ve HTML farkl ekilde goumlruumlntuumllenir [71]
Hangi i lem moduna dacirchil oldu u tespit edilerek Web taray c lar
DOCTYPE
doumlnuuml uumlmuumlnuuml destekler Web taray c lar bir Web sayfas n n nas l HTML ve CSS iccedileri ini
yorumlad n
ve de erlendirdi ini sayfalar n DOCTYPE bildirimlerine dayanarak de i tirir
[71]
382232 DTD tan mlama
DTD olu umu iki yolla yap labilir Birinci yol belge iccedilerisinde a a daki oumlrnekte oldu u
ilk standart sat rdan sonra ltDOCTYPE ile ba layan ve gt i areti ile biten aral kla DTD tan m
yap lmas d r DTD alan nda bir kok_element_adi etiketi tan mlanm t r [ ]
i aretleri aras nda
iccedilsel olarak tan mlanm t r Bu etiketin iccedilerisine element_icerigi olarak alt alanlar belirtilir
XML dokuumlman n n iccedilerik k sm na tan mlanan kok_element_adi etiketleri aras na istenilen metin
giri i yap l r
59
ltxml version= 10 encoding= UTF-8 gt
ltDOCTYPE kok_element_adi
[ltELEMENT kok_element_adi (element_icerigi) gt ]
gt
lt kok_element_adi gt Bu basit bir DTDli XML ornegidir lt kok_element_adi gt
kinci yol ise Web sayfalar n n iccedileri i bir geccedilerlilik servisi kullan larak onaylanmas d r
Do rulu u W3C1 taraf ndan garantiye al nan bir DTD ile geccedilerlilik kontroluuml sa lanabilir [71]
HTML XHTML SMIL MathMLvb Web dokuumlmanlar n n httpvalidatorw3org adresinden
URI adresi dosyalar upload edilerek ya da direk i aretleme giri i yap larak geccedilerlilik kontroluuml
yap labilir [72]
DTD tan m a a daki oumlrnekteki gibi HTML belgesine harici olarak
httpwwww3orgTRxhtml1DTDxhtml1-strictdtd adresindeki haz r kural yap s
dacirchil edilir
Kural ak bu adresten sa lan r [72] A a daki kod sat r nda XML veri tan mlamas na goumlre
ltcodegtltcodegt etiketleri olu turulmu tur
ltDOCTYPE html
PUBLIC -W3CDTD XHTML 10 StrictEN
httpwwww3orgTRxhtml1DTDxhtml1-strictdtdgt
lthtmlgt
ltbodygt
ltpgt Bu alana serbest metin giri i yap labilir
ltcodegt
Bu alanda ise XML veri tan mlamas DTD tan m na goumlre yap lm t r
ltcodegt
ltpgt
ltbodygt
lthtmlgt
Programc lar n en ccedilok ihtiyaccedil duyabilece i 6 tane oumlncelikli DOCTYPE belgelerinin
listesi a a da verilmi tir [72]
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401EN
httpwwww3orgTRhtml4strictdtdgt
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN
httpwwww3orgTRhtml4loosedtdgt
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 FramesetEN
60
httpwwww3orgTRhtml4framesetdtdgt
ltDOCTYPE html PUBLIC -W3CDTD XHTML 10 StrictEN
httpwwww3orgTRxhtml1DTDxhtml1-strictdtdgt
ltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalEN
httpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgt
ltDOCTYPE html PUBLIC -W3CDTD XHTML 10 FramesetEN
httpwwww3orgTRxhtml1DTDxhtml1-framesetdtdgt
382233 DTD ccedilinde Element Tipi Bildirimleri
Elementler hakk nda bilgi veren kodlard r Kullan lan yap ELEMENT ile ba lar
element ad ve element iccedileri inin eklenmesiyle sonlan r
ltELEMENT elementName (elementContents)gt
Element iccedileri i a a daki gibi bo olarak ta tan mlanabilir
ltELEMENT elementName (EMPTY)gt
Element iccedileri inde alt dallar-duuml uumlmler olu turulacaksa a a daki oumlrnekte oldu u gibi
DVD koumlk duuml uumlmuumlne le ayr larak s ras yla baslik format tarz element isimleri yaz l r
Belirlenen s ralama XML belgesi iccedilinde goumlruumlnecek s ralamay da olu turur
ltELEMENT DVD (baslik format tarz)gt
Parsed Character Data (PCDATA) veri tuumlruuml element iccedileri inin metinsel ifade olaca n
bildirir XML ayr t r c s bu metindeki karakter ve varl k referanslar n ccediloumlzuumlmler A a da
ltbaslikgt ltformatgt lttarzgt bildirimlerinin iccedilerik tuumlruuml PCDATA olarak tan mlan r
ltELEMENT baslik (PCDATA)gt
ltELEMENT format (PCDATA)gt
ltELEMENT tarz (PCDATA)gt
61
XML belgelerinde tan mlanan bir element herhangi bir veri kombinasyonunu iccedilerebilir
Bu durumda iccedilerik tuumlruuml ANY olarak tan mlan r En serbest iccedilerik tan m d r Oumlrnek kullan m
a a da goumlsterilmektedir
ltELEMENT KATALOG ANYgt
Elementlerin alabilecekleri nitelikler DTD iccedilerisinde tan mlan r Element iccedilerikleri
hakk nda daha detayl bilgiye ula lmas n sa lar Tablo 36 da kullan labilecek niteleyiciler
goumlsterilmektedir
Tablo 36 DTD karakterleri ve accedil klamalar
Karakter Accedil klama
Elemandan s f r veya daha ccedilok bulunabilir
Alt elemanlar s rayla belirler
| Bir grup element aras nda seccedilim yap lmas na izin verir
+ Elemandan bir veya daha ccedilok bulunabilir
Elemandan s f r veya 1 tane bulunabilir
Sembol olmamas o elementin bir kez goumlruumlnmesi gerekti ini bildirir
Oumlrnek goumlsterimde KULLANICI elementine ait alt element olan AD ouml esi birden fazla
de er alabilece ini goumlsterir TEL bildirimi ile kullan c ya ait di er bilgiler girilirken telefon
numaras
giri i eksik olarak kalabilece ini ve sonradan eklendi inde ise yeni kural
tan mlamas na gerek kalmadan etiket tan mlamas n n yap labilece ini bildirir
ltELEMENT KULLANICI (ADI+ TEL)gt
382234 DTD ccedilinde Nitelik Liste Bildirimleri
Nitelik bildirimleri element bildirimlerinden sonra goumlruumlnuumlr ve biraz daha karma k bir
yap ya sahiptir Bir elementin sahip oldu u oumlzellikler bir liste halinde belirtilebilir
Nitelik liste bildirimi a a daki yap yla goumlsterilir
ltATTLIST Element_adi Nitelik_adi Nitelik_tipi varsayilan_degergt
ltATTLIST DVD id CDATA REQUIREDgt
62
Kod parccedilas nda yaz lan varsayilan_deger niteli in gerekli olup olmad n belirtir
Nitelik tipleri Tablo 37 deki de erleri alabilir
Tablo 37 DTD ccedilindeki niteliklerin de er ve accedil klamalar
[73]
De er Accedil klamas
CDATA De er karakter verisi olmal
(en1|en2|) De er parantez iccedilindeki de erlerden birisi olmal
ID a unique identifier- benzersiz bir tan mlay c -kimlik
IDREF De er ba ka bir eleman n ID si olmal
IDREFS De er ba ka ID lerin listesi olmal
NMTOKEN De er geccedilerli XML ad olmal
NMTOKENS De er geccedilerli XML ad listesi olmal
ENTITY De er bir varl k olmal
ENTITIES De er bir varl k listesi olmal
NOTATION De er bir notasyon olmal
xml De er oumlnceden tan mlam bir XML de eri olmal
Varsay lan de er ise Tablo 38 deki de erleri alabilir
Tablo 38 Varsay lan de erler ve accedil klamalar
De er Accedil klama
deger Niteli in Default de eri
REQUIRED Nitelik de eri Eleman iccedilinde geccedilmek zorundad r
IMPLIED Nitelik de eri Eleman iccedilinde geccedilmek zorunda de ildir
FIXED value Nitelik de eri sabittir E er nitelik de eri belirtilirse default de eri
yazmak zorunludur
A a daki oumlrnekte URUN elementinin RENK niteli i seccedilimli olarak k rm z ye il ya da
mavi olas de erleri tan mlanm t r Varsay lan de eri ise k rm z olarak belirtilmi tir [73]
ltATTLIST URUN RENK (red|green|blue) redgt
63
382235 DTD ccedilinde Varl k (Entity) Bildirimleri
Varl k bildirimleri XML belgesinde kullan lan de i ik tuumlr ve biccedilimlerdeki verilerin
XML belgesine aktar lmas n sa lar Di er programlama dillerinde kullan lan moduumll ya da
makrolar gibi s kl kla kullan lan metin bloklar
varl k olarak tan mlanarak sayfan n istenilen
yerine kolayca eklenebilir Eklenen metin uumlzerindeki de i iklikler varl k bildirimiyle
duumlzenlenebilir [73]
Ayr ca d ar dan bir dosyay
varl k olarak tan mlayarak iccedilindeki veri XML belgesinde
kullan labilinir Bu veri metin olmak zorunda de ildir DTD bir varl k olarak tan mlamak iccedilin
a a daki sat r n kullan lmas
gerekmektedir [73]
ltENTITY varl k_ad varl k_degerigt
ltENTITY copyright Copyright 2009 Yayinevigt
Harici bir dosyadan al nacak bir varl k iccedilin soumlz dizimi ise a a daki gibidir
ltENTITY varl k_ad SYSTEM URIURLgt
ltENTITY tableOfContents SYSTEM entitiesdenemexmlgt
(Not URL = Uniform Resource Locator URI = Uniform Resource Identifier )
38224 XML emas
XML emas DTD lere benzer ekilde XML belgesinin yap s n ve bulundurabilece i
verilerin tuumlruumlnuuml tan mlamakta kullan l r XML emalar
xsd dosya uzant l d r ema XML
belgesinde kullan labilecek ouml eleri nitelikleri ve veri tuumlrlerinin yan s ra XML belgesinin soumlz
konusu XML emas iccedilin geccedilerli olmas n sa lamak amac yla uyulmas gereken yap y da
tan mlar [74]
XML emalar DTD yap lar na goumlre daha guumlccedilluuml bir yap ya sahiptir DTD iccedilerisinde
eleman iccedileri i string ve di er birkaccedil veri tipi ile s n rl d r XML ema integer floating point
say lar date time gibi daha geni bir veri tipi deste i sa lamaktad r XML ema ayr ca accedil k
iccedilerik modeli (open content model) ve isim uzay
(namespace integration) gibi ek oumlzellikler de
sunmaktad r XML ema belgeleri olu turulmas s ras nda XML soumlzdizimi kullan l r Bu DTD
lere goumlre ccedilok belirgin bir uumlstuumlnluumlk sa lar Ccediluumlnkuuml yeni bir soumlz dizimi ouml renilmesi yerine
XML in XML emaya oumlzel komutlar n n ouml renilmesi yeterli olur [75]
64
A a daki oumlrnek ema tan mlamas nda xs schema elementi ile ba layan bir koumlk ouml e
vard r
ltxml version=10 encoding=UTF-8gt
ltxsschema
xmlnsxs=httpwwww3org2001XMLSchemagt
ltxsschemagt
ema elementi iki tane oumlzelli e sahiptir
name
xmlns
ema iccedilin bir isim tan mlamas name oumlzelli i ile sa lan r xmlns oumlzelli inin ise oldukccedila
oumlnemli bir goumlrevi vard r Bu oumlzellik sayesinde oumlrne in Microsoft un schema belirtimlerini
kullanabilmesi iccedilin urnschemas-microsoft-comxml-data de erine ayarlanmas gerekir
A a daki oumlrnekte XML ema belgesi iccedilin name ve xmlns niteliklerinin basit kullan m
goumlsterilmektedir [66 75]
ltschema name=kutuphane xmlns= urnschemas-microsoft-comxml-datagt
lt - - ema iccedileri i buraya yaz l r- -gt
ltschemagt
Oumlrnek XML belgesi olu turma ba l alt nda verilen oumlrne in ema dosyas olan
denemexsd nin kodlar ve ekran goumlruumlntuumlsuuml ekil 323 deki gibidir
ltxml version=10 encoding=UTF-8gt ltxsschema xmlnsxs=httpwwww3org2001XMLSchemagt
ltxselement name=Kullanicilargt
ltxscomplexTypegt
ltxssequencegt
ltxselement ref=Kullanici minOccurs=0 maxOccurs=unboundedgt
ltxssequencegt
ltxscomplexTypegt
ltxselementgt
ltxselement name=Kullanicigt
ltxscomplexTypegt
ltxssequencegt
ltxselement name=adi type=xsstringgt
ltxselement name=soyadi type=xsstringgt
ltxselement name=eposta type=xsstringgt
ltxssequencegt
ltxsattribute name=id type=xsinteger use=requiredgt
65
ltxscomplexTypegt
ltxselementgt
ltxsschemagt
ekil 323 denemexsd nin ekran goumlruumlntuumlsuuml
3823 Belge Duuml uumlmleri
XML dokuumlman nlar ndaki belge duuml uumlmleri a a da incelenecektir
38231 Elementler
XML dokuumlmanlar ndan bahsederken etiket ve element terimleri kullan lmaktad r lk
ba ta birbirinin yerine kullan labilir gibi goumlruumlnse de asl nda farkl iki terimdir Element terimi
herhangi bir iccedilerikle birlikte etiketlerin accedil l p kapanmas olarak tan mlanabilir Etiket elementin
bir parccedilas d r Etiketler de kouml eli parantez accedil larak ba lan r ve sonunda kapat larak bitirilir
A a daki oumlrnek sat rda ltxyztgt etiketlerini iccedileren tam bir element goumlruumllmektedir
Accedil l etiketi Kapan etiketi
ltxyztgtXML de etiket ve element fark ltxyztgt
ccedilerik
Element
66
38232 Nitelikler
Her XML belgesi karakter verisi ve biccedilimlendirmeden olu ur Genellikle karakter verisi
ba lang ccedil ve biti etiketleri aras nda metinsel bilgi iccedilerir
XML etiketlerine bir ya da daha fazla nitelik tan mlanabilir
ccedilerik ya da
Nitelik ba ka etiketler
ltKullanici kullanici_id= 1 gt ltKullanicigt
Etiket sim De er
Accedil l etiketi Kapan etiketi
Element
38233 Metin
Accedil lan ve kapat lan tuumlm etiketlerin iccedileri ini olu turur CDATA gibi metin i aretlemesi
yap lmad kccedila tuumlm metin XML kural yap s na goumlre i lenecektir [66]
38234 CDATA Boumlluumlmuuml
CDATA XML yap s iccedilerisinde i lenmeyecek metinleri bloklar halinde i aretlemeye
yarar XML derleyici bu boumlluumlmde metin iccedilerisinde yer alan i aretleme ay raccedillar n ve etiketlerini
normal karakterler olarak alg lar CDATA yap s ltCDATA[ ile ba lar ve]] kouml eli parantezlerin
kapanmas yla sona erer
ltbaslikgtltCDATA[
]]ltbaslikgt
CDATA boumlluumlmleri Javascript gibi goumlmuumlluuml kodlar XML belgelerinde kullanabilir ve bu
boumlluumlmlere i leme ihtiyaccedil duyulmayan iccedilerik eklenebilir Oumlrne in bir uygulamada veritaban ndan
veri okumas ve i aretlemesi buumltuumln iccedileri in XML belgesine goumlmme bilgisini vermede
karakterler i lenirken accedil kccedila ayr lmas n n oumlnuumlne geccedilebilmek iccedilin CDATA boumlluumlmleri kullan l r
[66]
67
38235 Varl klar
Bir karakteri temsil eden sembol grubuna varl k denir Oumlrne in Ampersand i areti
yerine yani ve yerine kullan lan ampamp ya da bir karakterlik bo luk b rakmak iccedilin
nonbreaking space yerine ampnbsp semboluuml kullan l r
ltmatematikgt18 lt 36ltmatematikgt
Yukar daki kod sat r nda bu element i lenmeye ccedilal ld nda hata iletisi verecektir
Ccediluumlnkuuml 36 de erinin oumlnuumlndeki etiket accedilma i areti olarak alg lanacak ve kod sat r n n i leme
al nmas nda yanl l a neden olacakt r Bu hatay duumlzeltmek iccedilin kod sat r n n a a daki gibi
yaz lmas yeterli olacakt r
ltmatemetikgt18 amplt 36ltmatemetikgt
Tablo 39 da s k kullan lan karakterlerin varl k sembolleri goumlsterilmektedir
Tablo 39 XML Belgelerinde kullan lan varl k bildirimleri
Karakter Varl k
amp ampamp
ampapos
gt ampgt
lt amplt
ampquot
383 XML nin Soumlz Dizim Kurallar
XML iccedileri in i aretlenmesi iccedilin etiketleme dili kullan l r Bu etiketlemeler yap l rken
baz kurallar goumlz oumlnuumlnde bulundurulur imdi bu kurallar incelenecektir
1) XML dili buumlyuumlk kuumlccediluumlk harfe kar duyarl d r XML de kuumlccediluumlk harf kullan m esast r
Oumlrnek yaz m a a daki gibidir [76]
lttable WIDTH= 100 gt kullan m yanl t r
lttable width= 100 gt kullan m do rudur
68
2) Her etiket kapat lmal d r Oumlrne in ltkelimegt etiketini takip eden sat r sonuna ltkelimegt
etiketi de eklenmelidir
3) Dokuumlmanda buumltuumln elementleri iccedileren bir koumlk eleman olmas gerekir Oumlrnek yaz mda
oldu u gibi alt ouml eler duumlzenli bir yap da yaz lmal d r [76]
ltrootgt
ltchildgt lt childgt
ltsubchildgt lt subchildgt
lt rootgt
4) Etiketler belirlenirken bir element ba ka elementleri iccediline alacak ekilde tasarlanabilir
ccedilten d a do ru etiketlerin hepsi kapat lmal d r
ltbgtltigtBu metin koyu ve e ikltbgtltigt yanl kullan m
ltbgt ltigt Bu metin koyu ve e ik lt igt lt bgt do ru kullan m
5) XML elementleri oumlzel karakter verileri bo elementler CDATA ya da yorumlar
bar nd rabilir
6) Oumlznitelik de erleri t rnak iccediline al nm olmal d r Tek t rnak ya da ccedilift t rnak olabilir
lttable width=100gt kullan m yanl t r
lttable width= 100 gt kullan m do rudur
7) Element adlar harfler rakamlar tire alt ccedilizgi iki nokta i aretlerini ve noktalar
iccedilerebilir ki nokta i areti sadece namespace kullan m iccedilindir xml ile ba layan eleman
isimleri oumlnceden tan mlanm oumlzel isimlerdir [86]
ltkullanilabilirIsimlergt
ltisimgt
ltxslcopy-ofgt
ltUzun_bir_isimgt
ltNoktalarlaayrilmisbirisimgt
lth823323123-231-231gt
lt_23gt
ltkullanilabilirIsimlergt
8) Etiketleme yap l rken rakamla ba lamamas na dikkat edilmelidir Bo luk yer
almamal d r
69
384 XML Dokuumlmanlar n n leyi i ve Sunumu
XML i lemleri a accedil tabanl ve olay tabanl olmak uumlzere iki kategoriye ayr l r Verilerin
i lenmesinde XML parser yani ayr t r c kullan l r XML i lemciler genellikle XML ayr t r c
olarak da adland r l r A accedil tabanl ayr t r c lar DOM (Document Object Model) yakla m na
goumlre olay tabanl ayr t r c lar ise SAX (Simple API for XML) yakla m na goumlre veriyi ema
yap s ile birlikte XMLye oumlzguuml hiyerar ik yap da i ler lenen veriler uygulama ve
sorgulamalara haz r hale getirir [66 76]
Genellikle bir XML dokuumlman n XML formatl veri iccedilerik dosyas XSD (DTD yerine)
formatl ema dosyas ve XSL (CSS yerine) formatl stylesheet dosyas olmak uumlzere 3 dosyayla
tan mlanabilir Bu uumlccedil dosya tipi de XML destekli tuumlm sunucu ve veri tabanlar nda ccedilal t r labilir
Verinin yal n (native) olarak sakland veritaban youmlnetim sistemleri di er veritabanlar nda
kar la lan harici veri tipleri veya farkl format doumlnuuml uumlmlerine gerek duymad ndan sorgu
transfer ve entegrasyon i lemlerinin performanslar
oldukccedila yuumlksektir Ayr ca XML veritaban
youmlnetim sistemlerinde verinin yal n biccedilimde kendi iccedil format nda tutuluyor olmas n n bir
avantaj da eri imi kolayla t rmas d r Ba ka veritaban youmlnetim sistemi yakla mlar nda buna
benzer bir arama iccedilin karma k ccediloklu tablolar ara t r l r ve daha sonra XML verisine
doumlnuuml tuumlruumlluumlr Bu da i lem performans n n duuml mesine ve maliyet art r c ek uygulamalar
eklenmesine neden olur [66 76]
39 AJAX Prensipleri
AJAX yeni bir teknoloji olmas itibariyle henuumlz emekleme doumlnemindedir Bununla
birlikte birkaccedil Web tasar mc s bu yenili i ba a ccedil k lmas gereken bir sorun gibi alg lamaktad r
Bu sorun iyi bir AJAX Web uygulamas yapabilmek iccedilin s radan ya da koumltuuml bir uygulamaya
kar ne yap lmas gerekti i olarak tan mlanabilir Michael Mahemoff (wwwmahemoffcom)
bir yaz l m geli tirici ve kullan labilirlik uzman iyi Ajax uygulamalar iccedili birkaccedil temel ilke
belirlemi tir [37]
Minimal Trafik nternet trafi i internet uumlzerindeki veri ak d r Goumlnderilen ve al nan
mesajlar n miktar youmlnuuml web sitesine giren ziyaretccedililerin say s ziyaret ettikleri
sayfalar ccedilevrimiccedili trafi i olu turmaktad r AJAX uygulamalar nda amaccedil bu internet
trafi ini en alt seviyede tutmak iccedilin sunucudan muumlmkuumln olabildi i kadar az bilgi
goumlnderip almakt r Ayr ca bilgi ak nda gereksiz bilgilerin her seferinde goumlnderilip
al nmas n n oumlnuumlne geccedililmesiyle uygulamaya sa laml k kat l r
70
Kullan c etkile imli model Genellikle AJAX uygulamalar geleneksel Web
uygulamalar ndan farkl olarak de i ik kullan c etkile imli modeller sunar Web
standartlar ndaki t kla-bekle anlay na kar AJAX uygulamalar nda an nda suumlruumlkle
b rak ya da ccedilift t klamayla yak nla t rma gibi di er kullan c arayuumlz paradigmalar
vard r E er kullan c
etkile imli modeller seccedililirse kullan c
ne yapaca n bilir
Sade arayuumlz Yan p soumlnen sayfa boumlluumlmuuml ya da suumlrekli doumlnen animasyonlar gibi dikkat
da t c ve gereksiz sayfa elementlerinden kaccedil n l r Kullan c lar goumlze hitabeden
uyumlu ve sade sayfalar tercih etmektedir
Eri ilebilirlik nsanlar n ba lant h zlar ndan fiziksel engellerine ya ad uumllkenin
toplumsal yap s ndan ya l l a kadar birccedilok youmlnden eri ilebilirlik standartlar
incelenebilir Birincil ve ikincil kullan c lar n beklentilerine en uygun olacak AJAX
uygulamalar na eri im seccedilenekleri goumlz oumlnuumlnde bulundurulmal d r Oumlzel yaz l mlarla m
yoksa kullan lacak taray c oumlzellikleriyle mi adaptasyonun sa lanaca belirlenmelidir
Boumlylece yeni hedef kitleler de tamamen d ar da b rak lm olmayacakt r
Sayfan n tamam n indirilmesinden kaccedil nma Tetikleyici sayfa indirildikten sonra
tuumlm sunucu ileti imi AJAX motoru taraf ndan youmlnetilmektedir Boumlylece kuumlccediluumlk bilgi
al -veri leri iccedilin tuumlm sayfan n tekrar yuumlklenmesinin oumlnuumlne geccedililmi olur
lk kullan c AJAX uygulamalar nda tasar m kullan c lar n daha oumlnce
kar la mad klar bir biccedilimdedir Etkileyici efektler ve s k c olmayan bilgilendirici
reklamlarla genel kullan m durumlar n kolayca ba armaktad r
Buumltuumln bu ilkelerde bulunan ortak nokta kullan labilirliktir AJAX oumlncelikle kullan c lar
iccedilin web deneyimini geli tirmeye ccedilal rken arkas ndaki teknoloji sadece bunun iccedilin bir araccedilt r
Yukar daki ilkelere sad k kalarak AJAX uygulamalar oldukccedila faydal ve kullan l olacakt r
[37]
310 AJAX Kuumltuumlphaneleri ve Araccedillar
Kuumltuumlphaneler haz r fonksiyonlara kolayca eri im sa lar Ayr ca s k kullan lan var olan
kodlar tekrar yazarak zaman kaybedilmemesini sa lar A a da en ccedilok kullan lan AJAX
kuumltuumlphanelerine oumlrnekler verilmi tir
3101 Prototype
Prototype dinamik web uygulamalar yaratmak iccedilin kullanabilecek geli mi bir
kuumltuumlphanedir Accedil k kaynakl ve nesne tabanl kod kuumltuumlphanesidir Ajax iccedilin yaz lan
71
kuumltuumlphanelerin ilk oumlrneklerindendir ve di er haz r kuumltuumlphanelerin bir k sm prototypejs
kullanmaktad r [78]
3102 AJAX Gear Toolkit
AJAX olarak bilinen istemci tarafl tekni in buumltuumln avantajlar ndan faydalanmay
muumlmkuumln k lan bir araccedilt r XMLHttpRequest nesnelerini kullanarak internet taray c s n n
asenkron ccedila r yapmas n sa lar [78]
3103 AspNet Ajax
ASPNET AJAX ASPNET ile yap lan ve tuumlm nternet taray c lar nda ccedilal abilen
uygulamalar iccedilin Microsoft taraf ndan geli tirilen bir kuumltuumlphanedir Oumlnce Atlas daha sonra
ASPNET Ajax ad n alm t r ASPNET 20 ile kolay entegrasyon ASPNET 35 ile tam
entegrasyon sa lar Yeni nesil etkile imli arayuumlzler olu turmak iccedilin kullan l r [78]
3104 Dojo Toolkit
Accedil k kaynak kodlu bir javascript toolkit olup dhtml sorunlar n buumlyuumlk oumllccediluumlde ccediloumlzmuuml tuumlr
Arayuumlz programlama karma k kodlar n basite indirgenmesi toolkitin sa lad avantajlard r
Ayr ca dinamik web sitesi ya da ba ka ortamlar haz rlamay kolayla t ran ve sitenin daha
kullan l olmas n sa layan iccedilerikler sunar [78]
3105 MochiKit
Dreamweaver web uygulamalar iccedilin kullan lan ajax kuumltuumlphanelerinden birisidir E
zamanl olmayan davran lar iccedilin erteleme uygulamas n kulland ndan sunucuyla etkile im
halinde olan web sayfalar n n geli tirilmesinde tercih edilir [78]
3106 PHPLiveX
PHP ile yap lan uygulamalar iccedilin kullan lan bir kuumltuumlphanedir Versiyon 25 ile gelen
yenilikler ve optimizasyonlar kuumltuumlphanenin potansiyelini ciddi biccedilimde artt rm t r Di er php
tabanl kuumltuumlphaneler gibi php fonksiyonlar n javascript koduyla ccedila r r fakat di erlerine goumlre
daha az kodla kullan m sa lar [78]
72
3107 Sardalya (Sarmal Dinamik Altyap s )
Sardalya Dinamik AJAX Kuumltuumlphanesi DOM deste i olan tuumlm guumlncel taray c larda
ccedilal mak iccedilin tasarlanm bir AJAX Kuumltuumlphanesi dir Linux windows freebsd osx sun gibi
platformlarda ccedilal abilir Tuumlm taray c lardan ba ms z olarak ccedilal r ve kullan m s ras nda az
yer kaplar [78]
3108 Sajax
Sajax n accedil l m Simple Ajax Toolkit tir ASP ve PHP tabanl programlarda AJAX
uygulamalar geli tirmek iccedilin kullan lan bir kuumltuumlphanedir Buumltuumln sunucu tarafl platformlara
ccedila r goumlnderebilme yetene ine sahiptir [78]
3109 Solvent
AJAX uygulamalar n moduumller bir yap da gerccedilekle tiren farkl bir kuumltuumlphanedir
JavaScript ile yaz lm t r ve tuumlm taray c lardan ba ms z olarak ccedilal an bir AJAX uygulamas d r
Web uygulamalar n kuvvetlendirmek ve uygulamalar n geli tirme suumlrecini h zland rmak iccedilin
kullan l r [78]
31010 AjaxAC
AjaxAC accedil k kaynak kodlu php tabanl bir kuumltuumlphanedir AjaxAC ile varolan PHP
s n flar na ve MySQL veritaban na ek istek verilerini doumlnduumlrmek iccedilin geccedili oldukccedila kolayd r
[78]
31011 Xajax
Xajax Php JavaScript HTML XMLHttp ve XML kullanarak taray c ve sunucu
aras ndaki al veri i ve verileri goumlstermeyi gerccedilekle tirir Xajax ile geli tirilmi
uygulamalar sunucudaki php fonksiyonlar n ccedila rabilir ve sayfay yeniden yuumlklemeden
iccedileri ini guumlncelle tirebilir [78]
73
31012 Scriptaculous
Prototype tabanl bir js framework tuumlr Yap lan AJAX i lemleri prototype iccedilerisinde
bulunan nesneler ve fonksiyonlar ile yap l r [78]
311 AJAX Uygulamalar nda Kullan lan Di er Teknolojiler
AJAX istemci ile sunucu aras nda e zamanl olmayan ileti im sa layan bir teknolojiler
buumltuumlnuumlduumlr
3111 HTMLXHTML
stemci tarafl (client side) bir metin i aretleme dili olan XHTML (Extensible
HyperText Markup Language- Geli tirilebilir Metin aretleme Dili) dili XML soumlz dizimi ile
olu turulmu tur XHTML standart etiket ayarlar n tan mlarken spesifik bir yol kullan lmal d r
World Wide Web Consortium (W3C) duumlnyadaki Web geli tiriciler iccedilin olu turulmu ayn
standartla t r lm yakla m benimserler [66]
3112 CSS
XHTML de stil biccedilimlendirmesini sa lar Yuumlzlerce sayfan n tek merkezden
youmlnetilmesini sa lar Geleneksel youmlntemlerde her sayfan n biccedilimlendirme ayarlar birccedilok kod
sat r aras ndan stillerle ilgili olanlar n seccedililip duumlzeltilmesiyle yap l r CSS kullan lan
youmlntemlerde a a daki gibi bir kod parccedilas
tuumlm sayfalardaki stil ayarlar n n yap lmas n tek
merkeze ba lam t r
kabuk
width760px
background-colorEE7700
spot
colorEE7700
font-familyVerdana Comic Sans MS Helvetica sans-serif
74
AJAX ve CSS birlikte kullan larak masauumlstuuml ccedilal t r labilir EXE yaz l mlar ile ayn
h zda ve performansta ccedilal an web uygulamalar geli tirmek muumlmkuumln hale gelmi tir Google
belgelerinde Gmail bunun en buumlyuumlk oumlrne idir
Web sayfalar ndaki tuumlm iccedilerik biccedilimlendirmeler resimler vb istemciye
HTMLXHTML kodlar halinde goumlnderilir Bu kodlar sade ve basittir Bu da oldukccedila fazla
kullan c ya hitap edebilen web siteleri iccedilin oumlnemlidir Ccediluumlnkuuml internete ba land nda k s tl bir
bant geni li ine sahip kullan c lar daha az say da karakter iccedileren sayfalar daha k sa suumlrede
indirebilecektir Boumlylece kullan c lar toplam suumlrede daha fazla sayfa ziyaret edecektir
Sayfalar n h zl yuumlklenmesi kullan c lar n o siteler hakk ndaki memnuniyetini art racakt r
Ayr ca bu durum yaz c dostu sayfalar n olu turulmas nda etkilidir [79]
3113 XSLT
XSLT (Extensible Stylesheet Language Transformations Geni letilebilir
Biccedilimlendirme Dili Doumlnuuml uumlmleri) XML tabanl doumlkuumlmanlar n orijinal halini de i tirmeden
yeni bir dokuumlman olu turmak iccedilin kullan lan bir dildir [80] Oumlrne in bir XML doumlkuumlman n
XHTML ye doumlnuuml tuumlrmek iccedilin XSL doumlnuuml uumlmuuml (transformation) kullan labilir XMLnin iccedilindeki
hangi data nas l doumlnuuml tuumlruumllecek sorular ndan hangi sorusunun cevab XPath ile belirtilirken
nas l sorusunun cevab ise yine XML ile belirtilir [81]
75
4 FLEX
Flex MXML ActionScript 30 ve Flex s n f kuumltuumlphanelerinin birle iminden olu an
sunucu-istemci tabanl yeni bir teknolojidir Ayr ca Flex Flash uygulamalar ile derlenebilen
XML tabanl bir dil olarakta tan mlanabilir [84] Flex in ccedilal ma sistemati inin i lem ak
emas ekil 41 de goumlsterilmektedir
ekil 41 Flex uygulamalar n n i lem ak emas
ekil 41 de sol alt kouml eden sa uumlst kouml eye do ru i lem ak emas takip edildi inde
Flex Builder 3 ile geli tirlen appmxml uygulamas MXML derleyicide ccedilal t r ld nda bir swf
dosyas uumlretmektedir Ayr ca uumlretilen swf dosyas n n sunucu uumlzerinde test edilebilmesi iccedilin
birde html uzant l dosya olu turulur Flex in en oumlnemli oumlzelli i uumlretilen son uumlruumlnuumln swf
format nda olmas d r Ayr ca olay tutucu komut dizelerinin kolay kullan m
yaz l m n
olu turulmas nda Flex program n tercih nedeni olmas n sa lam t r
Adobereg Flexreg 3 yayg n olarak kullan lan taray c lar masauumlstleri ve i letim
sistemlerinde kolayl kla etkileyici web uygulamalar olu turmaya ve bak mlar n yapmaya
youmlnelik verimlili i yuumlksek bir programd r Accedil k kaynak (open source) altyap s na sahiptir
Eclipse tabanl bir plugin kuumlmesidir
Adobe firmas taraf ndan Flex Builder 3 Pro lisans
herhangi bir e itim kurumuna
ouml renci e itmen ya da ccedilal an olarak ba l olduklar n belgeleyenlere tamamen uumlcretsiz olarak
verilmektedir Kurulum tamamland ktan sonra ilk accedil l ekran ekil 42 de goumlsterildi i gibidir
[83]
76
ekil 42 Flex arayuumlzuuml
41 Adobereg Flexreg 3 Kurulumu ccedilin Gereken Minimum Sistem Gereksinimleri
Uygulama gerccedilekle tirmek iccedilin farkl i letim sistemleri iccedilin gerekli sistem
gereksinimleri a a da belirtilmi tir
411 Windows ccedilin Flex Builder 3 (Standart ve Profesyonel)
Flex in Windows kurulumu iccedilin gerekli minimum sistem gereksinimleri a a da
goumlsterilmektedir [83]
Intelreg Pentiumreg 4 i lemci
Microsoftreg Windowsreg XP Service Pack 2 veya Windows Vistareg Home (Premium
veya Basic) Business veya Ultimate
1 GB RAM (2 GB oumlnerilir)
500 MB kullan labilir sabit disk alan (eklenti yap land rmas iccedilin ek 500 MB gerekir)
Java Virtual Machine Sun JRE 142 Sun JRE 15 (dacirchildir) IBMreg JRE 15 veya
Sun JRE 16
Eklenti yap land rmas iccedilin Eclipse 322 33 ve 34 (Eclipse 33 Windows Vista iccedilin
oumlnerilir)
Adobe Flashreg Player 9 yaz l m
BEA Workshop 101
77
IBM Rational Software Architect 7003 (Yaln zca Eclipse 33 eklenti yap land rmas )
412 Macintosh ccedilin Flex Bu lder 3 (Standart ve Profesyonel)
Macintosh bilgisayarlar iccedilin gerekli minimum sistem gereksinimleridir [83]
PowerPCreg G4 125 GHz veya Intel i lemci
Mac OS X v1047 10410 veya 105
1 GB RAM (2 GB oumlnerilir)
500 MB kullan labilir sabit disk alan
Java Virtual Machine Appledan JRE 15 veya JRE 16
Eclipse 322 33 ve 34 (eklenti yap land rmas iccedilin)
Adobe Flash Player 9 yaz l m
78
5 CcedilEVR M Ccedil KATALOG TASARIMI F rat Uumlniversitesi Oumlrne i
AJAX teknolojisi AdobeMacromedia firmas n n geli tirdi i Flex program
ve
bile enleri kullan larak F rat Uumlniversitesinin 2009 ccedilevrimiccedili katalog ccedilal mas
herhangi bir
teknik bilgi gerektirmeden guumlncellenebilen alt yap s yla gerccedilekle tirilmi tir Kullan c arayuumlzuuml
olu turulurken XML tabanl bir gramer yap s
ve Flex program
kullan lm t r Bu tez
ccedilal mas nda sunucu olarak WampServer 20 kullan lm t r Katalog uygulamas n n kaynak
kodlar na ek boumlluumlmuumlnden bak labilir
AJAX teknolojisiyle ortaya ccedil kmaya ba layan ccedilevrimiccedili bro uumlrler ve kataloglar
internetteki Web uygulamalar uumlzerinde ccedilevrimiccedili hedeflerin oumlnemli bir boumlluumlmuumlne hacirckim
olmaktad r [37] Bu tez ccedilal mas da buna oumlrnek te kil etmektedir
Ccedilal man n olu um haritas na literatuumlr taramas yla ba lanm t r Bir sonraki ad mda
haz rlanacak olan program n oumlzellikleri belirlendi Bu a amadan sonra yaz l m iccedilin kullan lacak
program n seccedilimi yap ld Yaz l m algoritmas planlan p ekil 51 deki kodlama algoritmas
olu turulmu tur Yaz l m test edildi inde olu an hatalar giderilmi tir Ccedilal man n sayfa tasar m
yap larak son ekli verilmi tir
79
ekil 51 Kodlama algoritmas
Ba la
Harici verilerin XML dosyas ndan okunmas iccedilin HttpService s n f tan mland
De i ken tan mlamalar
Flex s n flar eklendi
Uygulamada kullan lacak resim boyutland rmas iccedilin maskeleme yap ld
Sunucu ile taray c ileti iminde AJAX scriptler kullan ld
Tuumlm sayfalar ekran goumlruumlntuumlsuuml iccedilin uygulama boyutland rmas yap ld
Zoom oumlzelli i iccedilin etiket tan mlamas ve buumlyuumltuumllmuuml sayfa goumlruumlntuumlsuuml iccedilin goumlruumlnuumlm
ayarlar fonksiyonu yaz ld
Navigasyon duuml meleri olu turuldu
XML format na uygun duuml uumlmler olu turuldu
Sayfa tasar m yap ld
Dur
A a daki kod sat rlar yla katalog ccedilal mas n n uygulama dosyas olan catamxml
dosyas na Flex iccedilinde ccedilal ma youmlntemlerini belirleyen faydal
s n flar dacirchil edilmi tir
lt[CDATA[
import mxutilsStringUtil
import mxrpcsoapLoadEvent
import mxcontrolsAlert
import mxrpceventsFaultEvent
import qscontrolsFlexBook
import qscontrolsflexBookClassesFlexBookPage
import qscontrolsflexBookClassesFlexBookEvent
import qscontrolsflexBookClassesWBookPageImpl
import qscachingContentCache
import mxrpceventsResultEvent
import mxrpchttpHTTPService
import mxcoreUIComponent
import mxmanagersPopUpManager
import compResimSec
import Kullan
import mxcoreScrollPolicy
import mxcollectionsArrayCollection
XML tan mlamalar diziler sunucu ba lant lar ve zoom i lemleri iccedilin gerekli de i ken
tan mlamalar a a daki kod sat rlar yla yap lm t r
private var aXML
[Bindable]
private var resimlerArrayCollection
private var dataSetHTTPService
private var resimdiziArray=new Array()
private var zoomYapBoolean=false
Katalo un local sunucu uumlzerinde ccedilal t r labilmesi iccedilin kaynak dosyas
Wamp kurulumu
sonras nda olu an www klasoumlruuml iccediline yerle tirilir E-katalog resimleri dinamik olarak data
dizinindeki imagesxml dosyas nda ccedilekilmektedir Katalog resimlerini de i tirmek iccedilin bu
dosyadaki xml duuml uumlmlerinin de i tirilmesi yeterlidir De i iklik yap lacak duuml uumlm oumlrne i
a a da goumlsterilmektedir
81
ltimage source=images2jpg thumb=images2jpg zoom=images2jpggt
Yukardaki sat rdaki duuml uumlmleri accedil klamak gerekirse source duuml uumlmuumlnde katalogda
goumlruumlnecek resim thumb duuml uumlmuumlnde e er as l resim (source) resmi yuumlklenene kadar ba ka bir
resim goumlruumlnmesi isteniyorsa o resmin kayna goumlsterilir Zoom duuml uumlmuuml ise sayfaya zoom
yap lmas esnas nda goumlruumlnecek resmin kayna n goumlsterir
Yukardaki 3 duuml uumlmden thumb duuml uumlmuuml iste e ba l olarak kullan l r Zoom
duuml uumlmuumlndeki resim as l resmin 100 buumlyuumlk hali olmal d r
ekil 52 Katalo un ilk sayfas n n ekran goumlruumlntuumlsuuml
E-katalog sayfalar n boyutunu kataloghtmlde tan ml olan object nesnesinin geni lik ve
yuumlkseklik oumlzelliklerinden almaktad r ekil 52 nin kaynak kodu a a da verilmi tir
ltscript src=ScriptsAC_RunActiveContentjs type=textjavascriptgtltscriptgt
ltscript type=textjavascriptgt
AC_FL_RunContent( idkatalogwidth894height653codebasehttpfpdownloadm
acromediacomgetflashplayercurrentswflashcabmoviekatalogqualityhighbgcolor
000000allowscriptaccesssameDomain ) end AC code
ltscriptgtltnoscriptgtltobject classid=clsidD27CDB6E-AE6D-11cf-96B8-444553540000
id=katalog width=894 height=653
82
codebase=httpfpdownloadmacromediacomgetflashplayercurrentswflashcabgt
ltparam name=movie value=katalogswf gt
ltparam name=quality value=high gt
ltparam name=bgcolor value=000000 gt
ltparam name=allowScriptAccess value=sameDomain gt
ltembed src=katalogswf quality=high bgcolor=000000
width=984 height=653 name=katalog align=middle
play=true
loop=false
quality=high
allowScriptAccess=sameDomain
type=applicationx-shockwave-flash
pluginspage=httpwwwadobecomgogetflashplayergt
ltembedgt
ltobjectgtltnoscriptgt
ekil 53 Katalo un 23 sayfa goumlruumlntuumlsuuml
Oumlrne in ekil 53 te kullan lan resimlerin width=447 height=613 boyutunda ise
resimlerin sayfada goumlruumlnmesi iccedilin html etiketindeki width oumlzelli ini 447x2=984 ve height
83
oumlzelli ini 613+40=653 eklinde duumlzenlenmesi gereklidir Yani width=resim geni li i X 2 ve
height=resim yuumlksekli i + 40 olmal d r
ekil 54 Katalo un sayfa ccedilevirme efektli goumlruumlntuumlsuuml
ekil 54 te goumlruumllen e-katalogun sayfay ccedilevirme oumlzelli i ile h z gibi i lemleri stylecss
dosyas nda tutulmaktad r Gerekli olmad kccedila bu dosya uumlzerinde de i iklik yap lmamas tavsiye
edilir Olu turulan stylecss dosyas n n kodlar a a da goumlsterilmi tir
FlexBook
color 000000
textRollOverColor 000000
border-thickness 0
border-style none
page-slope06
active-grab-area page
page-shadow-strength 1
curve-shadow-strength 1
auto-turn-duration 1500
Application
color F1F1CC
textRollOverColor FFFFFF
84
backgroundGradientColors FFFFFF FFFFFF
backgroundColor FFFFFF
SuperImage
border-thickness 0
border-style none
ekil 55 de goumlruumllen navigasyon ccedilubu unda 1 numara ile goumlsterilen alan istenilen
sayfaya konumland rma yap labilmesi iccedilin sayfa numaras n n girildi i kutudur 2 numara ile
goumlsterilen alan Sayfaya Git duuml mesine t kland nda istenilen sayfan n accedil lmas n sa layan
duuml medir 3 ve 4 numara ile goumlsterilen duuml meler Geri leri duuml meleridir Fare kontroluuml
olmadan da sayfalar aras nda gezinti yap labilmesini sa lar 5 numara ile goumlsterilen alan Tuumlm
Sayfalar duuml mesidir
ekil 55 Katalo un navigasyon ccedilubu u
Tuumlm sayfalar n accedil l r pencere iccedilerisinde goumlruumlntuumllenmesini sa layan fonksiyon a a daki
gibidir Kullanmxml sayfas nda ccedilekilen resimler pencerede goumlster komutuyla geni lik ve
yuumlksekli i ayarlan r Seccedililen nesneler customMoveend() komutuyla ekrana ta n r
private function tumsayfalar()void
Kullanshow_window(thisfalseapplicationwidth-10(applicationheight-60)2)
customMoveend()
customMoveplay()
ekil 56 da goumlruumllduuml uuml uumlzere ccedilevrimiccedili katalogdaki yuumlkluuml olan tuumlm sayfalar yukar dan
accedil lan bir pencere yard m yla goumlsterilir Tuumlm sayfalar
goumlster duuml mesi t kland nda goumlruumlnecek
resimler ile ilgi ayarlar ise data klasoumlruumlndeki onizlexml dosyas ndan ayarlanabilir Xml nin
esnek etiketleme yap s sayesinde onizlexml dosyas nda olu turulan ltsayfalargt etiketi aras na
a a daki kod sat rlar ccedilo alt larak olu turulmu tur
85
ltsayfagt
ltresim1gtimages2jpgltresim1gt
ltresim2gtimages3jpgltresim2gt
ltgitgt2ltgitgt
ltpagesgt23ltpagesgt
ltsayfagt
ekil 56 Tuumlm Sayfalar duuml mesi t kland ndaki ekran goumlruumlntuumlsuuml
Son olarak 6 numaral duuml me t kland nda + ve - konumlar n alarak buumlyuumlteccedil
oumlzelli i kullan l r ekil 57 de goumlsterildi i gibi imleccedil sayfa uumlzerinde gezdirilirken bu alan
uumlzerinde zoom yap larak yan sayfada buumlyuumltuumllmuuml goumlruumlntuuml sa lan r
86
ekil 57 Zoom oumlzelli i
Zoom oumlzelli inde resimler uumlzerindeki geni lik ve yuumlkseklik de erleri iccedilin if else blok
yap s kullan larak maskeleme fonksiyonu yaz lm t r Maskeleme fonksiyonu a a daki kod
sat rlar nda goumlsterilmektedir Fare nin x-y koordinatlar nda alaca de erlere goumlre fare nin
buumlyuumltuumllecek alan uumlzerinde gezinmesiyle yan sayfada buumlyuumltuumllmuuml goumlruumlntuuml elde edilmi tir
private function maskele(eMouseEvent)void if(zoomYap) if((mouseXgt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) )
maskex=0
img2visible=false img1visible=true img1x=(applicationwidth2)-mouseX img1y=-1mouseY else if((mouseXlt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) ) maskex=applicationwidth2 img1visible=false img2visible=true img2x=-1mouseX img2y=-1mouseY
Sayfa goumlruumlntuumllerinin maskelenmesinden sonra resimlerin kaynak dosyadan ccedilekilerek
ekrana buumlyuumltuumllmuuml hallerinin yans t lmas iccedilin a a daki fonksiyon olu turulmu tur
87
private function zoom()void
if(zoomerlabel==+) zoomerlabel=- if(img2source=aimage[bookcurrentPageIndex2]zoom) yuklemevisible=true
img2addEventListener(EventCOMPLETEbuyuk2_yuklendi) img2source=aimage[bookcurrentPageIndex2]zoom
if(aimagelength()gtbookcurrentPageIndex2+1) img1addEventListener(EventCOMPLETEbuyuk1_yuklendi)
img1source=aimage[bookcurrentPageIndex2+1]zoom
zoomYap=true else if(zoomerlabel==-)
zoomerlabel=+
setGorunum()
private function setGorunum()void zoomYap=false zoomerlabel=+ img1visible=false img2visible=false
88
6 SONUCcedil
Web 20 ak m ve zengin internet uygulamalar guumlnuumlmuumlz popuumller konular ndand r Bu
nedenle tez ccedilal mas
bu amaca youmlnelik olarak son teknolojiler kullan larak geli tirilmi tir
AJAX teknolojisi kullan larak kullan c n n istekleriyle sayfan n tamamen yenilenmeden
ilgili i lemin yuumlruumltuumllebilmesi sa lanmaktad r Geli tirilen sistem ccedilapraz taray c deste ine sahip
esnek ve kolay kullan labilir bir yap ya sahip oldu undan herhangi bir programlama bilgisine
sahip olmadan ki ilerin istenilen de i iklikleri yap labilece i bir alt yap ya sahiptir Bu ccedilal ma
nda en yenilikccedili internet yaz l mlar konusunda uygulama yapmak isteyen yaz l m
uzmanlar na kaynak te kil edecek bir ccedilal ma gerccedilekle tirilmi tir Yaz l m geli tiricileri ve
yaz l m mimarlar AJAX Flash Flex Appletler ve di er teknolojileri uygulamalar na kolayca
entegre edebilirler
Bu tez ccedilal mas kapsam nda Web de Ajax Tekni inin Bant Geni lik Optimizasyonuna
Etkisi ba l kl bir makale haz rlanm t r [85] Bu makalede Web Performance Suite 355941
program yla AJAX n performans testi yap lm t r Bu oumllccediluumlmler sonucunda elde edilen de erler
goumlstermi tir ki bir ebeke uumlzerinden goumlnderilecek sinyalin en duuml uumlk ve en yuumlksek frekanslar
aras nda gereksiz yere kullan lan aral n optime edilmesinde AJAX etkili bir youmlntemdir
AJAX n ccedilal ma prensibi sayesinde uygulamalar en iyi performansla gerccedilekle tirilir
AJAX teknolojisinin hala geli imi devam etmekte oldu undan baz eksik yanlar da
bulunmaktad r Oumlrne in taray c
uumlzerindeki Geri
fonksiyonu bazen beklendi i gibi
ccedilal mayabilir Dinamik olarak olu turulan sayfalar taray c n n oumlnceden i ledi i sayfalar
youmlneten mekanizmalar na kendini otomatik olarak kaydetmez bu yuumlzden taray c n n Geri
tu una bas ld nda istenen sayfa elde edilemeyebilir [86] Ba ka bir dezavantaj ise AJAX ile
olu turulan iccedileri in kodlar kaynak kodlar k sm nda goumlruumllememektedir Ayn zamanda Google
ve Yahoo gibi arama motorlar n n Web sayfalar na goumlnderdi i robot yaz l mlar da bu kodlar
goumlrememektedir Dolay s yla tamamen AJAX ile olu turulan iccedilerik arama motorlar n n sonuccedil
sayfalar nda listelenmezler Guumlnuumlmuumlzde yap lan Web sayfas n n arama motorlar nda
goumlruumlntuumllenmesi oldukccedila oumlnemlidir Fakat bir Web uygulamas ziyaretccedililer hakk nda oumlnemli
ki isel bilgilere sahipse bu bilgilerin arama motorlar nda herkes taraf ndan goumlruumlntuumllenmesini
sa lamas bir avantaja doumlnuuml uumlr [87] AJAX yerinde ve do ru bir ekilde kullan ld nda
uygulamalarda performans art n sa lar
Bu tez ccedilal mas nda Web 20 ak m n n ortaya ccedil k nedenleri ve RIA konseptine
duyulan ihtiyac n temeli irdelenmi tir Web 20 ak m nda oumlne ccedil kan uygulamalar ve ccedilal ma
sistematikleri incelenmi tir Oumlne ccedil kan bu uygulamalar n site tasar m nda dikkat ccedileken
89
oumlzelliklerine de inilmi tir AJAX teknolojisini olu turan bile enler incelenmi tir Bu inceleme
ve ara t rma sonucunda zengin internet uygulamalar na oumlrnek te kil edecek Web 20 ak m n n
ccedilekirde i olan AJAX teknolojisi kullan larak F rat Uumlniversitesi iccedilin ccedilevrimiccedili bir katalog
tasarlanm t r Bu tasar mda flexBook flexbookpage landscape wrapper zoomer gibi ek
bile enler kullan lm t r Navigasyon paneli tasarlanm t r Olu turulan tasar mda yerli ve
yabanc literatuumlr taramas yap larak emsallerindeki kullan l oumlzellikler projeye dahil edilmi tir
Projenin geli tirilmesi s ras nda izlenen ad mlar resimlenerek ortaya bir yol haritas ccedil kar lm t r
61 Oumlneriler
Bu tez ccedilal mas esas al narak ileride bu uygulamalar mobil cihazlar arac l yla
kullan labilirli i uumlzerine ara t rmalar suumlrduumlruumllebilir AJAX n uumlstuumln oumlzellikleri sayesinde Web
uumlzerinden yay nc l k ve mobil ileti im alanlar farkl bir boyut kazanm t r Birccedilok irket art k
ta nabilir cihazlar iccedilin Web 20 uygulamalar n AJAX la optimize etmeye ba lam t r Yeni bir
teknoloji olan AJAX la ta nabilir cihazlardaki performans bellek youmlnetimi s n rl tu giri i
gibi sorunlar n uumlstesinden gelinmesi hedeflenmelidir
AJAX kullan larak IDE (Integrated Development Environment) entegrasyonu Eclipse
iccedilin ba lant lar yaz labilir veya yap m servisi arac l yla do rudan IDE den yap m paketleri
geli tirilebilir Guumlnuumlmuumlzde oldukccedila popuumller olan accedil k kaynak kodlu yaz l m geli tirme
ortamlar nda entegre uygulamalar geli tirilebilir
Kullan c Arabirimi aretleme Beti i (User Interface Markup Language) s n f na dacirchil
edilecek gelece in en popuumller web tabanl teknolojilerinden biridir Flex geli tiricileri Adobe
Flex Builder - IDE ortam nda LiveCycle Data Services Java Coldfusion ASPNET JSP PHP
gibi popuumller web programlama dilleri yard m yla etkile imli ve guumlvenli web tabanl projeler
geli tirilebilir [82]
90
KAYNAKLAR
1 nternet Web 20 httptrwikipediaorgwikiWeb_20 Eri im tarihi 03092008
2 Oumlzer Z Web Teknolojileri ve AJAX Seminer Ccedilal mas Fen Bilimleri Enstituumlsuuml sf2
2007
3 nternet Web 20 Nedir wwworeillynetcompubaoreillytimnews20050930what-is-
web-20html Eri im tarihi 04102008
4 nternet httpravenyoungspaceslivecomblogcns17376F4C11A91E0E3717entry
Eri im tarihi 03092008
5 Mcluhan M Povers B R Ccedileviren Bahar Oumlcal Duumlzgoumlren Global Koumly 21 Yuumlzy lda
Yeryuumlzuuml Ya am nda ve Medyada Meydana Gelecek Doumlnuuml uumlmler Scala Yay nc l k 2001
6 nternet RIA konsepti httpwwwademaktepecomGunlukDetayaspxId=122 Eri im
Tarihi 26062008
7 Onat F A man Ouml K l ccedil A Sosyal A Sitelerinin Reklam Ve Halkla li kiler Ortamlar
Olarak De erlendirilmesi Sayfalar 3-6 2008
8 nternet httpi8tinypiccom6kymb0kgif Eri im tarihi 11072008
9 nternet DFA httpwwwdoubleclickcomproductsdfaindexaspx Eri im tarihi
14022009
10 nternet Adsensecom
httpswwwgooglecomadsensesupportbinanswerpyanswer=9712amptopic=13488 Eri im
tarihi 15112008
11 nternet DoubleClickcom wwwdoubleclickcom Eri im 13102008
12 nternet Adsense ho geldiniz wwwgooglecomadsense Eri im 18112008
13 nternet Flicker Tan m httptrwikipediaorgwikiFlickr Eri im tarihi 09032009
14 nternet Flicker Foto raf Payla m Sitesi httpwwwflickrcom Eri im 18022009
15 nternet BitTorent httptrwikipediaorgwikiBitTorrent Eri im tarihi 05012009
16 nternet Bittorent kulan m rehberi httpwwwbittorrentcombtusersguidesbeginners-
guide Eri im tarihi 05012009
17 nternet Bittorent kullan m k lavuzu httpwwwshukkocombittorrent_kilavuzu Eri im
tarihi 05012009
18 nternet Bittorent ccedilal ma mant httpwwwforumelbizbittorent-nedirgne-ise-
yarargresimli-detayli-super-anlatim-
t12836htmls=17f7b3147d97799d31c32b09e87d43e4ampamp Eri im tarihi 05012009
19 nternet Soumlzluumlk
91
httpwwwparliamentvicgovauSARCE-DemocracyFinal_ReportGlossaryhtm Eri im
tarihi 05012009
20 FU F LIU L WANG L Empirical Analysis of Online Social Networks in the Age of
Web 20 2007 Physica A Statistical Mechanics and its Applications Volume 387 Issues 2-3
Sayfalar 675-684
21 nternet Facebook httptrwikipediaorgwikiFacebook Eri im tarihi 06012009
22 nternet Facebook makale httpturkinternetcomhaberyazigosterphp3yaziid=22787
Eri im tarihi 06012009
23 nternet Facebook istatistiksel bilgiler
httpwwwinsidefacebookcom20090107facebook-growth-continuing-surpasses-150-
million-monthly-active-users Eri im tarihi 06012009
24 nternet Peter Thiel Facebook haberleri
httpwwwbusinessweekcomtechnologycontentmar2009tc2009031_743025htm Eri im
tarihi 06012009
25 nternet Blog httptrwikipediaorgwikiBlog Eri im tarihi 13022009
26 nternet Technorati httptechnoratimediacom Eri im tarihi 13022009
27 nternet Blog ara t rmas httpwwwmmistanbulcommakaletitlebloglarin-satin-alma-
kararlarina-etkisi-uzerine-bir-arastirma Eri im tarihi 13022009
28 nternet Wiki nedir httpyunushacettepeedutr~b0343579baglantilerwikinedirhtm
Eri im tarihi 13022009
29 nternet nternette wikinin yeri
httpogrencihacettepeedutr~besstindexphp20080603internette-wikinin-yeri Eri im
tarihi 14022009
30 Bergstedt S Wiegreffe S Wittmann J Moller D Content Management Systems and e-
Learning-Systems
A Symbiosis Proceedings of the The 3rd IEEE International Conference
on Advanced Learning Technologies (ICALT 03)
31 nternet ccedilerik Youmlnetim Sistemleri
httptrwikipediaorgwikiC4B0C3A7erik_yC3B6netim_sistemi Eri im tarihi
17022009
32 nternet ccedilerik Youmlnetim Sistemleri httpwwwmsxlabsorgforuminternet-bilgisayar-
dunyasi22262-icerik-yonetim-sistemi-cms-content-management-systemhtml Eri im tarihi
17022009
33 nternet Web 20 Tasar m Araccedillar httpwwweburhancomhazir-web-20-tasarim-
araclari Eri im tarihi 06022009
92
34 nternet Tasar m rehberi httpwwwhasanyalcincomweb-20-tasarim-rehberi-yansima-
ikon-ve-flaslarref=GuzelsTV Eri im tarihi 06022009
35 nternet AJAX kaynak makalesi
httpadaptivepathcompublicationsessaysarchives000385php Eri im tarihi 06022009
36 Keith J Bulletproof Ajax New Riders yay nc l k Sayfa 3 2007
37 Zakas N C McPeak J Fawcett J Professional Ajax 2nd Edition Wiley Publishing Inc
Sayfalar 5-18 2007
38 Gehtland J Galbraith B Almaer D Pragmatic Ajax A Web 20 Primer The Pragmatic
Programmers LLC sf1 2005
39 Babin L Beginning Ajax with PHP From Novice to Professional Apress Yay nc l k
Sayfa 6 2007
40 Crane D B beault B Sonneveld J Goddard T Gray C Venkataraman R Ve Walker J
Ajax in Practice Manning Publications Co Sayfalar 56 2007
41 Eichorn J Understanding AJAX Using JavaScript to Create Rich Internet Applications
August 11 2006 Sayfalar5-50
42 Ballard P SAMS Teach Yourself Ajax in 10 Minutes Sayfalar 6-78 28 Nisan 2006
43 nternet httpwwwipucuwebtraspders17php Eri im tarihi
44 Ullman C Dykes L Beginnig AJAX Wiley Publishing Inc Sayfa 44-100 2007
45 Zakas N C McPeak J Fawcett J Professional Ajax Wrox Press Chapter 2 Ajax
Basics Ajax Communication Techniques 2006
46 nternet Cross-Browser (Ccedilapraz Taray c Deste i) httpblogceyhunaksancomcross-
browser-capraz-tarayici-destegi Eri im 11032009
47 nternet
httpwwwyazgelistirnetviewtopicphpp=160ampsid=a49d3c26dd8e14e02e65bb222d6bcc39
Eri im 31032009
48 Jacobi J Fallows J R Pro JSF and Ajax Building Rich Internet Components Apress
Sayfa 175 2006
49 Schutta N T Asleson R Pro Ajax and Java Apress Sayfa 10 2006
50 Lauriat S M Ajax Architecture and Best Practices Pearson Education Inc Sayfa 25
2008
51 Powers S Adding Ajax OReilly yay nc l k June 01 2007
52 nternet Asenkron ve Senkron Meselesi httpAJAX-trcomasenkron-ve-senkron-meselesi
Eri im tarihi 02112008
53 Holzner S Ajax For Dummies Wiley Publishing Inc sf 40 2006
93
54 nternet httpwwwecma-internationalorgpublicationsfilesECMA-STEcma-262pdf
Eri im tarihi 06032009
55 Darie C Brinzarea B Chereche -To a F Bucica M AJAX and PHP Building
Responsive Web Applications Packt Publishing Sayfa42 2006
56 Olson S D Ajax on Java OReilly Yay nc l k Chapter 2 February 23 2007
57 nternet httpiibferciyesedutrggwebjavascriptpdf Eri im tarihi 06032009
58 nternet httpwwwmutasyonnetkitaplarasp hakk oumlcal javascript ders notu sf8 Eri im
tarihi 06032009
59 nternet httpwwwbilgisayarogrencomjava5doc Eri im tarihi 06032009
60 Asleson R Schutta N T Foundations of Ajax 2006 sf29
61 Wells C Securing Ajax Applications O Reilly Media Inc sf86 July 2006
62 nternet httpwwww3schoolscomdomdom_introasp Eri im tarihi 19032009
63 nternet httpwwww3orgTRREC-DOM-Level-1introductionhtml Eri im tarihi
19032009
64 nternet httpwwwberkerpeksagcomblogdom-document-object-model-belge-nesne-
modeli Eri im tarihi 19032009
65 nternet httpwwwrssnedircomxml_nedirphp Eri im tarihi 19032009
66 Jacobs S Beginning XML with DOM and Ajax From Novice to Professional Apress
Yay nc l k sf2631 2006
67 nternet
httpwwwcclubmetuedutrnenedirXML+(Extensible+Markup+Language)+Nedir3F
Eri im tarihi 20032009
68 nternet httpbelgelerorgelkitabixmldoc-howto_structhtml Eri im tarihi 20032009
69 nternet httpwwwverivizyoncomdetailaspcid=149 Eri im tarihi 20032009
70 nternet httpwwwbilgisayardershanesicomxml1htm Eri im tarihi 21032009
71 Johnson D White A Charland A ENTERPRISE AJAX Strategies for Building High
Performance Web Applications Prentice Hall Yay nc l k Sayfa 108 2008
72 nternet httpwwww3orgTRxhtml1dtds Eri im tarihi 01042009
73 nternet httpwwwcsharpnedircommakalegosteraspMId=51 52 Eri im tarihi
01042009
74 nternet httpofficemicrosoftcomtr-trinfopathHP010967301055aspx Eri im tarihi
01042009
75 nternet
httpwwwkodpaylascomviewtopicphpt=959ampsid=e5167bdea935943ed9bbdc91ee218c53
Eri im tarihi 01042009
94
76 nternet httpwwww3schoolscomXhtml Eri im tarihi 02042009
77 nternet httpwwwzvonorgxxlXMLTutorialOutput_turexample6html Eri im tarihi
02042009
78 nternet httpwwwbidbituedutrd=837 Eri im tarihi 03042009
79 nternet httpwwwcssnedircom Eri im tarihi 03042009
80 nternet httptrwikipediaorgwikiXSLT Eri im tarihi 03042009
81 nternet httpwwwbilisim-kulubucomsozluksozlukphpe=XSLT Eri im tarihi
08042009
82 nternet httpwwwsanalkursnetadobe-flex-nedir--1081html Eri im tarihi 10042009
83 nternet httpwwwadobecomtrproductsflex Eri im tarihi 11042009
84 nternet httpwwwtrflexcomp=4 Eri im tarihi 11042009
85 Oumlzer Z Varol A Web de Ajax Tekni inin Bant Geni lik Optimizasyonuna Etkisi
Bilimde Modern Youmlntemler Sempozyumu 2008
86 nternet httptrwikipediaorgwikiAJAX(programlama) Eri im tarihi 01062009
87 nternet httpajax-trcomajaxi-anlamak Eri im tarihi 01062009
95
OumlZGECcedilM
Zeynep OumlZER AYDO MU
zeynep_ozermsncom
F rat Uumlniversitesi Teknik E itim Fakuumlltesi
Elektronik Bilgisayar E itimi Boumlluumlmuuml
ELAZI
1983 y l nda Elaz da do du lk orta ve lise ouml renimini Elaz da tamamlad ktan
sonra 2002 y l nda F rat Uumlniversitesi Teknik E itim Fakuumlltesi Elektronik Bilgisayar E itimi
Bilgisayar Ouml retmenli i Boumlluumlmuuml nuuml kazand 2006 y l nda bu boumlluumlmden mezun oldu 2006
y l nda F rat Uumlniversitesi Fen Bilimleri Enstituumlsuuml Elektronik Bilgisayar E itimi Ana Bilim Dal
Bilgisayar Sistemleri Bilim Dal nda yuumlksek lisans e itimine ba lad 2007 y l ubat ay nda
Elaz n Karakoccedilan ilccedilesinin Yenice koumlyuumlnde h J Kd Uumlt m Mahir Oumlzdemir lkouml retim
Okulu nda Bilgisayar Ouml retmeni olarak goumlreve ba lad uan Elaz Korgeneral Hulusi Say n
Lisesi nde Bilgisayar Ouml retmeni olarak goumlrevini suumlrduumlrmektedir Yabanc dili ngilizce dir
Fatih AYDO MU ile evlidir
96
EK
Katalog ccedilal mas n n uygulama dosyas olan catamxml kullanmxml ve
imagepagemxml dosyalar n n kaynak kodlar a a daki gibidir
Catamxml
ltxml version=10 encoding=utf-8gt
ltmxApplication xmlnsmx=httpwwwadobecom2006mxml
layout=absolute
xmlnscontrols=qscontrols
backgroundColor=FFFFFF
creationComplete=init() color=FFFFFF xmlnslocal= xmlnscomp=comp
horizontalScrollPolicy=off verticalScrollPolicy=off borderColor=050505 borderStyle=solid
borderThickness=2gt
ltmxStyle source=stylecss gt
ltmxScriptgt
lt[CDATA[
import mxutilsStringUtil
import mxrpcsoapLoadEvent
import mxcontrolsAlert
import mxrpceventsFaultEvent
import qscontrolsFlexBook
import qscontrolsflexBookClassesFlexBookPage
import qscontrolsflexBookClassesFlexBookEvent
import qscontrolsflexBookClassesWBookPageImpl
import qscachingContentCache
import mxrpceventsResultEvent
import mxrpchttpHTTPService
import mxcoreUIComponent
import mxmanagersPopUpManager
import compResimSec
import Kullan
import mxcoreScrollPolicy
import mxcollectionsArrayCollection
private var aXML
[Bindable]
private var resimlerArrayCollectioncomboresim
97
private var dataSetHTTPService
private var resimdiziArray=new Array()
private var zoomYapBoolean=false
private function init()void
maskex=0
maskey=0
maskewidth=applicationwidth2
maskeheight=applicationheight-40
addEventListener(MouseEventMOUSE_MOVEmaskele)
addEventListener(tamam sayfa_secildi)
dataSet = new HTTPService()
dataSeturl = (dataimagesxml)
dataSetresultFormat = e4x
dataSetsend()
dataSetaddEventListener(FaultEventFAULT onFault)
dataSetaddEventListener(ResultEventRESULT onResult)
var wNumber=new Number
var hNumber=new Number
w=Applicationapplicationwidth
h=Applicationapplicationheight
bookwidth=w
bookheight=h-40
yuklemevisible=false
yuklemesource=assetsloadinggif
yuklemeaddEventListener(EventCOMPLETEyukleme_yuklendi)
private function yukleme_yuklendi(eventEvent)void
yuklemex=(applicationwidth2)-100
yuklemey=(applicationheight-40)2
private function maskele(eMouseEvent)void
if(zoomYap)
98
if((mouseXgt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) )
maskex=0
img2visible=false
img1visible=true
img1x=(applicationwidth2)-mouseX
img1y=-1mouseY
else if((mouseXlt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) )
maskex=applicationwidth2
img1visible=false
img2visible=true
img2x=-1mouseX
img2y=-1mouseY
maskex=mouseX
maskey=mouseY
private function onFault(eEvent)void
trace(e)
private function onResult(eResultEvent)void
a=new XML(eresult)
bookcontent = dataSetlastResultimage
bookaddEventListener(FlexBookEventTURN_STARTloadContent)
bookaddEventListener(FlexBookEventTURN_ENDloadContent)
private function sayfa_secildi(eventResimSec)void
99
sayfatext=eventyeniResim
git()
mxcontrolsAlertshow(sseventyeniResim)
private function loadContent(eventFlexBookEvent)void
setGorunum()
var pageImagePage = ImagePage(eventrenderer)
pageload()
sayfatext=(bookcurrentPageIndex2)toString()
resimdizi[bookcurrentPageIndex]=pagethumbsource
mxcontrolsAlertshow(bookcurrentPageIndextoString())
private function buyuk1_yuklendi(eventEvent)void
yuklemevisible=false
img1width=applicationwidth
img1height=(applicationheight-40)2
img1x=0
img1y=0
private function buyuk2_yuklendi(eventEvent)void
yuklemevisible=false
img2width=applicationwidth
img2height=(applicationheight-40)2
img2x=0
img2y=0
private function tumsayfalar()void
Kullanshow_window(thisfalseapplicationwidth-10(applicationheight-60)2)
customMoveend()
customMoveplay()
private function zoom()void
if(zoomerlabel==+)
zoomerlabel=-
if(img2source=aimage[bookcurrentPageIndex2]zoom)
yuklemevisible=true
img2addEventListener(EventCOMPLETEbuyuk2_yuklendi)
100
img2source=aimage[bookcurrentPageIndex2]zoom
if(aimagelength()gtbookcurrentPageIndex2+1)
img1addEventListener(EventCOMPLETEbuyuk1_yuklendi)
img1source=aimage[bookcurrentPageIndex2+1]zoom
zoomYap=true
else if(zoomerlabel==-)
zoomerlabel=+
setGorunum()
private function setGorunum()void
zoomYap=false
zoomerlabel=+
img1visible=false
img2visible=false
private function next()void
mxcontrolsAlertshow(bookcurrentPageIndextoString() bookpageCounttoString())
if(bookcurrentPageIndex+1 lt bookpageCount)
mxcontrolsAlertshow(--resimdizi[bookcurrentPageIndex])
setGorunum()
bookturnToPage(bookcurrentPageIndex + 1)
private function previous()void
if(bookcurrentPageIndex gt 0)
setGorunum()
bookturnToPage(bookcurrentPageIndex -1)
private function git()void
var s_nouint = new uint
s_no=Mathfloor(uint(sayfatext)2)
101
if(s_nogt0 ampamp s_noltbookpageCount)
bookturnToPage(s_no)
setGorunum()
]]gt
ltmxScriptgt
lt-- 614x453 --gt
ltmxParallel id=customMove target=Kullangt
ltmxMove duration=2000 xTo=(100) 2 yTo=(200) 2 gt
ltmxWipeRight duration=2000 gt
ltmxParallelgt
ltmxVBoxgt
ltmxHBoxgt
ltcontrolsFlexBook id=book width=100 height=100 x=0 y=0 horizontalCenter=0
verticalCenter=0
animateCurrentPageIndex=true
showCornerTease=false
edgeAndCornerSize=150
itemRenderer=ImagePage
animatePagesOnTurn=true
itemSize=halfPage cornerRadius=0 themeColor=1D99E8
backgroundAlpha=10 alpha=10gt
ltcontrolsFlexBookgt
ltmxHBoxgt
ltmxHBox height=30 width=100 verticalAlign=middle
horizontalAlign=center color=B65F5F backgroundColor=121313gt
ltmxSpacer width=10gt
ltmxSpacergt
ltmxTextInput borderColor=FFFFFF width=34 height=24 id=sayfa
color=FFFFFF fontSize=11 text=0 alpha=001gt
ltmxButton click=git() color=ffffff fontWeight=bold fontSize=11
width=114 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label=Sayfaya Git themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxSpacer width=60gt
102
ltmxSpacergt
ltmxButton click=previous() color=ffffff fontWeight=bold fontSize=11
width=70 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label=Geri themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxButton click=next() color=ffffff fontWeight=bold fontSize=11
width=70 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label= leri themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxButton click=tumsayfalar() color=ffffff fontWeight=bold fontSize=11
width=134 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label=Tuumlm Sayfalar themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxButton id=zoomer click=zoom() color=ffffff fontWeight=bold
fontSize=14 width=44 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00
00] label=+ themeColor=EDF2F5 textRollOverColor=EDD617 fontFamily=Arialgt
ltmxSpacer width=5gt
ltmxHBoxgt
ltmxSpacer height=10gt
ltmxVBoxgt
ltmxCanvas id=maske x=224 y=168 width=200 height=168
verticalScrollPolicy=off horizontalScrollPolicy=off borderThickness=0 borderColor=000000
borderStyle=solidgt
ltmxImage id=img1 x=0 y=0gt
ltmxImage id=img2 x=40 y=0gt
ltmxCanvasgt
ltmxImage x=10 y=144 id=yuklemegt
ltmxApplicationgt
103
Kullanmxml
ltxml version=10 encoding=utf-8gt
ltmxTitleWindow xmlns= xmlnsmx=httpwwwadobecom2006mxml
creationComplete=on_creation_complete()
styleName=popupWindow showCloseButton=true
paddingBottom=0 paddingTop=0 paddingLeft=0 paddingRight=0
height=200 width=100 alpha=09 borderAlpha=1gt
ltmxScriptgt
lt[CDATA[
import mxcontrolsAlert
import mxcollectionsArrayCollection
import mxrpceventsResultEvent
[Bindable]
private var sayfalarArrayCollection
[Bindable]
private var introString =
import mxeventsCloseEvent
import mxmanagersPopUpManager
import mxcoreApplication
import mxeventsDragEvent
import mxmanagersDragManager
import mxcoreDragSource
import compResimSec
import koraxcontrolsColorPickerResimSecEvent
private var m_parentDisplayObject = null
private function myResult(eventResultEvent)void
sayfalar = eventresultsayfalarsayfa
private function sayfaac(eventEvent)void
wndwith_last_preved()
mxcontrolsAlertshow(myTileselectedItemgittoString())
uyeler = eventresultsayfalarsayfa
104
private function on_creation_complete()void
myHTTPsend()
private static var wndKullan = null
public static function show_window(parentDisplayObject
modalBooleanwNumberhNumber)void
if (wnd == null)
wnd = new Kullan()
wndaddEventListener(mxeventsCloseEventCLOSE on_close_event)
wndm_parent = parent
if (wndisPopUp)
PopUpManageraddPopUp(wnd DisplayObject(Applicationapplication) modal)
PopUpManagercenterPopUp(wnd)
else
PopUpManagerbringToFront(wnd)
wndstart_init()
wndx=0
wndy=0
wndwidth=w
wndheight=h
wndmyTilewidth=w-20
wndmyTileheight=h-40
private function with_last_preved()void
if (m_parent = null) m_parentdispatchEvent(new ResimSec(tamam
myTileselectedItemgit))
private static function on_close_event(eventCloseEvent)void
if (wnd == null) return
PopUpManagerremovePopUp(wnd)
wnd = null
105
private function yardim()void
Kullanshow_window(thisfalse)
]]gt
ltmxScriptgt
ltmxHTTPService id=myHTTP url=dataonizlexml
result=myResult(event) showBusyCursor=truegt
ltmxTileList id=myTile dataProvider=sayfalar change=sayfaac(event)
itemRenderer=compUyeSayfasi width=100 height=147 rowHeight=110 columnWidth=120
rowCount=2gt
ltmxTitleWindowgt
106
ImagePagemxml
ltxml version=10 encoding=utf-8gt
ltmxCanvas xmlnsmx=httpwwwadobecom2006mxml width=600 height=400
xmlnscontrols=qscontrols
backgroundColor=FFFFFF horizontalScrollPolicy=off verticalScrollPolicy=offgt
ltmxstatesgt
ltmxState name=loadingStategt
ltmxAddChild position=lastChildgt
ltmxImage id=loadingContent horizontalCenter=0 verticalCenter=-6
source=assetsloadinggif gt
ltmxAddChildgt
ltmxStategt
ltmxstatesgt
ltmxtransitionsgt
ltmxTransition fromState= toState=loadingStategt
ltmxFade alphaTo=1 target=loadingContent duration=1000gt
ltmxTransitiongt
ltmxTransition toState= fromState=loadingStategt
ltmxSequencegt
ltmxFade alphaTo=0 target=loadingContent duration=1000gt
ltmxRemoveChildAction target=loadingContent gt
ltmxSequencegt
ltmxTransitiongt
ltmxtransitionsgt
ltmxScriptgt
lt[CDATA[
import mxcontrolsAlert
private var _loadedBoolean = false
public function load()void
if(_loaded)
return
_loaded = true
fullsource = datasourcetoString()
mxcontrolsAlertshow (fullsource)
107
currentState = loadingState
]]gt
ltmxScriptgt
ltcontrolsSuperImage left=0 right=0 top=0 bottom=0 id=thumb
source=datathumbtoString() gt
ltcontrolsSuperImage left=0 right=0 top=0 bottom=0 id=full complete=currentState = gt
ltmxCanvasgt
This document was created with Win2PDF available at httpwwwwin2pdfcomThe unregistered version of Win2PDF is for evaluation or non-commercial use onlyThis page will not be added after purchasing Win2PDF
TC
FIRAT UumlN VERS TES
FEN B L MLER ENST TUumlSUuml
AJAX TEKNOLOJ S KULLANARAK CcedilEVR M Ccedil
KATALOG TASARIMI
Zeynep OumlZER AYDO MU
YUumlKSEK L SANS TEZ
ELEKTRON K VE B LG SAYAR E T M ANAB L M DALI
Bu tez tarihinde a a da belirtilen juumlri taraf ndan oybirli ioyccediloklu u ile ba ar l ba ar s z olarak de erlendirilmi tir
Dan man Prof Dr Asaf VAROL
Uumlye
Uumlye
Bu tezin kabuluuml Fen Bilimleri Enstituumlsuuml Youmlnetim Kurulu nun tarih ve say l karar yla onaylanm t r
TE EKKUumlR
Bu tez ccedilal mas
suumlresince desteklerini esirgemeyen Dan man m Say n Prof Dr Asaf
VAROL a Prof Dr Z Hakan AKPOLAT a ccedilal mam n her a amas nda sevgi ve guumlvenlerini
her zaman hissetti im aileme e im Fatih AYDO MU a ve oumlzellikle karde im Ya mur
OumlZER e te ekkuumlrlerimi ve uumlkranlar m sunar m
Zeynep OumlZER AYDO MU
I
Ccedil NDEK LER
TE EKKUumlR
Ccedil NDEK LER I
EK LLER L STES
IV
TABLO L STES
VI
KISALTMALAR L STES
VII
OumlZET IX
ABSTRACT X
1 G R
1
11 Tez Ccedilal mas n n Amac
1
12 Tez Ccedilal mas n n Kapsam
1
2 WEB 20 AKIMI 2
21 Web 20 Platformunda Oumlne Ccedil kan Popuumller Uygulamalar 4
211 Double Click - Google AdSense 4
212 Flickr 5
213 BitTorrent 5
214 Sosyal A Siteleri 8
2141 Facebook 8
215 Web Guumlnluumlkler 11
216 Wiki 11
217 ccedilerik Youmlnetim Sistemleri 13
218 Etiketleme (Folksonomi) 14
22 Web 20 da Site Tasar m nda Dikkat Ccedileken Oumlzellikler 14
221 Logolar 14
222 Butonlar 15
223 Arka Planlar 15
224 Ccedilerccedileveler 16
225 Menuumller 16
3 AJAX 17
31 Google Suggest 18
32 Google Maps 18
33 Neden AJAX 19
34 AJAX Metodolojisi 23
341 HTTP Requests Nesnesi 24
II
342 HTTP Request Nesnesinin Oumlzellikleri ve Youmlntemleri 25
343 HTTP Response Nesnesi 26
35 AJAX leti im Teknikleri 27
351 XMLHttp Requests (XHR) Nesnesi 27
36 AJAX Olu turan Bile enler 34
361 E zamanl Olmayan leti im 34
362 E zamanl leti im 35
363 Javascript 36
37 Basit Bir AJAX Oumlrne i 49
38 XML 51
381 Oumlrnek XML Belgesi Olu turma 53
382 XML Dokuumlman n n Yap s
55
383 XML nin Soumlz Dizim Kurallar
67
384 XML Dokuumlmanlar n n leyi i ve Sunumu 69
39 AJAX Prensipleri 69
310 AJAX Kuumltuumlphaneleri ve Araccedillar
70
3101 Prototype 70
3102 AJAX Gear Toolkit 71
3103 AspNet Ajax 71
3104 Dojo Toolkit 71
3105 MochiKit 71
3106 PHPLiveX 71
3107 Sardalya (Sarmal Dinamik Altyap s ) 72
3108 Sajax 72
3109 Solvent 72
31010 AjaxAC 72
31011 Xajax 72
31012 Scriptaculous 73
311 AJAX Uygulamalar nda Kullan lan Di er Teknolojiler 73
3111 HTMLXHTML 73
3112 CSS 73
3113 XSLT 74
4 FLEX 75
41 Adobereg Flexreg 3 Kurulumu ccedilin Gereken Minimum Sistem Gereksinimleri 76
411 Windows ccedilin Flex Builder 3 (Standart ve Profesyonel) 76
III
412 Macintosh ccedilin Flex Bu lder 3 (Standart ve Profesyonel) 77
5 CcedilEVR M Ccedil KATALOG TASARIMI F rat Uumlniversitesi Oumlrne i 78
6 SONUCcedil 88
61 Oumlneriler 89
KAYNAKLAR 90
OumlZGECcedilM
95
EK 96
IV
EK LLER L STES
Sayfa
ekil 21 Web 20 kavram
2
ekil 22 Web 20 ak m nda oumlne ccedil kan uygulamalar 3
ekil 23 Doubleclick ve Google Adsense sitelerinin logolar 4
ekil 24 Flickr sitesinin logosu 5
ekil 25 ccedilerik da t m sitelerinde bittorrent site logosu 5
ekil 26 Torrent program n n anasayfas
6
ekil 27 Torrent program n n arayuumlzuuml 7
ekil 28 Facebook kullan c say s n n aylara goumlre da l m grafi i 9
ekil 29 Aylara goumlre facebook ve myspace site analizi 10
ekil 210 Vikipedi oumlzguumlr ansiklopedi sitesinin logosu 12
ekil 211 Oumlrnek etiket bulutu 14
ekil 212 Yans mal logo oumlrne i 15
ekil 213 Web 20 da buton oumlrnekleri 15
ekil 214 Web 20 da arka plan oumlrnekleri 15
ekil 215 Web 20 da ccedilerccedileve yap s na oumlrnek 16
ekil 216 Web 20 da menuuml oumlrne i 16
ekil 31 Jesse James Garrett in makale goumlruumlntuumlsuuml 17
ekil 32 Google Suggest ekran goumlruumlntuumlsuuml 18
ekil 33 Google Maps ekran goumlruumlntuumlsuuml 18
ekil 34 Geleneksel sunucularda istekcevap modeli 20
ekil 35 AJAX n asenkron istekcevap modeli 20
ekil 36 Klasik Web uygulamalar nda t kla-bekle doumlnguumlsuuml 21
ekil 37 T kla-T kla interaktif AJAX uygulamas
21
ekil 38 Geleneksel Web ileti im modeli ile AJAX ileti im modeli 21
ekil 39 Web uygulamas ndaki cevap ak
22
ekil 310 AJAX uygulamalar ndaki istek ak
22
ekil 311 Normal Web ile AJAX uygulamalar n n kar la t rmas
23
ekil 312 Geleneksel istekcevap (requestresponse) youmlntemi 23
ekil 313 Standart AJAX etkile imi 32
ekil 314 E zamanl olmayan ileti im modeli 35
ekil 315 E zamanl ileti im modeli 36
ekil 316 Javascript nesneleri 44
V
ekil 317 DOM a accedil yap s
46
ekil 318 AJAX oumlrne i 49
ekil 319 sonuchtml sayfas n n ekran ccedil kt s
51
ekil 320 denemexml dosyas n n a accedil yap s
53
ekil 321 XML belgesi 55
ekil 322 Oumlrnek bir XML dokuumlman yap s
56
ekil 323 denemexsd nin ekran goumlruumlntuumlsuuml 65
ekil 41 Flex uygulamalar n n i lem ak emas
75
ekil 42 Flex arayuumlzuuml 76
ekil 51 Kodlama algoritmas
79
ekil 52 Katalo un ilk sayfas n n ekran goumlruumlntuumlsuuml 81
ekil 53 Katalo un 23 sayfa goumlruumlntuumlsuuml 82
ekil 54 Katalo un sayfa ccedilevirme efektli goumlruumlntuumlsuuml 83
ekil 55 Katalo un navigasyon ccedilubu u 84
ekil 56 Tuumlm Sayfalar duuml mesi t kland ndaki ekran goumlruumlntuumlsuuml 85
ekil 57 Zoom oumlzelli i 86
VI
TABLO L STES
Tablo 21 Facebook ve myspace in buumlyuumlme tablosu 10
Tablo 31 Standart XHR nesnesinin oumlzellikleri 30
Tablo 32 Standart XHR nesnesinin fonksiyonlar
31
Tablo 33 De i ken tuumlrleri 41
Tablo 34 leccediller ve goumlrevleri 41
Tablo 35 kili i leccediller 42
Tablo 36 DTD karakterleri ve accedil klamalar
61
Tablo 37 DTD ccedilindeki niteliklerin de er ve accedil klamalar
62
Tablo 38 Varsay lan de erler ve accedil klamalar
62
Tablo 39 XML Belgelerinde kullan lan varl k bildirimleri 67
VII
KISALTMALAR L STES
AJAX Asenkron JavaScript ve XML
API Application Programming Interface (Uygulama Program Arayuumlzuuml)
ASP Active Server Pages (Aktif Sunucu Sayfalar )
CDNs Content Distributed Networks ( ccedilerik Da t c A lar)
CMS Content Management System ( ccedilerik Youmlnetim Sistemi)
CGI Common Gateway Interface (Genel Geccedili Arayuumlzuuml)
CSS Cascading Style Sheets (Basamakl Stil Sayfalar )
DFA DART for Advertisers
DOM Document Object Model (Doumlkuumlman Nesne Modeli)
DTD The Document Type Definition (Dokuumlman Tipi Tan mlama)
DWR Direct Web Remoting ( Direkt Web Eri imi)
ECMA European Computer Manufacturers Association (Avrupa Bilgisayar
Uumlreticileri Birli i)
GOumlBL GNU Oumlzguumlr Belgeleme Lisans
HTML Hyper Text Markup Language (Yard ml Metin aretleme Dili)
HTTP Hypertext Transfer Protocol (Yard ml Metin Aktar m Protokoluuml)
IDE Integrated Development Environment (Tuumlmle ik Geli tirme Ortam )
JSP Java Server Pages (Java sunucu Sayfalar)
LAN Local Area Network (Yerel Alan A )
MIYS E-ticaret ve Muuml teri li kileri Youmlnetim Sistemleri
MSN Microsoft Network
OOP Object Oriented Programming (Nesne Youmlnelimli Programlama)
PHP Hypertext Preprocessor (Yard ml Metin Oumlni leme)
PIs Processing Instructions ( lem Accedil klamalar )
RIA Rich Internet Applications (Zengin nternet Uygulamalar )
VIII
RPC Remote Procedure Call (Uzaktan Yordam Ccedila rma)
SAX Simple API for XML (XML iccedilin Basit API)
WIKI What I Know is (Ne Biliyorsam)
W3C World Wide Web Consortium (Duumlnya Ccedilap nda A Birli i)
XML eXtensible Markup Language (Geli tirilebilir aretleme Dili)
XHR XMLHttpRequest
XHTML Extensible HyperText Markup Language (Geli tirilebilir Yard ml Metin
aretleme Dili)
XSD eXtensible Schema Document(Geni letilebilir ema Dokuumlman )
XSL Extensible Stylesheet Language (Geli tirilebilir Biccedilimlendirme Dili)
XSLT Extensible Stylesheet Language Transformations (Geli tirilebilir
Biccedilimlendirme Dil Doumlnuuml uumlmleri)
IX
OumlZET
Yuumlksek Lisans Tezi
AJAX TEKNOLOJ S KULLANARAK CcedilEVR M Ccedil
KATALOG TASARIMI
Zeynep OumlZER AYDO MU
F rat Uumlniversitesi
Fen Bilimleri Enstituumlsuuml
Elektronik-Bilgisayar E itimi Anabilim Dal
2009 Sayfa 107
Gerccedilekle tirilmi olan bu uygulama kapsam nda Flex program ve Web 20 n
ccedilekirde ini olu turan AJAX (Asynchronous JavaScript and XML) teknolojisi kullan larak F rat
Uumlniversitesini tan tan kolayl kla guumlncellenebilen Zengin nternet Uygulamalar na (RIA- Rich
Internet Applications) oumlrnek bir ccedilevrimiccedili katalog tasar m ve gerccedilekle tirimi yap lm t r
Projenin gerccedilekle tirim a amalar nda kullan lan teknolojilerin ve izlenen youmlntemlerin
anlat mlar n iccedileren bir yol haritas olu turulmu tur
Anahtar soumlzcuumlkler AJAX RIA Web 20 ccedilevrimiccedili katalog e-dergi
X
ABSTRACT
Master Thes s
ONLINE CATALOG DESIGN USING AJAX TECHNOLOGY
Zeynep OumlZER AYDO MU
F rat University
Graduate School of Natural and Applied Sciences
Department of Electronic and Computer Education
2009 Page 107
Embracing in this comparison F rat University is introduced by using Flex program and
AJAX (Asynchronous JavaScript and XML) technology which forms Web 20 Also RIA (Rich
Internet Applications) is easily renowated which is instance for online catalog design A road
map including realization of the project and tracing methods are illustrated
Keywords AJAX RIA Web 20 online catalog e-journal
1
1 G R
Web in geli im suumlrecinde ccedile itli youmlntemler kullan l r Bu youmlntemlerin farkl amaccedillara
hizmet etmeye ba lamas yla Web te ak mlar meydana gelmi tir Bu ak mlardan ilki Web 10
ak m olarak adland r l r Bu ak mda kullan c lar bilgilendirmeye youmlnelik iccedilerik sunumu
yap lmaktad r [1]
Web 20 ak m ise internet sitelerinin bilgi bar na olmas ndan i leyen platformlara
ta nmas
olarak tan mlanabilir Web 20 RIA (Rich Internet Applications- Zengin nternet
Uygulamalar ) i lemleri internet sunucu mimarisi temeline dayanmaktad r RIA da beraberinde
kulland AJAX Flex gibi teknolojiler uumlzerine kuruludur [1]
Baz yeni teknolojilerle de i en World Wide Web duumlnyas Web 20 RIA AJAX
(Asynchronous JavaScript and XML- E zamanl olmayan JavaScript ve XML) terimleriyle izah
edilmektedir
11 Tez Ccedilal mas n n Amac
Bu tez ccedilal mas yla Web 20 n ccedilekirde ini olu turan AJAX (Asynchronous JavaScript
and XML) teknolojisi ve Flex program kullan larak F rat Uumlniversitesini tan tan kolayl kla
guumlncellenebilen Zengin nternet Uygulamalar na (RIA-Rich Internet Applications) oumlrnek bir
ccedilevrimiccedili (online) katalog tasar m yap lmas hedeflenmi tir Projenin gerccedilekle tirim
a amalar nda kullan lan teknolojilerin ve izlenen youmlntemlerin anlat mlar n iccedileren bir yol
haritas olu turulmas amaccedillanm t r Bu tez ccedilal mas sonucunda geli tirilen yaz l mla kolay
guumlncellenebilen katalog haz rlanmas na katk sa lanmas amaccedillanm t r
12 Tez Ccedilal mas n n Kapsam
Bu tez ccedilal mas 6 boumlluumlmden olu mu tur 1 Boumlluumlm giri i olu turmaktad r 2Boumlluumlmde
Web 20 ak m incelenecektir 3 Boumlluumlmde AJAX teknolojisi accedil klanacakt r 4 Boumlluumlmde
yaz l m gerccedilekle tirme arac olarak kullan lan Flex tan t lacakt r 5 Boumlluumlmde gerccedilekle tirilmi
ccedilevrimiccedili katalog hakk nda bilgi verilecektir 6 Boumlluumlmde ccedilal man n sonuccedillar
ve gelece e
youmlnelik oumlneriler bulunmaktad r
2
2 WEB 20 AKIMI
Ccedilo u teknolojilerde oldu u gibi yenilik aray ihtiyaccediltan do ar Yeni Web ak mlar n n
do u u da 2001 y l ndaki tuumlm duumlnyay etkileyen kriz sonras nda iflas eden irketlerin yeniden
aya a kalkma ccedilabalar n n bir sonucu olarak ortaya ccedil km t r [2 3] Web 20 ak m 2005 te ilk
kez OReilly ve MediaLive International aras nda gerccedilekle en bir beyin f rt nas s ras nda
uumlretilmi bir kavramd r [3] Web 20 kavram World Wide Web teknolojisinde kullan lan
de i en ve geli en e ilimlere verilen bir ad olarak da tan mlanabilmektedir
ekil 21 Web 20 kavram
[4]
Web 20 kavram ekil 21 de goumlsterildi i uumlzere Web bir uygulama platformu ve sosyal
etkile imli olma oumlzelliklerini bar nd r r Ccedilevrimiccedili hayat n ba lang c ve devam n temsil eder
Say sal ortamda kendini ifade etme imkacircn sunar Kullan c lar (oku-yaz oumlzelli i ile) Web te
kat l mc kimlik kazan r
Asl nda Web 20 ortam n 1964 y l nda McLuhan Global Koumly terimini kullanarak
ortaya atm t r McLuhan Global Koumlyuuml gelecekte ileri teknolojiye geccedililmesiyle ve toplumlar
aras nda s n rlar n kalkmas yla duumlnyan n her kouml esinde teknolojiyi kullanan herkesin co rafi
s n rlar ve s n rlamalar olmaks z n diledikleri ki iyle ileti im kurabilecekleri
haberle ebilecekleri ve payla mda bulunabilecekleri bir ortam olarak tan mlam t r [5]
Mc Luhan n n tan m ndan guumlnuumlmuumlze kadar geccedilen suumlreccedil iccedilinde kullan c ihtiyaccedillar
da
de i im ve geli im goumlstermi tir Bu ihtiyaccedillar kar lamak iccedilin genel olarak internet
uygulamalar n n daha zengin bir arayuumlz ile sunulmas n sa layan uygulamalar Zengin nternet
Uygulamalar ad alt nda k sa zaman oumlnce hayat m za girmi tir
RIA uygulamalar s radan HTML web uygulamalar ile standart masauumlstuuml uygulamalar
aras ndaki bo lu u dolduran bir geli tirme platformudur Web arayuumlzuumlnde basit HTML ile
3
s n rl kalmadan masauumlstuumlndeki zengin goumlrsel ouml eleri program niteli inde kullanabilecek her
tuumlrluuml araccedil RIA konseptini uygulamaktad r [6]
Kullan c lar art k iccedilerik uumlreticilerin s n rlar n kald rarak kullan c n n yan s ra kat l mc
olarak ta nitelendirilerek etkile imli bir rol uumlstlenmi lerdir nternetin bu yeni gereksinimlere
cevap vermesiyle ortaya ccedil kan Web 20 doumlnuuml uumlmuuml hem kullan c say s nda art a neden
olmu tur hem de kullan c lar n iccedilerikleri yani mesajlar olu turdu u ve payla t buumlyuumlk bir
guumlce doumlnuuml muuml tuumlr Bu guumlcuumln oumlnemini ccedilabuk anlayan kurulu lar mimarilerine AJAX da dacirchil
ederek oumlnce arama motorlar n Google Yahoo yu daha sonra MSN yi Hotmail i bloglar
(Myspace Bloggercom Blogcucom gibi) Youtube u Wikileri ve sosyal a sitelerini
(Facebook Twitter Orkut vb) ke fetmi lerdir Bu ke iflerin sonucunda McLuhan n Global
Koumly uumlnuumln 21 Yuumlzy lda tam olarak gerccedilekle ti i soumlylenebilir Bu interaktif siteler sayesinde
ayn anda milyarlarca ki inin rk dil din ya am tarz e itim ya cinsiyet statuuml goumlzetmeksizin
e zamanl payla mda bulunup kendi ccedilevreleri ve ba ka ccedilevrelerle ileti ime geccedilebilmektedirler
ekil22 de goumlsterilen irketler Web 20 ak m nda oumlne ccedil kan sitelerin oumlzellikle ccedilevrimiccedili
faaliyet goumlsteren reklacircm irketleri pazarlama ve ticari irketler perspektifinden bak ld nda da
oumlnemli bir potansiyele sahip kitle ileti im araccedillar olarak goumlruumlluumlr [7]
ekil 22 Web 20 ak m nda oumlne ccedil kan uygulamalar [8]
Kitle ileti im arac olarak kullan labilen bu uygulamalar iccedilin birccedilok geli tirme ortam
mevcuttur Adobe Flex AJAX Java Applet Adobe Flash ve Microsoft Silverlight uygulamalar
en ccedilok bilinen RIA uygulamalar d r A a da da bu uygulamalarla olu turulmu Web 20
platformunda oumlne ccedil kan popuumller uygulama oumlrnekleri incelenecektir [7]
4
21 Web 20 Platformunda Oumlne Ccedil kan Popuumller Uygulamalar
kinci nesil internet hizmeti olarak literatuumlre giren Web 20 ak m yla internet sitelerinin
ccedilehresi de i mi tir nternet siteleri art k masauumlstuuml uygulamalar ile internet uygulamalar
aras nda bir koumlpruuml goumlrevi uumlstlenmi tir A a da bu ak m n popuumller uygulamalar ndan oumlrnekler
bulunmaktad r
211 Double Click - Google AdSense
Google firmas na ait iki uygulama da reklacircm verenlerin ve yay nc lar n web uumlzerinden
reklacircm hizmeti sunmas n sa layan sitelerdir Her reklacircmc n n hedefi tuumlketicilerin isteklerine
uygun ccediloumlzuumlmler sunmakt r Bu ccediloumlzuumlm ise Web 20 la reklacircmlar n profilini de i tirmi tir Art k
istenmeyen kendili inden accedil lan reklacircm pencerelerinin yerini kullan c n n bilgisayar na
yerle tirilmi ccedilerezlerden ccedilekti i bilgilere dayanarak kullan c n n ilgisini ccedilekebilece ini tahmin
etti i rahats z edici olmayan metin ya da resim tabanl
reklacircmlar alm t r
DoubleClick in di er reklacircm firmalar ndan ayr lan youmlnuuml reklacircmc lar iccedilin DART
oumlnerisiyle k saca DFA (DART for Advertisers) ile reklacircm youmlnetimi ve servis ccediloumlzuumlmlerinde
kullan c lar na dijital pazarlama programlar n n tuumlmuumlnuuml kapsayan youmlnetimi kolay daha iyi bir
arayuumlze sahip h zl geni bir arama sistemine sahip de eri artan sitelerin trafik ak n
belirleyen bir ccediloumlzuumlm olmu tur DoubleClick daha ccedilok grafiksel reklacircmlar yay nlamaktad r
Oumlnceleri Web 10 uygulamalar aras nda say lan bu site Web 20 doumlnuuml uumlmuumlnuuml ba ar yla
gerccedilekle tirmi tir [9]
Google AdSense ise web sitesi yay nc lar n n site iccedileri iyle alakal dinamik ve goumlze
batmayan Google reklacircmlar n
web sitelerinde goumlstererek kullan c lar n bu reklacircmlara
t klamalar yla para kazanmalar n sa laman n h zl ve kolay bir yoludur Uumlcretsiz olan bu
program sayesinde her t klama ve goumlsterim iccedilin site sahiplerine oumldeme yap l r [10] Bu
uygulamalar sayesinde Web de daha ak ll bir sisteme do ru youmlnelim ba lam t r
ekil 23 Doubleclick ve Google Adsense sitelerinin logolar [11 12]
5
212 Flickr
Yahoo nun sundu u bir hizmet olan uumlcretsiz foto raf arama ve payla m sitesi Flickr
ayn zamanda web servisi ve ccedilevrimiccedili topluluk platformudur Web 20 n ilk uygulamalar ndan
biridir Foto raf payla m nda en popuumller sitelerin ba nda gelmektedir ccedileri inde yakla k
olarak 3 milyar
a an foto raf bulunmaktad r Yenilikccedili ccedilevrimiccedili topluluk araccedillar foto raflar
etiketlemeye ve s n fland rmaya yard mc olur Bu da popuumllaritesindeki ciddi art n
nedenlerinden biridir
Flickr a imaj yuumlkleyebilmek iccedilin Yahoo dan bir e-mail adresiyle sisteme giri
yap lmal d r Payla lmak istenen foto raflar uumlcretli uumlyelik olmadan her imaj iccedilin 5 Mb l k
s n rlamayla ayda toplam 100 Mb a kadar yuumlkleme yap labilir Sadece foto raf eklemenin
d nda imajlar uumlzerinde duumlzenlemeler yap labilir Belirlenen alanlara notlar eklenebilir
Be enilen foto raflara yorumlar eklenebilir Ccedile itli gruplara uumlye olunup ileti im kurulabilir
Ayr ca API leri sayesinde XML-RPC (Remote Procedure Call- Uzaktan Yordam Ccedila rma)
arabirimi kullanarak flickr sitesindeki foto raflarla ilgili bilgileri proseduumlrler sayesinde XML
format nda al p ayr t rarak ba ka bir programda kullan labilinir Flickr daki blog grup ve
etiketleme alt yap s bu API lere dayanmaktad r [13]
ekil 24 Flickr sitesinin logosu [14]
213 BitTorrent
BitTorrent internet uumlzerinden yuumlksek h zlarla iccedileri in da t ld duumlnya ccedilap nda bir
standartt r Ayr ca 150 milyondan fazla kullan c ya sahip en son p2p (peer to peer) dosya
payla m youmlntemlerinden biridir Di er p2p payla m programlar ndan fark sabit olmayan
ba ms z sunucu tan mlama dosyalar sayesinde sabit bir sunucuya ihtiyaccedil olmaks z n belirli bir
protokol ccedilerccedilevesinde indirme (download) yaparken yuumlkleme (upload) yap lmas na da izin
vererek payla ma devam edebilmesidir [15]
Python programlama diliyle yaz lm bir uygulamad r [15]
ekil 25 ccedilerik da t m sitelerinde bittorrent site logosu [16]
6
Bit Seli olarak da ccedilevirebilece imiz ccedilok h zl bir sistemdir BitTorrent sayesinde
oldukccedila buumlyuumlk boyutlu videolara ses ya da yaz l m dosyalar na daha h zl daha ucuz ve daha
kolay bir ekilde ula labilmeyi sa lar
Guumlnuumlmuumlzde ccedilerik Da t c A lar (Content Distributed Networks-CDNs) guumln geccediltikccedile
popuumllaritesini art rmaktad r Bittorent kullan m n n 2004 te internet te teknik standartlar ve
youmlnetim konusunda yetkili organ olan W3C (World Wide Web Consortium - Duumlnya Ccedilap nda
A Birli i) taraf ndan yap lan bir ccedilal maya goumlre P2P ba lant lar n toplamda 60 n tuumlm
internet trafi inin ise 30 unu a aca tahmin edilmektedir
BitTorrent le dosya transferi yap l rken oumlncelikle bilgisayarda BitTorrent stemci
(Client) yuumlkluuml olmal d r stemci yaz l mlara oumlrnek Flashget Azureus BitTorrent Torrent
ABC LimeWire vb yaz l mlar olabilir ekil 26 ve ekil 27 de en popuumller uygulamalardan
Torrent yaz l m n n kurulum ve arayuumlz oumlrne i goumlruumllmektedir
ekil 26 Torrent program n n anasayfas
7
ekil 27 Torrent program n n arayuumlzuuml
BitTorrent istemciler BitTorrent Protokol uygulamalar n yapar Her istemci bu
protokoluuml kullanarak dosyalar n kullan c lar n BitTorent in kulland protokole sahip
duumlnyadaki tuumlm iccedileriklere h zl ve guumlvenilir bir ekilde eri mesine izin verir stenilen iccedileri in
indirilebilmesi iccedilin gerekli tan mlama bilgilerinin bar nd
torrent uzant l bir dosyaya
ihtiyaccedil vard r Bu torrent dosyalar n ccedile itli duyuru sitelerinden ya da Web den temin edildikten
sonra istemciler yukar da bahsedilen herhangi bir torrent yaz l m kullanarak bu dosyay accedilarlar
ndirme ba lad anda indirilmek istenen dosyay payla an kullan c lar n olu turdu u kuumlccediluumlk
a a (swarm) dacirchil olurlar Bu kuumlccediluumlk a daki her kullan c dosyan n indirdi i boumlluumlmuumlnuuml di er
kullan c larla payla mas gerekir Tuumlm bu i lemleri de takipccedili (tracker) isimli bir sunucu kontrol
eder Yakla k olarak 256 Kb buumlyuumlkluuml uumlndeki bu kuumlccediluumlk boyutlu dosyalara indeksleyici
(indexer) de denmektedir Kuumlccediluumlk bir a
kurulmas iccedilin tuumlm dosyaya sahip en az bir da t c n n
(seeder) olmas gerekir Da t c lar herhangi bir dosyay yuumlkleyen kaynaklard r O dosyan n
tamam n
kendi bilgisayar na indiren her kullan c art k bir da t c
olur Fakat da t c olmak
kullan c lar n insiyatifindedir ndirme i lemi bittikten sonra o dosya payla ma accedil k tutulmazsa
di er kullan c lar da t c dan bu dosyay ccedilekerek indirme i lemini h zland ramazlar Da t c
say s
ne kadar artarsa indirme i lemi o kadar h zl olur ndirme yapan kullan c lara da grup
uumlyeleri (peers) denilmektedir Torrent dosyas n indiren kullan c lar izleyicilere (tracker) dosya
hakk nda bilgi goumlnderirler di er kullan c lar (peers) ise izleyicilere ba lanarak kimde hangi
dosyan n hangi parccedilalar n n oldu unu ouml renirler zleyiciler uumlzerinden kesinlikle dosya transferi
8
gerccedilekle mez sadece kaynak payla l r Hangi kullan c ne kadar dosya ccedilekti ve ne kadar
yuumlkledi gibi istatistiksel bilgileri de bar nd rabilir [16 17]
Sadece indirme i lemi yap p kaynak olmay istemeyen ki ilere leecher (suumlluumlk) denir Bu
anlay a sahip ki iler gruplar iccedilinde ho kar lanmazlar Bir torrent dosyas payla m nda
kaynak (seed) say s s f r ise yani dosyan n tamam na sahip ki iler payla mdan ccedilekilmi lerse
eksik dosyaya sahip buumltuumln uumlyeler (peer) birbirleri aras nda veri al veri i yaparak eksik
parccedilalar indirebilecekleri bir kaynak olmad ndan belli bir yuumlzdesi tamamlanm dosyaya
sahip olarak kal rlar Bu durumda daha oumlnce dosyay indirmi ve dosyan n tamam na sahip olan
bir kullan c
eksik parccedilalar goumlndermek iccedilin dosyay yeniden payla ma accedilabilir (seed eder) Bu
olaya reseed etme denir [18]
214 Sosyal A Siteleri
Sosyal a lar bireyler aras ndaki ki isel veya profesyonel ili kilerin olu turuldu u
duumlzenlendi i a d r [19] Son y llardaki bilgi teknolojilerindeki geli meler sosyal a lar n gerccedilek
ya amdakinden daha farkl bir ekilde yeniden yap lanmas n
sa lam t r Herhangi bir
irketteki yerel a iccedilinde personelin e-posta al p-goumlndermesiyle olu an etkinlik ve e-posta
gruplar ilk ccedilevrimiccedili sosyal a oumlrneklerinden say labilir Daha sonra h zla hayat m za giren
bloglar wikiler ve sosyal a siteleri gibi sosyal i birli i sa layan teknolojilerin geli mesi
insanlar n ileti im kurduklar bilgi resim muumlzik video payla t klar ve birbirleriyle suumlrekli
haberle tikleri ccedilevrimiccedili sanal topluluklar n olu mas n sa lam t r [20] Bu topluluklar n h zla
yay lmas n n temelinde kullan c lar n bireysel aktivitesine ba l olarak duygu ve duuml uumlncelerini
bilgiyi guumlncel haberleri tavsiyelerini be enilerini payla ma fikri vard r A a da sosyal a
sitelerinden en popuumller olanlar iccedilinde yer alan Facebook incelenecektir [7]
2141 Facebook
En yayg n sosyal a sitesi Facebook Amerika Birle ik Devletleri nde 4 ubat 2004
tarihinde Harvard Uumlniversitesinde ouml renci Mark Zuckerberg taraf ndan kurulmu tur Facebook
oumlncelikle Harvard ouml rencileri iccedilin kurulmu tu Daha sonra h zla tuumlm duumlnyaya yay lm t r
Kullan c lar siteyi uumlcretsiz uumlye olarak kullanabilmektedir Site gelirini banner reklamlar ndan ve
sponsor gruplar ndan almaktad r Duumlnyan n en popuumller Web 20 blogu TechCruncha goumlre
Amerika Birle ik Devletleri ndeki uumlniversitelerdeki ouml rencilerin 85inin facebookda bir
hesab bulunmakta ve bunlar n 60 her guumln ba lanmaktad r 85 her hafta 93 her ay
ba lananlar aras ndad r [21] Facebook sitesinden ba ms z Web 20 ak m n yak ndan takip
9
eden bir blog sitesi olan insidefacebook 2009 Ocak ay n n ba nda yay nlad habere goumlre
facebook kullan c say s a a daki grafikte goumlruumllduuml uuml gibi yakla k 140 milyonu bulmu tur
Milyonlar a k n aktif uumlye say s yla guumlnde ortalama 150 bin aktif kullan c yla sanal duumlnyan n en
popular sitesi olmu tur [22]
ekil 28 Facebook kullan c say s n n aylara goumlre da l m grafi i [23]
Aktif kullan c lar n iccedileri e katk s a a daki istatistik sonuccedillar n do urmu tur [22]
13 milyon kullan c durumlar n en az ndan guumlnde bir kez guumlncellenmektedir
25 milyon kullan c her guumln Sayfa hayran (fan of Pages) olmaktad r
Siteye her ay 700 milyon foto raf yuumlkleniyor ki toplam foto raf rakam yakla k 10
milyar bulmaktad r
Her ay 4 milyon video yuumlklenmektedir
Her ay 15 milyon iccedilerik parccedilas (web linki yeni hikacircyeler blog yaz lar notlar
foto raflar vb) payla ma sunulmaktad r
Her ay 2 milyon etkinlik olu turulmaktad r
Sitede 19 milyon adet aktif grup varl n suumlrduumlrmektedir
Yukar da belirtilen bu rakamlar sosyal ileti im a lar n n ne kadar ciddi boyutlarda bir
kapasiteye sahip oldu unu goumlstermektedir
10
ekil 29 Aylara goumlre facebook ve myspace site analizi [22]
Facebook ve ona en yak n rakibi sosyal ileti im web sitesi olan MySpace compete de
kar la t r ld nda yukar daki grafik elde edilmektedir
Tablo 21 Facebook ve myspace in buumlyuumlme tablosu
Tarih 032008 032009 Kullan c
Ayl k Y ll k
facebookcom
91054535 234
1951
myspacecom
55594761 48
-114
Tablo 21 de Mart 2008 ile Mart 2009 aras ndaki ayl k aktif ziyaretccedili say s n
goumlstermektedir Compete verilerine goumlre Aral k 2008 de facebook myspace in kullan c say s n
yakalam t r Tablo 21 deki verilere goumlre bir oumlnceki y la goumlre Facebook taki kullan c say s nda
ayl k 234 luumlk bir art varken MySpace 48 lik bir buumlyuumlmeye sahiptir Yakla k olarak
ayl k MySpace Facebook u 5 kat geriden takip etmektedir Facebook taki bir oumlnceki y la
goumlre 1951 lik buumlyuumlmeye kar n myspace de 114 luumlk kuumlccediluumllme goumlruumllmektedir Elde edilen
veriler ileriki y llarda bu rakamlar aras ndaki uccedilurumun artaca n i aret etmektedir
Facebooktaki bu h zl buumlyuumlme ekonomi ve ticari sektoumlruumlnuumln de ilgisini ccedilekmektedir Oumlnemli bir
yat r m alan olarak giri imcileri cezbetmektedir
Facebook youmlneticilerinden Peter Thiel ise Facebookun iccedil de erinin 8 Milyar dolar
oldu unu ve proje gelirlerinin 2015 y l iccedilin 1 milyar dolar oldu unu soumlylemektedir [24]
Duumlnyaca tan nm Microsoft irketi 24 Ekim 2007 de Facebooku 16l k hissesini 240 milyon
dolara sat n alm t r Google ve di er irketler de gittikccedile de er kazanan Facebook hisselerine
youmlnelmektedir [24]
11
215 Web Guumlnluumlkler
ngilizcedeki Web
ve log kelimelerinin birle iminden olu an Blog kelimesi internet
uumlzerinden ki ilerin istedikleri konu hakk nda fikir beyan edebilecekleri kendilerini kolayca
ifade etmelerini sa layacak bir ortamd r
Bloglar genellikle en yeni yorum ve yaz lardan eski tarihli yorum ve yaz lara do ru
s ralanm web tabanl yay nlar
belirtir Bloglar n iccedileri i suumlrekli guumlncellendi i iccedilin sadece
bloglar iccedilin kurulmu oumlzel indeksleme mekanizmalar ve arama motorlar bulunmaktad r [25]
Duumlnya ccedilap nda indeksleme mekanizmalar n n en oumlnde geleni Technorati firmas
milyonlarca blog okuyucusu iccedilin her geccedilen guumln 15 milyondan fazla yeni blogu
indekslemektedir [26] Forrester in ara t rma irketlerinden internet ile ilgili ciddi bir ara t rma
kurumu olan JupiterResearch uumln 2008 A ustos unda bloglar uumlzerine gerccedilekle tirdi i
ara t rmada internet kullan c lar na 40 soruluk kapal uccedillu soru youmlneltilmi tir Bu ara t rma
sonucunda geccedilti imiz doumlrt y l iccedilerisinde bloglar n okunma oranlar nda 300 oran nda bir art
oldu u ortaya ccedil km t r Belki ilgimi ccedilekecek bir bloga ula abilirim duuml uumlncesi ile kullan c lar
okuduklar bloga eklenmi
olan di er linkleri de takip edebiliyorlar S k blog okuruyum
diyenlerin 38 i yeni bir blogu okudu u blogun linklerinden ke fetti ini belirtmi tir
Ara t rmaya kat lan blog okurlar n n 34 uuml Web te dola rken yeni bir blogla tan t n 11 i
blog arama motorlar n kulland n
belirtmi [27]
Bloglar n bu kadar yayg nla mas n n nedenlerinde biri de internet gezginler sanal
acirclemdeki tek duumlze yorumsuz hatta bazen oldukccedila bilimsel bir dille yaz lm yaz lardan
s k ld klar iccedilin bloglar tercih etmektedir Bloglarda ki iler gittikleri bir seminer hakk ndaki
yorumlar n kulland klar bir uumlruumln hakk ndaki fikirlerini k saca hayata dair kendi yorumlar n
katarak ba ka ki ilerle payla abilmektedirler
216 Wiki
Bilgiye ula mak iccedilin eskiden oldu u gibi kitap ya da ansiklopediler kullan lmamaktad r
Guumlnuumlmuumlzde kuumlreselle menin ve geli en teknolojinin etkisiyle tuumlm kaynaklara bilgisayar
uumlzerinden ula lmas elde edilen bilgilerin k sa suumlrede derlenebilmesine imkacircn vermi tir
Wiki ler kullan c lar n uumlzerinde istedi i gibi duumlzenlemeler yapmas na izin veren bilgi
sayfalar toplulu udur ngilizce What I Know is soumlzcuumlklerinin k saltmas
olan Wiki
Bildi im kadar yla anlam na gelir [28]
12
Wikilerin ccedilal ma prensibi u ekilde accedil klanabilir Bir web program script ya da script
grubu sayesinde veritaban na yaz lm olan ya da sadece dosya halindeki verileri okur bu
verileri HTML kodlar ile de i tirir ve Web taray c s na yans t r
ekil 210 Vikipedi oumlzguumlr ansiklopedi sitesinin logosu
Wiki dilini kullanan ve internetin en geni iccedileri ine sahip ccedilevrimiccedili ansiklopedisi
Vikipedi 22 Ocak 2007de Alt n Oumlruumlmcek 2006 En yi ccedilerik oumlduumlluumlnuumln sahibi oldu
Wikipediaorg taraf ndan geni kitlelere tan t lan Wiki dili pek ccedilok farkl programlama
platformunda Javascript ASP PHP C++ vb kullan labilmektedir
2161 Wiki Kullanman n Avantajlar
Web proje gruplar
projeleri olu tururken ekiplere ayr ld iccedilin programc lar kendi
goumlrevi d ndaki ccedilal malarda neler yap ld n
tam olarak bilemez ccedileri in yap land r lmas nda
geli melerden sadece iccedilerik koordinatoumlrleri haberdard r An nda yap goumlster oumlzelli iyle Wikiler
bu sorun iccedilin pratik bir ccediloumlzuumlm te kil eder
ndekslenme yapan sitelerde bile arama yap l rken defalarca ayn siteye girilebilir yahut
aran lan bilgiyi bulmak ccedilok zaman alabilir Wiki gereksiz tekrarlardan kurtar r steyen herkes
wiki iccedileri indeki bilgileri eksik ya da hatal
ise de i tirilebilir veya kald rabilir Bu i lemleri
yapan wiki youmlneticilerine wikipedist denir Wikipedistler sayfa duumlzenlemelerine ve iccedilerik
zenginle tirmeye yard mc olurlar
Wiki de de i iklik yap ld nda de i iklik yapan ki inin bir hesab yoksa IP adresiyle
varsa kullan c ad yla kaydedilerek hemen sonuccedil goumlzlenebilir Yap lan iccedileriksel herhangi bir
hata ba kalar taraf ndan fark edildi inde duumlzeltilir Geccedilmi sekmesiyle duumlzeltilen sayfalar n
oumlnceki suumlruumlmleri kronolojik s ralamayla takip edilebilir hatta sayfalar aras nda kar la t rma
bile yap labilir Sayfa iccedilerikleri hakk nda Tart ma
sekmesiyle fikir beyan nda bulunulabilinir
Tart malara yorum eklenebilir Denetleme mekanizmas sayesinde telif haklar n n ihlali gibi
durumlarda ihlali yapan kullan c lar engellenebilmektedir
13
Wiki di er ansiklopedilerden farkl olarak Vikipedi GNU Oumlzguumlr Belgeleme Lisans
(GOumlBL) kullanmaktad r Kullan c lar na oumlzguumlr iccedilerik kat l m e it tarafs z ve uumlcretsiz kat l m
hakk verir Ayr ca diluumllkekonuya goumlre geli mi kategorilendirme sistemine sahiptir Diff
oumlzelli i sayesinde sayfalar aras ndaki fark izlenebilir [29]
217 ccedilerik Youmlnetim Sistemleri
ngilizce Content Management System ya da k saca CMS olarak tan nan ccedilerik
Youmlnetim Sistemleri - YS bilgiyi olu turmak ar ivlemek ara t rmak denetlemek ve
yay nlama olana sa layan buumlyuumlk bir veritaban na sahip moduumlllerden olu an buumltuumlnle ik bir
ortamd r YS lerde iccedilerik iki ayr boumlluumlmden olu ur Bunlardan birincisi uumlzerinde i lem
yap lmam olan ham bilgiyi bar nd ran veritaban
di eri ise bu bilginin yerle imini goumlsteren
ablondur ablonda bilginin goumlsterilece i sayfan n goumlrsel boumlluumlmuumlnuuml olu turan yaz tipleri
renkleri gibi tuumlm biccedilim bilgileri saklan r Genellikle PHP benzeri dillerle kodlan r Boumlylece daha
esnek hale gelebilirler [30]
ccedilerik Youmlnetim Sistemleri uluslararas platformda birccedilok organizasyon iccedilin zorunluluk
haline gelen modern bir veri youmlnetimi tekni idir Guumlnuumlmuumlzde iccedilerik youmlnetim sistemleri kendi
iccedilerisinde boumlluumlnmuuml bir yaz l m enduumlstrisi haline gelmi tir Kendi iccedilerisinde portal sistemleri
Wiki sistemleri web-based grupware vb alt dallara ayr lan enduumlstri guumlnuumlmuumlzde halen
geli imini suumlrduumlrmektedir [31]
Web yay nlama sistemi kullan c lar arad klar iccedileri e goumlre veritaban iccedilinde anahtar
kelimeler yazar olu turulma tarihi gibi ccedile itli oumllccediluumltlere goumlre arama yapabilirler Web iccedilerik
youmlnetim sistemleri bilgi portallar olu turmak iccedilin bilgi youmlnetimi hizmeti sunar YS buumlnyesinde
bar nd rd
yaz l m moduumllleri sayesinde herhangi bir kullan c n n web sitesi uumlzerindeki
i lemleri yapabilmesi iccedilin grafiksel kullan c arayuumlzuuml sunar
YSnin temeli iccedileri in olu turulmas ndan son hali olan yay nlanma evresine kadar tuumlm
evrelerde iccedileri i youmlnetme esas na dayan r Ayr ca YS nin iccedileri i E-ticaret ve Muuml teri li kileri
Youmlnetim Sistemleri (MIYS) (ing CRM - Customer Relationship Management System) ile de
payla labilir YS sayesinde iccedilerik yay n
teknik bilgisi olmayan kullan c lar taraf ndan bile
yap labilir Kullan c lar na sade basit ama guumlccedilluuml web taray c s destekli bir uygulama arayuumlzuuml
sunar [32]
14
218 Etiketleme (Folksonomi)
Web 20 sitelerinde goumlze ccedilarpan etiket bulutlar ile kullan c lara ilgilendikleri konulara
ili kin kolay ve h zl ba lant lar sa lanmaktad r Site iccedileri iyle ilgili konular ccedile itli etiketler ad
alt nda s n fland r l r Her etiket iccedilinde bar nd rd makale yaz ba l k ile farkl boyutlarda
olabilmektedir Yani etiketin yaz boyutu ne kadar buumlyuumlkse iccedilinde bar nd rd iccedilerik o kadar
fazlad r ekil 211 de bir etiket bulutu goumlruumllmektedir
ekil 211 Oumlrnek etiket bulutu
22 Web 20 da Site Tasar m nda Dikkat Ccedileken Oumlzellikler
Yukar daki popuumller uygulamalar olu turulurken dikkat ccedileken ortak oumlzellikler bu ba l k
alt nda incelenecektir Genel olarak Web sitelerindeki de i im ve geli im tasar m ve arayuumlz
accedil s ndan de erlendirilecektir
221 Logolar
Logolara daha parlak bir goumlruumlntuuml verilirken yans ma efekti bolca kullan lmaktad r
Yans ma efekti dinamik olmayan tuumlm objelere kullan larak siteye derinlik hareket ve modern
bir goumlruumlnuuml kazand r l r Kullan c lar n dikkatini ccedilekmek iccedilin ekil 212 de goumlruumllduuml uuml gibi
logolara rozet eklinde yenilik bildiren kelimeler eklenebilmektedir [33] Bu yenilik bildiren
kelimelerden Beta ifadesiyle s k s k kar la l r Bunun nedeni Web 20 ak m na goumlre
kullan c lar birer yard mc -geli tiriciler olarak benimsenir Sonuccedil olarak ortaya ccedil kan site suumlrekli
geli mekte ve de i mektedir Logolara yerle en Beta bu geli imin bir simgesi haline gelmi tir
[34]
15
ekil 212 Yans mal logo oumlrne i [34]
222 Butonlar
Butonlarda ise klasik butonlar yerine resim olarak haz rlanan butonlarda oumlzellikle cam
efekti ve renk geccedili (gradient) efekti hacirckimdir Gradient efekti butonlarda logolarda ya da arka
planlardaki renk geccedili lerini daha yumu at r Bir renkten farkl bir renge keskin geccedili lerin oumlnuumlne
geccedililmi olur [33] Ccedile itli buton oumlrnekleri ekil 213 de goumlruumllmektedir
ekil 213 Web 20 da buton oumlrnekleri
223 Arka Planlar
Web 20 ile sitelerde arka planlar olu turulurken yatay eritlerden ya da duumlz renk
geccedili lerinden faydalan labilinir Her iki ekilde de hedeflenen ortak amaccedil ekil 214 te oldu u
gibi goumlzuuml yormayan tasar mlar gerccedilekle tirmektir [33]
ekil 214 Web 20 da arka plan oumlrnekleri
16
224 Ccedilerccedileveler
Site iccedilinde goumlruumlnmez iframe ler yerine ekil 215 deki gibi ccedilerccedilevelerin yuvarlak kouml eli
kutular olarak tasarlanmas
oumln plana ccedil km t r Kouml eleri keskin duumlz kare veya dikdoumlrtgen
biccedilimde kutular art k kullan lmamaktad r Yuvarlak kouml eli kutu yap m iccedilin farkl tekniklerle
olu turulabilecek programlar mevcuttur Resim css ve html teknikleri kullan lacaksa Spiffy
Corners RoundedCornr ve CSS Rounded Box Generator gibi araccedillar kullan labilirken Nifty
Corners Cube ve curvyCorners gibi araccedillar da JavaScript tekni i ile kullan labilinir [33]
ekil 215 Web 20 da ccedilerccedileve yap s na oumlrnek
225 Menuumller
Site iccedileri inden etkin bir ekilde faydalanabilmek iccedilin menuuml ve sekmeler sade kolay
anla labilir olmal d r Hem goumlrsel hem kullan l menuumller CSS kodlarla olu turulabilir [33]
ekil 216 Web 20 da menuuml oumlrne i
Yukar da bahsedilen konu Web 20 platformunda olu turulan sitelerin genel oumlzellikleri
olarak alg lanabilir Bu oumlzellikler d nda da tasar mlar olabilmektedir
17
3 AJAX
AJAX kavram n n ilk ccedil k noktas
ubat 2005 de Jesse James Garrett taraf ndan the
Adaptive Path Web sitesinde Ajax A New Approach to Web Applications ba l yla
yay nlanan makaledir [35]
ekil 31 Jesse James Garrett in makale goumlruumlntuumlsuuml [36]
Bu makalede Web uygulamalar olu turulurken tasar mlardaki buumlyuumlleyici geli meler
yenilikccedili ccedilevrimiccedili projelerle desteklenirken bunun yan nda h zl cevap verebilir daha zengin
goumlrsellere sahip masauumlstuuml uygulamalar aras ndaki bo lu a dikkat ccedilekilmi tir Bu bo lu u
dolduran Google Suggest ve Google Maps uygulamalar Adaptive Path sitesinde AJAX olarak
adland r lan Web uygulamalar na yeni yakla m n en iyi oumlrnekleri oldu u belirtilmi tir Klasik
Web uygulamalar n n ccedilal ma modeliyle AJAX l uygulamalar n ccedilal ma modeli
kar la t r lm t r AJAX di er uygulama youmlntemlerinden ay ran oumlzellikleri belirtilmi tir
AJAX yakla m na buumlyuumlk yat r mlar yapan Google n neden AJAX tercih etti i accedil klanm t r
Google Groups Google Suggest Gmail Google Maps ve ard ndan Flickr Amazon nun
A9com servisleriyle kullan c lar n oda haline geldi ine de inilmi tir [35]
AJAX n ccedilekirde i olan XMLHttpRequest (XHR) nesnesi sayesinde de iyi haz rlanm
sa lam ve kolay anla labilir-kullan labilir sitelerin olu umuna dikkat ccedilekilmi tir [35] A a da
18
ise AJAX tekni i kullanan en populer servislerden Google Suggest ve Google Maps hakk nda
k sa bilgi verilecektir
31 Google Suggest
ekil 32 Google Suggest ekran goumlruumlntuumlsuuml
Google Suggest a httpwwwgooglecomigcomplete=1amphl=en
adresine girildi inde
ekil 32 de goumlruumlnen ana sayfaya ula lmaktad r Google Suggest servisinin oumlzelli i arama
motorunda aranacak kelimenin harfleri girilmeye ba land andan itibaren filtreleme yaparak
text alan n n alt na accedil lan boumllmede oumlneriler sunulmaktad r Sadece oumlneri sunmakla da kalmay p
oumlnerileri popuumllarite s ras na goumlre s ralar Kelime tamamlama oumlzelli i sayesinde aranan kelime
tam yaz lmadan gelen oumlnerilerden biri t klanarak istenen sonuca ula labilinir Ayr ca oumlnerilerin
yan nda o kelimeye ait kaccedil sonuccedil oldu u da belirtilir ve bu i lem sadece 1-2 sn iccedilinde
gerccedilekle ir
32 Google Maps
ekil 33 Google Maps ekran goumlruumlntuumlsuuml
19
Google Maps sitesine httpmapsgooglecom
adresinden ula labilinir Google n
etkile imli harita servisi ile arama motorunda goumlruumlntuumllenmek istenen konum yaz larak
Haritalarda Ara butonu ile o konuma odaklan l r Bir yerden bir yere gitmek iccedilin Yol
Tariflerini Al butonu kullan l r Konumun iste e goumlre uydu arazi ve sokak haritas
goumlruumlnuumlmlerine ula labilinir Daha fazla seccedilene i ile resim video ve wikipedia katmanlar da
goumlruumlntuumlye eklenir Hatta yurtd ndaki ba lant larda yoldaki trafik ak n n h z hakk nda bile
bilgi katman mevcuttur
Di er harita web uygulamalar ndan farkl olarak Google Maps te harita uumlzerinde ccedile itli
youmlnlere ula mak iccedilin suumlrekle b rak youmlntemi kullan l r Harita bir imaj serisi halinde ayr larak
boumlluumlnuumlr Biti ik imajlar n birlikte goumlruumlntuumlsuumlnuumln olu turulabilmesi iccedilin bu serilerden faydalan l r
Goumlruumlntuumllenen haritada kullan lan imaj say s s n rl d r Bu da her seferinde yeni imajlar n
olu turulmas gerekti ini goumlsterir Kullan c n n harita uumlzerindeki h zl hareketleri haf za
problemlerine yol accedilabilir Bunun yerine ayn imajlar haritan n farkl segmentlerinde tekrar
tekrar goumlruumlntuumllenir [37]
stemci-sunucu ileti imi gizli bir IFRAME uumlzerinden yap l r Bir arama yap ld nda
veya yeni bir yol soruldu unda bu bilgiler goumlnderilir ve IFRAME iccedilinde doumlnduumlruumlluumlr Veri XML
format nda ccedilevrilir ve bir Javascript fonksiyonunda (AJAX Motorunda) kullan lmak iccedilin
aktar l r Bu XML verisi sonra farkl ccedile itli ekillerde kullan l r Bazen hatas z harita imajlar n n
ccedila r lmas nda bazen de XML dokuumlmanlar n n XSLT (Extensible Stylesheet Language
Transformations Geni letilebilir Biccedilimlendirme Dili Doumlnuuml uumlmleri) sayesinde HTML kodlar na
doumlnuuml tuumlruumllerek ana pencerede goumlruumlntuumllenmesinde kullan l r [37]
Bunlar n d ndaki daha birccedilok accedil k kaynak projeler ve ticari uumlruumlnler bu yeni Web
uygulama modelinin avantajlar ndan faydalanarak geli tirilmeye ba lanm t r [37]
33 Neden AJAX
AJAX terimi oldukccedila guumlccedilluuml bir kelimedir Guumlcuumlnuuml daha zengin geni enduumlstri trendlerinin
olu umunda kullan labilmesinden ve oumlzguumlr Web uygulamalar n n kurulumunda odak noktas
olmas ndan al r Ayr ca programc lar yabanc olduklar yeni programlama dilleri ouml renmelerine
gerek kalmadan geli tirdikleri Web uygulamalar na istedikleri etkiyi katabilmektedirler Bunu
yaparken de sunucu tarafl teknolojileri kullan rken var olan yat r mlar n n d nda ba ka
masraflar olmaz AJAX guumlccedilluuml bir teknik olmas n n yan s ra di er teknolojilerle birlikte
kullan ld nda daha etkili sonuccedillar al nabilmektedir [38] AJAX Java 2 Enterprise Edition
(JAVA EE) Net PHP Flex CGI scriptler ve di er birccedilok uygulama geli tirme ortam nda
ccedilal abilir
20
AJAX uygulamalar n n gittikccedile yayg nla mas n n bir nedeni de geleneksel uygulamalara
goumlre istekcevap modelleri aras ndaki farkt r ekil 34 te goumlsterildi i uumlzere geleneksel Web
uygulamalar nda sunucuya yap lan her istekte olu turulan cevap Web sayfas n n tuumlmuumlnuuml
etkileyerek yeniden yuumlklenmesine neden olmaktad r
ekil 34 Geleneksel sunucularda istekcevap modeli [39]
AJAX n asenkron metodolojisiyle klasik Web mimarilerindeki gibi sunucuya gidip
parametreleri i lemek yerine ekil 35 te goumlruumllduuml uuml uumlzere birccedilok sunucu iste i tuumlm sayfan n
yenilenmesine ihtiyaccedil duymadan cevaplanabilmektedir
ekil 35 AJAX n asenkron istekcevap modeli [39]
Yukar da anlat lan durum kullan c lar ekil 36 da goumlruumllen t kla-bekle doumlnguumlsuumlnden
kurtar r AJAX kullan c lara ekil 37 deki gibi kesintisiz gezinti (soumlrf) imkacircn sunar
21
ekil 36 Klasik Web uygulamalar nda t kla-bekle doumlnguumlsuuml [40]
ekil 37 T kla-T kla interaktif AJAX uygulamas
[40]
stek i lem basamaklar ekil 38 te goumlsterildi i gibi AJAX motoru sayesinde JavaScript
kod betikleri kullan larak sunucuya HTTP tabanl ba lant sa lan r Bu ba lant
XMLHttpRequest protokoluumlnuuml kullanarak mesaj transferi yap lmas n sa lar Bu sayede hem h z
artar hem de bant geni li i verimli bir ekilde kullan lm olur
ekil 38 Geleneksel Web ileti im modeli ile AJAX ileti im modeli [37]
AJAX sunucuya kullan c n n Web taray c s uumlzerinden Javascript ortam nda ikinci bir
ileti im yoludur AJAX n kullan m normal Web uygulamalar nda goumlruumllen tipik sayfa ak nda
de i ikliklere neden olur AJAX ile istekler daha s k ve daha kuumlccediluumlk cevaplar halinde HTML
olmayan veri formunda cevaplan r Daha iyi anlayabilmek iccedilin normal bir Web uygulamas n n
ileti im ak ekil 39 da goumlruumllmektedir [41]
22
ekil 39 Web uygulamas ndaki cevap ak
Bir AJAX Web uygulamas bir Web uygulamas n n normal ileti im ak n al r ve yeni
bir istek tipi ekler Bu durum sunucuya normal sayfa iste i gibi goumlruumlnuumlr ama Web taray c iccedilin
farkl formatta bir giri i vard r Kullan c taraf ndan do rudan tetiklenmeyen ve sayfan n
tamam n n yeniden yuumlklenmesini gerektirmeyen bir istektir Ccedilo u durumda bu AJAX istekleri
baz verilerin oumln yuumlklenmesi ya da bir formdaki baz alanlar n do rulama istekleri gibi kuumlccediluumlk
de i iklikler olabilir Bazen de JavaScript ile bir form goumlnderimi veya HTML sayfalar n n bir
parccedilas uumlzerindeki iccedileri i de i tirmek iccedilin kullan l r Oumlrnek bir AJAX ileti im ak ekil
310 da goumlruumllmektedir AJAX uygulamalar ndaki istek biti zamanlar ve bunun normal Web
uygulamalar yla kar la t rmas ekil 311 de goumlruumllebilir Boumlylece ikisinin aras ndaki istek
frekanslar n n fark na var labilinir [41]
ekil 310 AJAX uygulamalar ndaki istek ak
23
ekil 311 Normal Web ile AJAX uygulamalar n n kar la t rmas
AJAX Web uygulamalar yla frekanstaki bu de i im hostlar iccedilin buumlyuumlk etki yapabilir
Boumlylece sunucular ayn kullan c say s yla yuumlksek h zlarda veri al -veri ini yapabilecek duruma
gelir Bu oumlzellikle daha fazla i lem gerektiren normal sayfa yuumlklemelerinde oldukccedila zor bir
i lemdi [41]
34 AJAX Metodolojisi
World Wide Web istemci-sunucu a mimarisine uygun ccedilal r [42] A aktiviteleri iki
tiptir Bunlardan birincisi kullan c taraf ndan tetiklenen HyperText Transfer Protocol (HTTP)
istekler (URL yazarak ya da bir link t klanarak olu turulur) di eri ise sunucu cevaplar d r
HTTP protokoluuml soru ve cevaplar serisinden olu an bir ileti im yoludur [41]
ekil 312 Geleneksel istekcevap (requestresponse) youmlntemi [39]
24
Web taray c dan bir istekte bulunuldu unda HTTP kullan larak cevap goumlnderilir Web
taray c bir istemci internet sayfas n n sunucusu ise HTTP sunucudur AJAX sunucu
cevaplar n HTTP kullanarak goumlnderir Sunucu taraf ndan geri doumlnduumlruumllen farkl tuumlrlerdeki
HTTP istek ve cevaplar n n tan nmas oumlnemlidir AJAX uygulamalar n sunucudan gelecek olan
HTTP cevaplar n iccedileri inin ne oldu u hakk nda karar verebilmesi iccedilin sunucunu
sorgulanmas nda HTTPRequest nesnesine ihtiyaccedil duyar [42]
341 HTTP Requests Nesnesi
HTTP request nesnesinin kullan m format a a daki ekildedir
ltrequest-linegt
ltheadersgt
ltblank linegt
[ltrequest-bodygt]
HTTP request nesnesinin ilk sat r genellikle iste in tipini belirten uumlccedil boumlluumlmden olu ur
Youmlntemin ad gerekli olan sunucu kayna n n yolu HTTP suumlruumlmuumlduumlr Birinci istek sat r (accedil l
sat r ) olmal d r kinci boumlluumlm sunucunun kullanabilece i ba l k sat r eklenebilen bilgilerin
goumlsterildi i boumlluumlmduumlr Son boumlluumlm olan bo sat r ise iste e ba l olarak BODY boumlluumlmuumlnden
ccedila r labilecek ek verilerin takip edilebilece i sat rd r
HTTP iccedilinde ccedile itli istek tuumlrlerinin tan mlanabilece i ccedilok say da youmlntem vard r Fakat
AJAX sadece GET ve POST youmlntemleriyle ilgilenir
3411 GET Youmlntemi
HTTP GET youmlntemi ccedila r lmak istenen URL adresi ard na eklenen anahtar-de er
ccediliftleri (key-value pair) ile ccedilal r Bir Web taray c dan talep edilen bir URL ccedila r s sunucuya
GET youmlnetemi ile bir istek goumlnderir Basitccedile sunucu kayna getirir ve taray c ya cevab
goumlnderir A a da Get youmlnetemi kullan larak F rat uumlniversitesinin Web sitesine yap lan bir ccedila r
sat r goumlsterilmektedir
GET HTTP11 ltrequest-linegt
Host wwwfiratedutr
User-Agent Mozilla50 (Windows U Windows NT 51 en-US rv176) ltheadersgt
Connection Keep-Alive
25
Oumlrnek kod parccedilas nda da goumlruumllduuml uuml uumlzere ilk sat r GET istek sat r d r Di er boumlluumlm ise
istek hakk nda bilgi goumlnderilen ba l k (header) k sm d r Bu boumlluumlme bir parametre ve her sat r
ba na bir de er ccedilifti gelebilir Host ba l iste in hedef sunucu adresini iccedilerir User-Agent
ba l eri ilebilir her iki sunucu ve istemci tarafl scriptler ve taray c lar n temel ta d r Bu
bilgi ile her istekte otomatik olarak goumlnderilir ve kullan lan taray c tan mlan r Connection
ba l ise taray c i lemleri iccedilin kullan lan tipik ba lant ayarlar nda kullan l r
3412 POST Youmlntemi
POST iste i ise sunucuya request body iccedilinde ek bilgi sa lar Genellikle ccedilevrimiccedili
formlarda doldurulmayan sat r bilgileri POST youmlntemi ile sunucuya bildirilir POST istekleri
a a daki yap dad r
POST HTTP11
Host wwwfiratedutr
User-Agent Mozilla50 (Windows U Windows NT 51 en-US rv176)
Content-Type applicationx-www-form-urlencoded
Content-Length 40
Connection Keep-Alive
Yukar daki kod parccedilas nda gri ile vurgulanan sat rlar GET youmlnteminden farkl olan
sat rlar goumlstermektedir lk sat rda kullan lan youmlntemin ad belirtilmi tir Content-Type sat r
request-body nin nas l kodland n goumlsterir Content-Length sat r nda request-body nin kaccedil
byte uzunlu unda oldu u goumlsterilir [37]
342 HTTP Request Nesnesinin Oumlzellikleri ve Youmlntemleri
Request nesnesi be tane temel fonksiyon bulundurmaktad r [43] Bunlar
Querystring URL iccedilersinde bulunan dosya ismi ile birlikte goumlnderilen bilginin veya
form iccedilerisinden GET
youmlntemi ile goumlnderilen bilgilerin al nmas nda kullan l r
Form POST
youmlntemi genellikle form iccedilerisinden bilgi al nmas iccedilin kullan l r
Servervariables Web sunucu request ile ilgili bilgilere (Http ServerVariables)
ula may sa layan bir youmlntemidir
Cookies(Ccedilerezler) Kullan c n n taray c s sunucudan gelen ccedilerezleri kabul ediyor ise
bu bilgilere ula lmas n sa lar
26
ClientCertificate Dijital bir sertifikad r Sunucu ve istemcinin birbirini tan mlamas
iccedilin kullan l r
343 HTTP Response Nesnesi
HTTP response nesnesi HTTP request nesnesine benzer ekilde goumlsterilir
ltstatus-linegt
ltheadersgt
ltblank linegt
[ltresponse-bodygt]
HTTP request nesnesinden tek fark ilk sat rda istek bilgisinin yerine iccedileri in durum
bilgisi vard r Durum sat r istek kayna
hakk nda temin edilen bir durum kodunu bildirir
A a da basit bir HTTP response kod parccedilas
goumlsterilmektedir
HTTP11 200 OK
Date Sat 31 March 2009 165959 GMT
Content-Type texthtmlcharset=ISO-8859-1
Content-Length 122
lthtmlgt
ltheadgt
lttitlegtFirat Universitesilttitlegt
ltheadgt
ltbodygt
lt-- body buraya gelir --gt
ltbodygt
lthtmlgt
Bu oumlrnekte durum sat r nda 200 eklinde bir HTTP durum kodu ve Tamam (OK)
diye bir mesaj verilmektedir Durum sat r her zaman durum kodu ve her hangi bir kar kl
oumlnlemek iccedilin k sa bir mesaj iccedilerir A a da en yayg n kullan lan durum kodlar verilmektedir
200 (OK) Sunucu ba ar l istekler iccedilin bu kodu kullan r
304 (NOT MODIFIED) Sunucu goumlnderilen istekle ilgili verilerin daha i lenmedi ini
istemciye bildirmek iccedilin bu kod kullan l r Taray c lar n oumln bellek mekanizmalar iccedilin en s k
kullan lan koddur
27
401 (UNAUTHORIZED) stemcinin kaynak eri im yetkisi yoktur
anlam nda
kullan l r Genellikle bu taray c n n sunucudan kullan c ad ve ifre gibi bilgi giri i istemesiyle
olu an hatalarda meydana gelir
403 (FORBIDDEN) Yetki elde etmek iccedilin istemci ba ar s z oldu
hata kodudur 401
hatas ndan sonra e er do ru bir kullan c ad ve ifre ile oturum accedil lmamas halinde genelde bu
hata kodu olu ur
404 (NOT FOUND) Kaynak belirtilen yerde bulunamad nda bu hata kodu uumlretilir
Kod parccedilas n n ikinci sat r nda uumlretilen cevab n tarihi ve saati Date ba l nda
sunucuya goumlnderilir Content-Type ve Content-Length ba l klar POST youmlnteminde oldu u gibi
kullan l r BODY cevab basitccedile istemci kayna (iccedilerik duumlz metin ikili veri ya da farkl
tuumlrden
bilgiler olabilir) HTML kayna n iccedilerir [42]
35 AJAX leti im Teknikleri
Web uygulamalar nda ccedilo unlukla kullan c istekleri bir form uumlzerinden yap l r ve
sunucu cevab h zl bir ekilde Java ya da Php gibi bir programlama dili ile olu turulur Normal
Web uygulama modelinde kullan c daima istek uumlretir boumlylece kullan c lar n h zl ca
t klamalar yla olu an yuumlksek h zlardaki sayfa istekleri genellikle rastgele aral klarla olu ur ve
her bir istek h z n n cevab duuml uumlktuumlr [41]
AJAX uygulamalar nda yukarda bahsedilen eksikli in oumlnuumlne geccedilebilmek iccedilin ccedile itli
ileti im teknikleri geli tirilmi tir Bu teknikler
Gizli Ccedilerccedileve (Hidden Frame) Tekni i stemci-sunucu ileti iminde kullan lan gizli
ccedilerccedileve yap s yuumlksekli i ve geni li i 0 pikselden olu an ekranda goumlruumlnmeyen bir
frameset yap s na dayan r
XMLHttp Requests (XHR) AJAX teknolojisinin temel nesnesidir A a daki ba l kta
ayr nt l bir biccedilimde incelenecektir
351 XMLHttp Requests (XHR) Nesnesi
AJAX la do rudan ilgili teknolojilerin ccedilo u asenkron ve XML tekni i ile yak ndan
ilgilidir Ccediluumlnkuuml veri kodlama yollar ve ileti im katmanlar n n tedarik edilmesi bu teknikler ve
kuumltuumlphaneler uumlzerinden hareket eder Ccedilo u durumda bu XMLHttpRequest nesnesi kullan l r
ancak IFrame lerde popuumllerdir Ccedilerezler veya ActiveX Java goumlmuumlluuml ba ka bir alternatif de
kullan labilir [41]
28
XHR Nesnesi Internet Explorer 50 (IE 5) iccedilindeki ActiveX control ile ortaya ccedil km t r
XHR Javascript ile olu turulur [44] Sayfalar n tamamen yeniden yuumlklenmeden sa lanan parccedilal
guumlncelleme oumlzelli i bu nesne sayesinde olmaktad r Arka planda ccedilal an bu sistem sayesinde
asenkron bir ileti im gerccedilekle ir Yenilenme s ras nda taray c yla ba lant kesilmeksizin yeni bir
istek yap labilir
World Wide Web Consortium (W3C) standart organizasyonu standartla amam
XMLHttpRequest nesnenin tuumlm taray c larda kullan labilen youmlntem ve oumlzelliklerinin genel bir
alt kuumlmesini olu turma ccedilal malar suumlrmektedir u anda kullan lan kural kuumlmesi W3C DOM
Level 3 yuumlkleme ve kaydetme oumlzellikleri iccedilerir kinci ccedilal ma tasla
wwww3orgTRXMLHttpRequest adresinde bulunabilir Henuumlz bir standart haline
gelememesinin nedeni taray c dan taray c ya goumlre farkl davran lar goumlstermesidir
Ccedilal ma tasla na goumlre XHR nesnesinin iki goumlrevi vard r Birincisi HTTP yolu ile
sunucuya programlanabilir ba lant kuran betiklerin ccedilal mas na izin verir kinci ifade ekli ise
normal HTTP istekcevap doumlnguumlsuumlnuumln d nda sunucuyla ileti ime izin verir
XMLHttpRequest Microsoft taray c ccedile itlerinde Mozilla Firefox Konqueror Opera
ve Safari gibi neredeyse tuumlm modern taray c lar taraf ndan desteklenmektedir [42]
3511 XMLHttpRequest Nesnesi Olu turma
Nesneler olu turulurken farkl taray c lar iccedilin farkl kurallar vard r Oumlrne in Microsoft
Internet Explorer XMLHttpRequest nesnesini bir ActiveX nesnesi olarak Safari Mozilla
Firefox ve Opera ise sadece normal bir JavaScript nesnesi olarak yorumlar
Windows un guumlncelleme sisteminin temelini olu turan ActiveX Web sayfalar ndaki
aktif nesneleri etkinle tiren oumlzel bir Microsoft teknolojisidir ActiveX i mevcut Web taray c lar
aras nda u anda sadece Microsoft Internet Explorer desteklemektedir Microsoft IE nin di er
suumlruumlmleri iccedilin MSXML geli tirerek daha aktif ve kararl bir yap olu turulmu tur IE nin farkl
suumlruumlmleri iccedilin a a daki bile enler kullan l r [45]
MicrosoftXMLHttp
MSXML2XMLHttp
MSXML2XMLHttp30
MSXML2XMLHttp40
MSXML2XMLHttp50
29
IE 60+ taray c lar iccedilin a a daki tan mlama yap l r
var nesne = new ActiveXObject(Msxml2XMLHTTP)
IE 55 suumlruumlmleri iccedilin ise a a daki tan mlama yap l r
var nesne = new ActiveXObject(MicrosoftXMLHTTP)
Mozilla Firefox Opera Safari gibi taray c lar iccedilin ise a a daki tan mlama yap l r
var nesne = new XMLHttpRequest ()
Ayn anda birden fazla internet taray c s (ie firefox opera vb) ile uyumlu Web
uygulamalar iccedilin ccedilapraz taray c deste i ifadesi kullan lmaktad r Ccedilapraz taray c deste i bir
arayuumlz kodlamas nda kodlay c lar n en ccedilok zaman harcad konudur Guumlnuumlmuumlzde ccedilapraz
taray c deste i bir zorunluluk haline gelmi tir [46] AJAX uygulamalar n n sorunsuz tuumlm
taray c larla uyumlu bir ekilde ccedilal abilmesi iccedilin JavaScript iccedilerisinde try-catch bloklar
yazarak taray c ya goumlre yeni bir nesne olu turulur
function NesneOlustur()
var nesne
try
nesne = new ActiveXObject(Msxml2XMLHTTP) IE 60+ taray c lar iccedilin
catch(e)
try
nesne = new ActiveXObject(MicrosoftXMLHTTP) IE 55 taray c lar iccedilin
catch(e)
try
nesne = new XMLHttpRequest () Firefox Opera 80+ ve Safari taray c lar iccedilin
30
catch(e)
alert( Maalesef taray c n z AJAX desteklemiyor)
return null
return nesne
Yukar da tan mlanan fonksiyon sayesinde dinamik ve ccedilapraz taray c deste ine sahip bir
XHR nesnesi olu turulmu tur
3512 XHR Nesnesinin Oumlzellik ve Youmlntemleri
XMLHttpRequest nesnesine eklenebilen oumlzellikler Tablo 31 de goumlsterilmektedir [42]
Tablo 31 Standart XHR nesnesinin oumlzellikleri
Oumlzellikler Tan mlar
onreadystatechange
Nesnenin readyState oumlzelli i de i ti inde hangi olay tutucunun (event
handler) ccedila r laca n belirler
readyState ste in durumunu raporlayan tamsay de eridir
0 = uninitialized ( stek haz rlanmad Henuumlz open youmlntemi kullan lmad )
1 = loading ( stek haz rland goumlnderiliyor)
2 = loaded ( stek goumlnderildi)
3 = interactive ( stek de erlendiriliyor ve sonuccedil bekleniyor)
4 = completed ( stek tamamland ve sonuccedil geldi)
responseText Form iccedilindeki metin dizesi sunucu taraf ndan veriye doumlnuuml tuumlruumlluumlr
responseXML Sunucu taraf ndan bir belge nesnesi gibi ifade edilen veri geri doumlnduumlruumlluumlr
Status Sunucu taraf ndan geri doumlnduumlruumllen HTTP durum kodudur Oumlrne in 404
kodu Not Found yani istenilen sayfa bulunamad anlam na gelir 200 ise
OK de eri goumlnderir ve i lemin tamamland n belirtir
31
statusText Status oumlzelli inin metin kar l n verir
XMLHttpRequest nesnesinin fonksiyonunu artt ran ek youmlntemler Tablo 32 de
goumlsterilmektedir Bu youmlntemler sayesinde sunucuyla asenkron ileti im kurulur
Tablo 32 Standart XHR nesnesinin fonksiyonlar
[42]
Youmlntemler Tan mlar
abort() Geccedilerli iste i iptal eder
getAllResponseHeaders()
Gelen cevab n ba l k bilgilerini string olarak getirir
getresponseHeader(x) x gibi bir parametre olarak verilen ba l k bilgisini getirir
setRequestHeader(xy) stekle goumlnderilen ba l k bilgisine istenilen etiketi ya da de eri atar
Tablodaki youmlntemler d nda open ve send youmlntemleri de s kccedila kullan lmaktad r
Open youmlnteminin parametreleri a a da goumlsterilmektedir
nesneopen( POST | GET URL asynch username password)
1 Parametre Web sayfas na yap lacak iste in hangi youmlntemle yap laca n belirtir
2 Parametre stek yap lacak Web sayfas n n URL adresi E er GET youmlntemi
kullan l yorsa querystring lerin de erleri URL e birle tirilerek belirtilmelidir
3 Parametre True de eriyle yap lacak iste in e zamans z olaca false de eri ile
e zamanl
olaca belirlenir E er false de eri verilirse i lem bitene kadar taray c di er
kullan c isteklerine cevap veremeyecektir True yap l rsa istek ayr bir i lem olarak ele
al nacakt r
4 ve 5 Parametre Opsiyonel parametreler olup e er istek yap lan Web sayfas ifre ve
kullan c ad istiyorsa bu ekilde goumlnderilebilir [47]
Open ile haz rlanan istek sunucuya goumlnderilir E er open ile accedil lan istek post metodunu
kullan yorsa send metodu parametre olarak goumlnderilecek veriyi ta yabilir
Send metodu parametresiz veya null parametresi ile de kullan labilinir Send metodunda
cevab n gelip gelmedi inin anla labilmesi iccedilin yani e zamanl haberle menin hangi safhada
oldu unun belirlenebilmesi iccedilin Tablo 31 deki oumlzellikler eklenir Send metodunun kullan m
ekli a a da verilmi tir [42 47 48 49]
nesnesend() veya nesnesend(null)
32
3513 XHR Ccedilal ma Mant
ekil 313 bir AJAX uygulamas nda standart etkile imli bir paradigmay
goumlsterir [49]
lem ad mlar a a da s ralanmaktad r
ekil 313 Standart AJAX etkile imi [49]
1 stemci tarafl bir olay AJAX olay (event) tetikler stemcinin a a daki gibi her
hangi bir hareketi onchange olay n ba lat r
ltinput type=text d=eposta name=eposta onblur=validateEposta()gt
2 Oumlrnek bir XHR nesnesi olu turmak iccedilin open() youmlntemi kullan l r ve ccedila r lar iccedilin
ayarlan r URL ayarlar iste e goumlre kullan lacak HTTP youmlntemlerinden GET ya da
POST a goumlre belirlenir A a daki kod oumlrne inde oldu u gibi istek send() youmlntemi
ile bir ccedila r y tetikler
var xmlHttp
function validateEposta()
var eposta= documentgetElementById(eposta)
var url = validateeposta= + escape(epostavalue)
if (windowActiveXObject)
xmlHttp = new ActiveXObject(MicrosoftXMLHTTP)
else if (windowXMLHttpRequest)
xmlHttp = new XMLHttpRequest()
xmlHttpopen(GET url)
xmlHttponreadystatechange = gericagir
33
xmlHttpsend(null)
3 Sunucuya bir istek yap l r Bu bir servlet CGI script PHP ya da ASPNET ile
yaz lm herhangi bir sunucu tarafl (server-side) script olabilir
4 Sunucu herhangi bir veri ambar na eri ebilir
5 stek taray c ya geri doumlnduumlruumlluumlr XHR nesnesi Content-Type ayar textxml dir
XHR nesnesi sadece texthtml tipindeki sonuccedillar i leyebilir Daha karma k
oumlrneklerde cevap JavaScript DOM manipuumllasyon ya da ba ka benzer teknolojiler
iccedilerebilir
responsesetHeader(Cache-Control no-cache)
responsesetHeader(Pragma no-cache)
Taray c lokal sonuccedillar oumln belle inde depolamaz Bunun iccedilin yukar daki kod sat rlar na
ihtiyaccedil duyar
6 Bu oumlrnekte i lemler geri doumlnduumlruumllduuml uumlnde gericagir() ad ndaki XHR fonksiyonu
ayarlan r Bu fonksiyon sunucudan goumlnderilen durum kodlar na bakar ve XHR
nesnesinin readyState oumlzelli ini kontrol eder gericagir() fonksiyonu beklendi i gibi
i lenmi se a a daki gibi bir kod parccedilas goumlruumlluumlr
function gericagir()
if (xmlHttpreadyState == 4)
if (xmlHttpstatus == 200)
stek Ba ar l
Yukar daki anlat mla XHR nesnesinin ccedilal ma mant na de inilmi tir Genellikle
kullan lan standart ccedila r lar oumlrneklenmi tir Bu ccedila r lar yap l rken bir kuumltuumlphaneden yap lan bir
uygulamadan da faydalan labilir Yeni bir ccedilal ma alan olmas na ra men accedil k kaynak
topluluklar nda hat r say l r etkinlikler yap lmaktad r [49]
Uygulamalar olu turulurken genellikle ccedile itli frameworkler ve toolkitlerden faydalan l r
Bunlardan baz lar sadece istemci tarafl ccedilal r baz lar ise sunucu uumlzerinde ccedilal maya ihtiyaccedil
duyar
34
Bu frameworkler suumlrekli de i en ve geli en bir ortam oldu u iccedilin yeni kuumltuumlphaneler ve
suumlruumlmleri takip edilmelidir En yayg n kullan lan kuumltuumlphanelerin ba nda Prototype
scriptaculous Dojo Toolkit Direct Web Remoting (DWR) Taconite ve Rico gelmektedir [49]
36 AJAX Olu turan Bile enler
Asynchronous JavaScript and XML kelimelerinin ba harflerinden olu an AJAX
kavram kullan l zengin Web uygulamalar geli tirebilmek iccedilin pratik bir araccedilt r [50]
AJAX n A parccedilas veri ileti im tekni ini JA parccedilas ileti im youmlntemini X
parccedilas tekni in veri kodlama k sm n olu turur AJAX tam manas yla anlayabilmek iccedilin onu
olu turan bile enlerin her birini de anlamak gerekmektedir [41]
361 E zamanl Olmayan leti im
AJAX tekni inin ccedilekirde ini olu turan XMLHttpRequest nesnesi hem e zamanl hem
de e zamans z olarak ccedilal abilen bir yap uumlzerine kurulmu tur
Ccedilo u AJAX uygulamas XHR nesnesini asenkron olarak kullan r Asenkron istek
taray c ya goumlnderilir ama sunucudan bir cevap gelmesini beklemektense sonraki istek kodlar
i letilmeye devam eder lenen cevap goumlnderildi inde XHR nesnesinin onreadystatechange
oumlzelli i bir fonksiyona ba lan r Bu fonksiyonun i letilmesinden sonra readystate koduyla
iste in durumu test edilir readystate oumlzelli i 4 de erini ald nda sunucuya istek tamamland
ve sonuccedil geldi mesaj gider [51]
A a daki kod parccedilas nda asenkron bir ileti im goumlsterilmektedir [51]
get recipe using Ajax
function getRecipe(evnt)
if (xmlhttp) xmlhttp = aaGetXmlHttpRequest( )
if (xmlhttp) return
var drink = encodeURIComponent(documentgetElementById(drink)value)
var qry = drink= + drink
var url = recipephp + qry
xmlhttpopen(GET url true)
xmlhttponreadystatechange = printRecipe
xmlhttpsend(null)
if (evnt ampamp evntpreventDefault( ))
evntpreventDefault( )
35
return false
E zamans z ileti imde kullan c ayn zaman diliminde birden fazla i lem yapabilir
Oumlrne in Web sayfas nda bir form dolduruldu unda formdaki bilgiler AJAX ile goumlnderilirken
i lemin bitmesini beklemek gerekmemektedir O zaman diliminde Web sayfas n n ba ka bir
yerinde bulunan anket cevapland r labilir Ccediluumlnkuuml e zamanl
ccedilal l rken bloke edilen JavaScript
motoru e zamans z ccedilal rken serbesttir ve ba ka isteklerin goumlnderilmesine muumlsaade eder Yani
ayn zaman dilimi iccedilerisinde birden fazla iste i kabul edebilir [52]
ekil 314 E zamanl olmayan ileti im modeli
ekil 314 te goumlruumllduuml uuml gibi ayn zaman dilimi iccedilerisinde 4 adet istek yap lm t r
Kullan c bu isteklerin tamamlanmas n beklemek zorunda de ildir Bu sebeple istemci ve
sunucu aras ndaki t kla-bekle-t kla-bekle etkile imi ortadan kalkmaktad r
362 E zamanl leti im
Senkron isteklerde taray c cevap iccedilin beklerken kilitlenir
var state = documentforms[0]elements[0]value
var url = ajaxphpstate= + state
xmlhttpopen(GET url false)
xmlhttpsend(null)
alert(xmlhttpgetAllResponseHeaders( ))
Yukar daki kod dizesiyle bir form alan na Web servisi uumlzerindeki HTTP GET istek
yap s kullan larak eri ilir Uumlccediluumlncuuml sat rdaki open youmlnteminin uumlccediluumlncuuml parametresinin false
olmas n n anlam iste in e zamanl (senkron) oldu unu goumlsterir Herhangi bir parametre
almadan null de erli istek goumlnderilir stek goumlnderildikten hemen sonra uyar mesaj kutusu
36
accedil larak cevap ba l yaz l r [51] Kullan lan Web servisi h zl ysa cevap hemen gelir E er
servis yava sa istek bitinceye kadar di er sayfa aktiviteleri gerccedilekle emez [51]
E zamanl
ileti imde ayn zaman diliminde yaln zca bir i lem yap labilinir Web
taray c m zdan uzaktaki Web sunucusuna goumlnderilen istek Web sunucusunda i lenir ve tekrar
geldi i yoldan Web taray c s na geri doumlner Bu i lem belli bir zaman al r E zamanl
ccedilal rken
bu zaman diliminde ba ka bir istek goumlnderilemez [52]
E zamanl
ccedilal ma oumlzellikle Web sunucusu ayn bilgisayarda ise veya yak n olan bir
LAN uumlzerindeyse sa l kl ccedilal abilir Fakat Web sunucusu a r bir yuumlk alt ndaysa veya Web
taray c s Web sunucusuyla yava bir ba lant uumlzerinden etkile ime geccediltiyse koumltuuml bir
performans verecektir Ccediluumlnkuuml Web taray c s iccedilindeki JavaScript motoru goumlnderdi i istek
tamamlan ncaya kadar bloke edilir ve Web taray c s donmu bir ekilde iste in
tamamlanmas n bekler Bu zaman diliminde kullan c goumlnderilen iste i iptal de edemez Bu
yuumlzden Web sayfas ndaki ba ka bir noktaya t klayamaz veya ba ka bir sekmeye geccedili yapamaz
[52]
ekil 315 E zamanl
ileti im modeli
ekil 315 de goumlruumllduuml uuml gibi Web taray c s ndan goumlnderilen 1 nolu istek Web
sunucusuna iletilmektedir Al nan istek i lendikten sonra Web taray c s na geri
goumlnderilmektedir Bu zaman diliminde ba ka bir istek yap lamaz
363 Javascript
1995 y l nda Brendan Eich ad ndaki yaz l m geli tiricisi taraf ndan Netscape Navigator
20 ile birlikte geli tirilen JavaScript dili istemci tarafl
(client-side) bir betik (script) dilidir
Web sayfalar nda dinamik iccedilerik sa lamak ya da kullan c yla ileti im kurmak iccedilin kullan l r [53]
Bu ileti imin sa lanabilmesi iccedilin ortak kurallar duumlnyada uluslararas standart kurumu olan
Avrupa Bilgisayar Uumlreticileri Birli i (European Computer Manufacturers Association-ECMA)
taraf ndan belirlenir Temel kurallar ECMA Script (ECMA-262) ad verilen bir standartta
toplanm t r [54]
37
Javascript in soumlz dizim kurallar C diline benzerlik goumlsterir Derleme i lemi yap lmayan
ayr t rmal (parsed language) bir dildir Nesne youmlnelimli programlama (Object Oriented
Programming - OOP) yetene ine sahiptir [55]
AJAX n JavaScript le olan ili kisi k saca u ekilde oumlzetlenir Herkes taraf ndan
bilinen goumlnder (submit)-cevap(response) doumlnguumlsuumlnuumln oumlnuumlne geccedilerek kullan c lar n Web
sunucusuyla direk etkile im iccedilinde bulunmas n sa lar [56] AJAX goumlnder duuml mesi olmaks z n
sunucu etkile imini sa lar Veriye ihtiyaccedil duyuldu unda Web sayfas iccedilindeki Javascript kodlar
ile bir istek yapar Sunucu cevab tam bir HTML sayfas olarak de il veri olarak geri doumlnduumlruumlr
ve istemciyi cevaplar Cevab n bu ekilde olu turulmas Web uygulamalar n n masauumlstuuml
uygulamalar gibi ccedilal abilmesini sa lar [56]
Sonuccedil olarak Javascript HTML kodlar aras na goumlmuumllebilen kod parccedilalar d r Bunun
yan s ra tek ba na js uzant l JavaScript kodlar da yaz labilir Bu kodlar Internet Explorer
Firefox Opera vb tuumlm taray c lar taraf ndan desteklendi i iccedilin sorunsuz ccedilal r [57]
3631 JavaScript Ccedilal ma Prensibi
JavaScript kodlar
iccedilin herhangi bir metin editoumlruuml kullan labilir ya da Notepad gibi bir
duumlz yaz program yla da kodlar olu turulabilir Taray c lar n yorumlayabilmesi iccedilin ltSCRIPTgt
etiketiyle ba layan ltSCRIPTgt etiket ile biten JavaScript kodlar HTML belgelerinin ccedile itli
yerlerine eklenebilir Eklenen kodlar kullan c lar n HTML belgesindeki bir ba lant ya t klamas
veya klavyede bir tu a basmas yla tetiklenir ya da HTML sayfas kullan c
Browser nda
goumlruumlntuumllendi i anda otomatik olarak ccedilal maya ba lar Otomatik ccedilal an Javascript kodu ise iki
ayr youmlntemle ccedilal t r labilir lk youmlntem HTML kodlar i letilmeden oumlnce (yani Web sayfas
kullan c n n Web Browser nda goumlruumlntuumllenmeden oumlnce) ccedilal mas ikinci youmlntem sayfa
goumlruumlntuumllendikten sonra script kodlar n n ccedilal mas d r [58] Bu youmlntemler a a da s ras yla
accedil klanmaktad r
HEAD boumlluumlmuumlnde
BODY boumlluumlmuumlnde
HEAD Boumlluumlmuumlndeki Scriptler HEAD etiketleri iccediline ltSCRIPTgt ltSCRIPTgt etiketi
kullanarak istenilen JavaScript kodlar
eklenebilir Bu kodlar HTML sayfas n n BODY boumlluumlmuuml
yuumlklenmeden i lenir
38
ltHTMLgt
ltHEADgt
ltSCRIPT LANGUAGE=Javascript12gt
alert(Merhaba Duumlnya) ltSCRIPTgt
ltHEADgt
ltBODYgt
ltBgtDeneme Sayfas na Ho geldinizltBgtltbrgt
ltBODYgt
ltHTMLgt
Yukar daki oumlrnekte kaynak kodlar yukar dan a a ya do ru i letilirken sayfada ilk
goumlruumlntuumllenecek olan alert( ) komutuyla ekrana yaz lan Merhaba Duumlnya
ileti im kutusu
olacakt r Gelen ileti im kutusunda Tamam butonuna bas ld nda body boumlluumlmuumlndeki
kodlar n i lenmesine s ra gelecektir Ekrana Deneme Sayfas na Ho geldiniz mesaj
yazacakt r
BODY Boumlluumlmuumlndeki Scriptler HTML belgesinin BODY boumlluumlmuumlnde JavaScript
kullanmak iccedilin iki yol vard r
Do rudan ccedilal acak kodlar ve kullan c taraf ndan ccedilal acak kodlar
Do rudan ccedilal acak JavaScript kodlar
ltBODYgtltBODYgt etiketleri aras na
ltSCRIPTgt etiketi kullan larak HTML belgesinin istenilen yerine yaz l r Bu cuumlmleler taray c
taraf ndan okundu u anda yerine getirilir
ltHTMLgt
ltHEADgt
kinci Ornek
ltHEADgt
ltBODYgt
ltSCRIPT LANGUAGE=Javascript12gt
alert(Javascript duumlnyas na ho geldiniz)
ltSCRIPTgt
ltBODYgt
ltHTMLgt
Yukar daki oumlrnekte ise kod i leme s ras na uygun olarak i letilerek oumlnce HEAD
etiketleri yorumlanarak ekrana kinci Ornek yaz p hemen ard ndan ileti im kutusu ccedil karak
39
Javascript duumlnyas na ho geldiniz yazacakt r Kullan lan di er bir youmlntem ise kullan c
taraf ndan bir olay n ba lat lmas yla bir JavaScript kodunun ccedilal t r lmas d r
ltHTMLgt
ltHEADgt
ltSCRIPT LANGUAGE=Javascript12gt
genel de i ken tan mlar
var n = Merhaba Duumlnya
bu fonksiyon uyar kutusu accedilar
function merhaba()
alert(n)
ltSCRIPTgt
ltHEADgt
ltBODYgt
ltbrgtltbrgtltbrgtltbrgtltBgtButona T klad n zda Merhaba Duumlnya yazan ileti im kutusu ekrana
gelecektirltBgtltbrgtltbrgt
ltFORMgt
ltINPUT TYPE=SUBMIT NAME=dugme1 VALUE=TIKLAYINIZ
onclick=merhaba()gt
ltFORMgt
ltBODYgt
ltHTMLgt
Yukar daki oumlrnekte ise HEAD etiketleri aras nda de i ken tan mlama ve fonksiyon
olu turma i lemleri yap lm t r BODY komutu i letildikten sonra FORM ouml esiyle olu turulan
duuml me kullan c taraf ndan t kland nda script kodu tetiklenerek fonksiyon ccedila r l r ve mesaj
kutusu ekrana gelir
Ayr ca ltBODYgt iccedilinde URL kullan larak da a a daki oumlrnek kodla goumlsterildi i gibi
JavaScript kodu ccedila r labilmek muumlmkuumlnduumlr
ltA HREF=javascript alert(Ccedil kmak istedi inizden emin misiniz)gtSiteden Ccedil kltAgt
40
3632 Javascript Dilinin Oumlzellikleri
JavaScript dilinin temel soumlz dizim yap s na a a da incelenecektir
36321 De i kenler
Bir de eri iccedileren bellek adlar n ifade ederler De i kenler verileri saklar ve onlara
eri imi sa larlar De i kenlerin bir ad olur bir de de eri olur Program boyunca de i kenin ad
de i mez fakat iccedileri i de i ebilir
Bir JavaScript de i keni belli kurallara uymak zorundad r
a) De i kenler harfle ya da alt ccedilizgi (_) ile ba lamal d r Rakam veya di er
i aretler birinci karakter olarak kullan lamaz fakat de i ken ad n n di er
karakterlerinde kullan labilir
b) Javascript buumlyuumlk kuumlccediluumlk harfe kar duyarl d r (case-sensitive oumlzellli i) Ayn
kelimenin buumlyuumlk harfle yaz lmas ile kuumlccediluumlk harfle yaz lmas farkl isimler
olarak alg lanmas na neden olur
c) De i ken isimleri iccedilinde bo luk olmamal d r
d) Kullan c lar n bilgisayar nda kullan lan dil setinin ayarlar her bir kullan c iccedilin
farkl l k goumlsterebilece i iccedilin ngilizce alfabede bulunmayan Tuumlrkccedile ve di er
dillerdeki high-ASCII karakterleri ( ile uuml Uuml ouml Ouml ccedil ve Ccedil)
kullanmamakta fayda vard r [58]
36322 Kapsam
Bir de i kene bir de er atand nda bu de erin geccedilerli olaca suumlreyi belirlemek iccedilin
kapsam (scope) kavram kullan l r Bir de i kenin kapsam
global ya da lokal olabilir Bir
global de i kene sayfa uumlzerinde herhangi bir JavaScript ten eri ilebilir Lokal de i ken ise
de erin atand yordam iccedilinde geccedilerlidir
A a daki oumlrnekte bir de i kenin kendisine atama yaparak de er verilir
adi= Zeynep
Bir fonksiyon yaz l rken yerel bir de i ken olu turmak iccedilin a a daki oumlrnekte oldu u
gibi var kelimesiyle tan mlama yap l r
41
function toplama()
var sayi=1
toplam=0
deyimler
Yukar daki oumlrnekte sayi adl de i ken toplama fonksiyonu iccedilin yerel toplam de i keni
ise tuumlm sayfa iccedilin genel (global) de i ken olacakt r De i kenlere atanan de erler Tablo
33 deki de i ken tuumlrlerinden herhangi biri olabilir Verinin tuumlruumlne ba l olarak de er uumlzerinde
belirli i lemler yap labilir ya da yap lamaz Oumlrne in iki string de er uumlzerinde aritmetik i lem
yap lamaz
Tablo 33 De i ken tuumlrleri
De i ken Tuumlrleri
Numbers Tam ve ondal kl
say lar iccedilerir Pozitif 0 ya da negatif olabilir
Booleans Mant ksal veri tuumlruumlduumlr True (Do ru) ya da False (Yanl ) de erini al r Sorgulama
sonunda geriye True iccedilin 1 False iccedilin 0 de erini doumlnduumlruumlr
Strings Karakter bilgi iccedileren bir de i kendir T rnak iccedilinde yaz lan ifadeler de i kene
atan r
Objects Taray c ya ait nesnelerdir nesne= new Object() eklinde kodlamada kullan labilir
Null Oumlzel bir de i kendir ccedili bo ya da de ersiz olarak ifade edilir
Undefined
Bir de i ken yarat ld ktan sonra iccedilerdi i tan ms z de eri simgeler
36323 leccediller (Operators)
leccediller iki ya da daha fazla de er uumlzerinde i lem yap lmas n sa lar De erler ya da
de i kenler aras nda toplama ccedil karma mod gibi i lemler yap labilir
Tablo 34 leccediller ve goumlrevleri
leccediller ve Goumlrevleri
+ Toplama
- Ccedil karma
Ccedilarpma
Boumllme
42
MOD Boumllmede kalan verir (10 3 i lemi 1 de erini verir )
++
Tek art r m De er 1 art r l r
-- Tekli azaltma
- Negatifle tirme lenenin negatif de erini doumlnduumlruumlr
36324 kili leccediller
kili i leccediller birden ccedilok kar la t rma i lemini tek bir ko ul ifadesi olarak birle tirirler
Oumlrne in
sayi =1 AND dongu gt 1000 ise gibi
Tablo 35 kili i leccediller
kili i leccediller
ampamp
Mant ksal Ve And ki ifade de do ruysa True de erini doumlnduumlruumlr
|| Mant ksal Veya Or fadelerden birisi do ruysa True de erini doumlnduumlruumlr
Mant ksal De il Not Negatifle tirme i lemi do ruysa True de erini doumlnduumlruumlr
36325 Atama Deyimi
Atama deyimi (=) bir de i kene sa dan bir de erin atanmas n sa lar De i kenlere
tuumlrlerine ve tan mlamalar na uygun olan herhangi bir de er atanabilir
Oumlrnek sayi=100
Oumlrnek toplam=(fiyat+kdv)
Sa daki de eri soldaki de i kene atayan += -= = = ifadeleri de kullan labilir
Oumlrne in toplam+=fiyat (di er bir de i kenden gelen fiyat de erini toplam de erine
ekler ve sonucu toplam de i kenine atar)
36326 fadeler
De i kenlerin i leccedillerin ve deyimlerin bir araya gelerek olu turduklar yap lar
ifade
eder
Oumlrne in toplam = sayi 1 sayi2 formuumlluuml bir ifadedir
43
36327 Deyimler
Deyimler belli bir komut ya da soumlz dizimi bile enlerine verilen add r Oumlrne in bir komut
ya da bir IF yap s deyim olabilir
Oumlrnek if (basari_notugt50) deyimler else deyimler
36328 Nesneler
Kendi de erleri oumlzellikleri ve i lemleri olan bile enlere nesne (object) denir JavaScript
dilinde ccedilok say da yerle ik nesne vard r
JavaScript buumltuumln Web sayfas n ve taray c y nesneler toplulu u olarak goumlruumlr Bu
sisteme DOM (Document Object Model) denir [59]
JavaScript kullanarak dinamik ve etkile imli goumlruumlnuumlmler elde edilir DOM a JavaScript
ve JScript gibi ECMAScript olan kullan c taraf ndaki bir scripting dili yard m yla eri ilebilinir
DOM la veri al -veri i yeni bir sayfada kullan c ekran na yans t lmaz Parccedilal guumlncelleme
olay n n buumlyuumlk k sm bu modelle gerccedilekle tirilir
Ba lang ccedilta Javascript geli tiricileri kullan c lar na daha zengin uygulama deneyimleri
ya atabilmek ve sayfalardaki etiketlerde dinamik de i imler sa lanabilmesi iccedilin ccedilaba sarf
ediyordu Bu durum sayfalar n bir nesne gibi i lenebilmesini gerekli k ld Boumlylece DOM ortaya
ccedil km t r lk oumlnceleri Javascript ve DOM s k bir ili ki iccedilindeydi sonuccedilta ise iccedilerik ayr larak
geli tirilmi tir DOM sayfalar n JavaScript veya VBScript gibi bir betik dili ile de i tirilebilir
sayfalar n tamamen nesne youmlnelimli goumlsterimidir [60]
DOM ekil 316 da goumlsterilen JavaScript iccedilindeki buumltuumln nesneleri ifade etmektedir
Hiyerar ik olarak ccedilok say da nesneyi iccedilerir NetScape ve Microsoft taray c lar iccedilin DOM
nesneleri farkl oldu u iccedilin yaz lan kodlar uyumlu de ildir [59]
44
ekil 316 Javascript nesneleri [59]
Window nesnesi taray c n n kendisidir Window nesnesi birccedilok youmlnteme oumlzelli e ve
olaya sahiptir Form nesnesi DOM nesnesinin ana nesnesidir Form uumlzerindeki alanlar bu nesne
arac l yla kullan l r [59]
Verilerin yuumlklenmesinde kullan lan XML ile uumlretilen Javascript istemci kodlar ve veri
sunucu uumlzerindeki kodlar aras ndan ayr larak goumlsterilir Bu istemcinin etkilenmeksizin sunucu
uumlzerinde de i iklik yap lmas n sa lar Benzer API iccedileren di er istemciler iccedilin bilgileri accedil a
ccedil kar r [41]
363281 DOM (Document Object Model)
Document Object Model (DOM) XML ve HTMLXHTML iccedilin World Wide Web
Consortium (W3C) taraf ndan geli tirilen bir belgenin a accedil yap s n (tree-based) temsil eden bir
standartt r DOM bir tak m nesneler iccedilin belgenin yap s n temsil etmesinin yan s ra bu
nesnelere eri im iccedilin youmlntemler de sa lar [44]
DOM bir belgenin stilini kaynak dosyas n yap s n ve iccedileri ini guumlnceller ve program
ile scriptlerin belgeye eri imine izin veren bir platformdur Ayn zamanda bir API (application
programming interface) dir [62]
Nesneleri iccedileren belgeler iccedilin standart model olarak DOM uumlccedil boumlluumlme ayr lm t r
Core DOM
XML
HTMLXML DOM - XML
45
HTML DOM
HTML
DOM da her internet sayfas bir belge ve bu belge iccedilerisinde bulunan tuumlm elemanlar ise
nesne olarak kabul edilir DOM sayfa uumlzerindeki her bir XML eleman
iccedilin nesnelerin a accedil
yap s n n resmini goumlrselle tirmenin kolay bir yoludur A a daki oumlrnek basit bir XML
belgesinin doumlrt duuml uumlmden olu an DOM u goumlstermektedir Koumlk Dokuumlman duuml uumlmuuml koumlk etiketi
iccedilin bir Element duuml uumlmuuml alt etiketler iccedilin bir Element duuml uumlmuuml ve alt etiketin sahip olaca
herhangi bir bilgi girilebilen bir metin duuml uumlmuumlduumlr [41]
ltrootTaggt
ltchildTaggtSome TextltchildTaggt
ltrootTaggt
Bir a accedil yap s n n goumlrsel bir temsili a a da goumlsterilmektedir
Dokuumlman
Element (koumlkEtiket)
Element (altEtiket)
Metin
A a daki kod kuumlmesinin [63] DOM goumlsterimi ekil 317 deki gibidir
ltTABLE border=1gt
ltTBODYgt
ltTRgt
ltTDgtOumlgr NoltTDgt
ltTDgtAd Soyad ltTDgt
ltTRgt
ltTRgt
ltTDgt900ltTDgt
ltTDgtZeynep OumlZERltTDgt
ltTRgt
ltTBODYgt
ltTABLEgt
46
ekil 317 DOM a accedil yap s
[63]
Geccedilerli her HTML ve XML belgesindeki element nitelik metin duuml uumlmuuml (text node)
hatta bo luk ve sekme karakterleri(whitespace) bile W3C DOM taraf ndan duuml uumlm (node) olarak
kabul edilir ekil 317 deki gibi belgedeki duuml uumlmlerin kullan m hiyerar isine goumlre
s ralanmas na da duuml uumlm a ac (node tree) denir Belge nesnesi yeni duuml uumlmler olu turmak bu
duuml uumlmlerin oumlzeliklerini de i tirmek ve youmlnetmek iccedilin ccedilok say da youmlnteme sahiptir
363282 DOM Elementinin S k Kullan lan Genel Oumlzellikleri ve Youmlntemleri
A a da duuml uumlmlere eri mek ve youmlnetmek iccedilin s k kullan lan JavaScript youmlntemleri
vard r [64]
getElementById()
Soumlzdizimi
documentgetElementById(herhangiBirID)
Oumlrnek kullan m
element = documentgetElementById(kimlik)
getElementById() youmlntemi id oumlzelli i belirtilen elementlerin referans n n al nmas n
sa lar Ayn id kimli ine sahip ba ka bir element olmas durumunda sadece ilk elementi verir
Di erlerine eri im sa lamaz kimlik
dokuumlman uumlzerinde elementi bulmak iccedilin kullan lacak
e siz bir oumlzelli ini ifade eder
47
getElementsByTagName()
Soumlzdizimi
documentgetElementsByTagName(herhangiBirHTMLElementi)
Oumlrnek kullan m
documentgetElementsByTagName(etiketAdi)
Dokuumlman uumlzerinde belirtilen ayn etiket ismine ait buumltuumln elementlerin bir listesini verir
documentgetElementById(herhangiBirID)documentgetElementsByTagName()
parametresiyle id niteli inin de eri herhangiBirID olan elementin duuml uumlmleri
iccedilindeki tuumlm elementler listelenir
getElementsByName()
Soumlzdizimi
documentgetElementsByName(herhangiBirIsim)
Oumlrnek Kullan m
documentgetElementsByName(baslik)
Bu youmlntem dokuumlman uumlzerinde belirtilen name oumlzelli ine sahip elementlerin bir listesini
verir Oumlrnek kullan mda name niteli inin de eri baslik olan elementleri verir
firstChild
Bu oumlzellik elementin ilk alt elementini verir
Soumlzdizimi
documentgetElementById(herhangiBirID)firstChild
lastChild
Bu oumlzellik elementin son alt eleman n verir
Soumlzdizimi
documentgetElemementById( herhangiBirID )lastChild
48
nodeValue
nodeValue oumlzelli i text comment ve CDATA duuml uumlmlerinin iccedilerdikleri de eri verir
Soumlzdizimi
m= documentgetElemementById( herhangiBirID )lastChildnodeValue
m e er varsa duuml uumlmuumln iccedilerdi i de erin string olarak de eridir document nesnesinin
ve elementlerin nodeValue de eri null doumlner
removeAttribute()
removeAttribute fonksiyonu elementin belirtilen bir oumlzelli inin silinmesini sa lar
Soumlzdizimi
elementremoveAttribute(ozellik)
ozellik silinecek oumlzelli in ad d r
nodeName
Duuml uumlm bilgilerini almak iccedilin kullan l r Geccedilerli duuml uumlmuumln ad n doumlnduumlruumlr
Geccedilerli duuml uumlm element ise elementin tipini doumlnduumlruumlr Nitelik ise nitelik ad n doumlnduumlruumlr
nodeType
Geccedilerli duuml uumlmuumln tuumlruumlnuuml say sal olarak doumlnduumlruumlr
nextSibling
Duuml uumlmler aras gezinti yap labilmesiyi sa lar Geccedilerli duuml uumlmden bir sonrakine referans verir
previousSibling
Geccedilerli duuml uumlmuumln bir oumlncekine referans verir
setAttributeNode
Bir duuml uumlme nitelik atamada kullan l r
Soumlzdizimi
elementsetAttributeNode(nitelik)
49
36329 Fonksiyonlar
Fonksiyonlar birden fazla ad mdan olu an i lemlerin kolayca tek seferde yap lmas n
sa lar Fonksiyonlar bir dizi i lemi yerine getirir ve bir sonuccedil doumlnduumlruumlr Ayr ca fonksiyonlar
parametre olarak kabul edilen birccedilok de er al rlar
Fonksiyonlar n HTML dosyas n n HEAD boumlluumlmuumlne koyulmas yani gerekli buumltuumln
fonksiyonlar alt alta HTML in HEAD boumlluumlmuumlnde yer alacak bir SCRIPT etiketi iccedilinde
olu turulmas taray c n n Javascript yorumlay c s bak m ndan h z kazanmas n sa lar Sonra
ihtiyaccedil duyuldu unda yeni bir SCRIPT etiketi koyarak bu fonksiyon goumlreve ccedila r l r [58]
function fonksiyonun_ad (arguumlman1 arguumlman2 arguumlmanN)
i lemler
deyim 1
deyim 2
deyim N
363210 Accedil klamalar
Programlar n anla l r olmas n sa layan accedil klama sat rlar JavaScriptte bu lt- ve --gt
i aretlerinin aras nda ifade edilir [58]
lt- Accedil klama sat r d r --gt
37 Basit Bir AJAX Oumlrne i
Ekran ccedil kt s ekil 318 de goumlruumllen basit bir oumlrnek uumlzerinde i leyi anlat lacakt r
ekil 318 AJAX oumlrne i
50
indexhtml dosyas accedil ld nda Metnin AJAX la getirilmesi iccedilin tiklayiniz
ba lant s na t kland nda taray c kullan lan AJAX youmlntem sayesinde tuumlm sayfa yeniden
yuumlklenmeden iccedileri i sunucu da depolanan sonuchtm dosyas ndan alarak ekrana yans t r
Yukar daki indexhtml dosyas n n kodlar a a da goumlsterilmektedir
lthtmlgt
ltheadgt
lttitlegtAJAXla oumlrne ilttitlegt
ltscript language=JavaScript type=textjavascriptgt
function getXmlHttpRequestObject()
if (windowXMLHttpRequest)
return new XMLHttpRequest() IE olmayan
else if(windowActiveXObject)
return new ActiveXObject(MicrosoftXMLHTTP) IE
else
alert(Maalesef taray c n z XmlHttpRequest nesnesini desteklememektedir AJAX
destekleyen bir taray c da tekrar deneyiniz)
var receiveReq = getXmlHttpRequestObject()
function cevap()
if (receiveReqreadyState == 4 || receiveReqreadyState == 0)
receiveReqopen(GET sonuchtml true)
receiveReqonreadystatechange = handlecevap
receiveReqsend(null)
function handlecevap()
if (receiveReqreadyState == 4)
documentgetElementById(span_result)innerHTML = receiveReqresponseText
ltscriptgt
ltheadgt
lta href=javascriptcevap()gtMetnin AJAXla getirilmesi icin tiklayinizltagtltbr gt
51
ltspan id=span_resultgtltspangt
lthtmlgt
Oumlrnekte ilk olarak tuumlm taray c larda sorunsuz ccedilal abilmesi iccedilin ccedilapraz taray c deste i
sa lanm t r receiveReq de i keni getXmlHttpRequestObject() ile tan mlanm t r Daha
sonra cevap fonksiyonu olu turulmu tur Sunucudan gelen cevab n durumu ifelse yap s yla
kontrol edilmi tir Sunucudan gelen gelen cevaba goumlre doumlnduumlruumllen de erlerle sonuchtml sayfas
ccedila r larak uygulama sonlan r
AJAX youmlntemi ile ccedilekilen bilginin tutuldu u sonuchtml dosyas nda ise sadece ekil
319 de yazan veri bulunmaktad r
ekil 319 sonuchtml sayfas n n ekran ccedil kt s
38 XML
XML (eXtensible Markup Language) internet te teknik standartlar ve youmlnetim
konusunda yetkili organ olan W3C (World Wide Web Consortium) organizasyonu taraf ndan
geli tirilmi tir XML programc lar n kendi sistemlerini olu turabilecekleri kendi etiketlerini
tan mlayarak ccedilok daha rahat ve etkin programlama yapabilecekleri ve bu belirlenen etiketleri
kendi yap lar iccedilerisinde standartla t rabilece i esnek geli tirilebilir ve kolay uygulanabilir bir
meta-dil (bir dili tan mlamak iccedilin kullan lan soumlzcuumlkler dilbilim dili) dir [65]
XML ile ilgili ilk ve en oumlnemli nokta ba l ba na bir dil olmamas d r Daha ziyade
di er dilleri ya da bir dili olu turan soumlzcuumlkleri olu turmak (vocabularies) iccedilin kullan lan bir
meta-dildir XML bu soumlzluumlklerin olu turulmas iccedilin gerekli kurallar tan mlar [66]
XML bu kural yap s na uygun olarak etiketleri iccedilerik bilgisiyle tan mlayabilir XML nin
esnek yap s sayesinde a a daki oumlrnekte oldu u gibi kullan lan dilde ccedilok farkl tiplerde etiket
olu turulmas na muumlsaittir XML soumlzluuml uumlndeki tek k s tlamas etiketlerin iyi biccedilimlendirilmi
olmas gerekti idir [66]
52
ltnotgt
ltkimegt Melek lt kimegt
ltkimdengt Zeynep lt kimdengt
ltbaslikgt Hatirlatici ltbaslikgt
ltbodygt Bana proje teslim tarihini hatirlat lt bodygt
ltnotgt
Yukar daki not oumlrne i kendi kendini accedil klay c bir oumlrnektir Goumlnderici ve al c bilgisinin
yan nda mesaj metni ve ba l da mevcuttur XML nin HTML de oldu u gibi oumlnceden
tan mlanm etiketleri yoktur XML yazar kendi etiketlerini ve kendi belge yap s n oumlrnekteki
gibi olu turabilir
Her dil farkl d r ama hepsinde iccedileri i i aretlemek iccedilin etiketler kullan l r Etiket
adlar n n seccedilimi ve yap s esnektir ve genellikle gruplarda bilginin payla labilmesi iccedilin standart
XML soumlzluumlkleri kararla t r lm t r [66]
XML 1998 y l nda SGML alt yap s uumlzerine kurulmu tur SGML (Standard
Generalized Markup Language) bir etkinle tirme teknolojisidir HTML gibi uygulamalarda
kullan l r Geni letilebilir aretleme Dili (Extensible Markup Language-XML) nin oldukccedila
basit bir diyalektidir [66]
XML SGML ve HTML sistemlerinin her ikisinin de uygulanmas n kolayla t rmak iccedilin
tasarlanm t r XML ayn zamanda son derece popuumller bir veri format d r Ccediluumlnkuuml ccedilo u
programlama dili taraf ndan desteklenir Bu dil sayesinde geli iguumlzel veri tipleri tan mlamak
kolayd r Ccedilo u kez XML Uzak Yordam Ccedila r s - Remote Procedure Call (RPC) mekanizmas
sayesinde istemci-sunucu ileti imini kolayla t rmak iccedilin kullan lm t r [66] XML elde edilmek
istenen alan bilgileri konfiguumlrasyon parametreleri teknik ccedilizim hesap ccedilizelgesi (spreadsheet)
gibi ouml eleri iccedileren dosyalar n yaz l m nda kullan l r [67]
XML verileri goumlruumlntuumllemek iccedilin de il verilerin platformdan ba ms z bir ekilde
depolanmas ve transferi iccedilin tasarlanm t r XML tuumlm bilgiler duumlz metin format nda saklar Bu
da tuumlm platformlarda sorunsuz bir ekilde kullan labilir olmas n sa lar Bu dosyalar diskte duumlz
metin olarak tutman n bir avantaj
da olu turuldu u programda accedil lmas gerekli de ildir Bu
yaz dosyalar programc n n istedi i bir yaz i leme program nda accedil l p duumlzenlenebilir Ayr ca
XML veriyi duumlz metin (plain text) format nda saklamas ndan dolay veriyi payla t rma
konusunda hem yaz l m hem de donan mdan ba ms z hareket edebilme imkacircn n sunmu tur
53
381 Oumlrnek XML Belgesi Olu turma
XML belgelerinin yap s n n daha iyi kavranabilmesi iccedilin basit bir oumlrnekten yola ccedil k l r
Bir dizi karakter mant ksal bir yap ya ccedilevrilmelidir Bu ccedilevrim a accedil yap s kullan larak
yap labilir Oumlrnek belgede koumlk dizin ya da element ve alt boumlluumlmler iccedilin de dallar belirlenir
denemexml olarak kaydedilecek belgenin iccedileri inde sisteme kay tl kullan c lar n bilgileri
vard r
Haz rlanan denemexml belgesinin a accedil yap s a a daki gibi olu turulmu tur Koumlk
element ve alt dallar ve alt dala ait nitelik belirtilmi tir
ekil 320 denemexml dosyas n n a accedil yap s
A accedil yap s olu turulduktan sonra kodlama k sm na geccedililir XML de kod yaz m n
kolayla t rmak iccedilin Altova XMLSpy MoreMotion XML Editor XMLwriter XML Editor 26
gibi ccedile itli editoumlr programlar kullan labilir Bu tez ccedilal mas nda oldukccedila i levsel oumlzelliklere
sahip Altova XMLSpy yaz l m kullan lm t r Editoumlr kullanarak dokuumlmandaki metinlerin
yap sal elemanlar yaz oumlzellikleri (renk stil biccedilim vb ) belirginle tirilir mlerin otomatik
soyadi
adi
soyadi
eposta
adi
soyadi
eposta
Kullanicilar Kullanici Kullanici_id= 2
Kullanici Kullanici_id= 3
Kullanici Kullanici_id= 1
adi
eposta
54
olarak kapanmas sa lanabilir Olu turulan yap lar n do rulu u ve geccedilerlili i kolayca kontrol
edilebilir Altova XMLSpy editoumlruumlyle olu turulan belge a a daki kodlardan olu maktad r
ltxml version=10 encoding=UTF-8gt lt--Bu XML belgesi kullan c bilgilerini tan mlar --gt ltKullanicilargt
ltKullanici kullanici_id=1gt
ltadigtZeynepltadigt
ltsoyadigtOZERltsoyadigt
ltepostagtz_ozerhotmailcomltepostagt
ltKullanicigt
ltKullanici kullanici_id=2gt
ltadigtYagmurltadigt
ltsoyadigtOZERltsoyadigt
ltepostagty_ozeryahoocomltepostagt
ltKullanicigt
ltKullanici kullanici_id=3gt
ltadigtFatihltadigt
ltsoyadigtAYDOGMUSltsoyadigt
ltepostagtf_aydogmusgmailcomltepostagt
ltKullanicigt ltKullanicilargt
Haz rlanan dokuumlman iyi biccedilimlendirilmi (well-formed) bir yap ya sahiptir ekil 321
de Altova XMLSpy editoumlruumlyle olu turulan belgenin ekran goumlruumlntuumlsuumlnde denemexml
goumlruumllmektedir
55
ekil 321 XML belgesi
382 XML Dokuumlman n n Yap s
XML ile veriler yap bak m ndan moduumllerlik kazanmaktad r Bu sayede verilerin iccedilerik
yap ve sunum k s mlar ayr moduumlller halinde farkl XML dokuumlmanlar nda tutulmaktad r
Her XML belgesini olu turan moduumlller iki boumlluumlmde incelenecektir Bu moduumlller giri
boumlluumlmuuml (prolog) ve belge ya da koumlk duuml uumlm (document node) olarak ayr lm t r
Prolog XML belgesinin ba nda goumlruumlntuumllenir ve belge hakk nda iccedilerikle ilgili bilgiler
iccedilerir XML bildirimleri i lem accedil klamalar yorumlar ve DTD (Document Type
Definition)XML ema iccedilerebilir
yi duumlzenlenmi bir XML dokuumlman tek ve temel bir koumlk duuml uumlm uumlzerine kurulur
Elementler nitelikler metin CDATA (character data) varl k ve yorumlar iste e ba l olarak
eklenebilir
56
ekil 322 Oumlrnek bir XML dokuumlman yap s
[ 66]
3821 Giri Boumlluumlmuuml (Prolog)
Bu boumlluumlmde XML belgesinde bulunabilecek oumln tan mlama konular incelenecektir
3822 XML Bildirimleri
XML dokuumlmanlar genellikle a a daki bildirim sat r yla ba lar Bildirim sat r ndan
oumlnce ba ka komut sat r yaz lmamal d r Tersi bir durumda XML dokuumlman iccedileri i i leme
koyarken do ru bir ekilde okuyamaz ve hata mesaj uumlretir
ltxml version= 10 encoding= UTF-8
gt
Bu i lem sat r nda ba lang ccedil etiketi ve biti etiketi yoktur XML bildiriminin yap ld
ltxml ve gt i lem komut etiketleridir lem komutlar oumlrnekteki gibi biti ik yaz l r Bu oumlrnek
sat rda 2 tane oumlznitelik bar n r Birinci oumlznitelik xml dokuumlman n n hangi suumlruumlm oldu unu bildirir
ve yaz lmas zorunludur En yayg n kullan lan ve en guumlncel suumlruumlmuuml olan 10 yerine ba ka bir
57
de er yaz ld nda dosya i lenmeyebilir kinci oumlznitelik olan encoding belge i lenirken
kullan lacak dil seccediliminin belirtildi i aland r Oumlrnekteki kod birccedilok dili destekleyen UTF-8
karakter dil setini tan mlar
38221 lem Accedil klamalar (Processing Instructions)
Giri boumlluumlmuumlnde di er uygulamalara XML dokuumlman hakk nda bilgi veren i lem
accedil klamalar (Processing Instructions- PIs) dacirchil edilebilir lem accedil klamalar lt karakterleriyle
ba lar ve gt karakterleriyle biter PIs XML belgesinin di er boumlluumlmlerinde goumlruumllebilmesine
ra men genellikle giri boumlluumlmuumlnde goumlruumlluumlr
XML bildirimleri ltxml karakter grubuyla ba lar lem accedil klamalar yla benzerlik
goumlsterir Fakat aralar ndaki fark XML bildirimleri ltxml karakter grubuyla ba larken i lem
accedil klamalar ise lt karakterleriyle ba lar
Bir XSL stylesheet i referans goumlsteren PI goumlsterimi
ltxml-stylesheet type= textxsl
href= stylesheetxsl gt
PI nin ilk ouml esi bir isimdir PI hedefi olarak adland r l r Yukar da goumlsterilen PI xml-
stylesheet ismine sahiptir simler ltxml karakter grubundan - semboluumlyle ayr l r PI ler type=
textxsl href= stylesheetxsl metin karakter dizesine sahiptir Oumlrnek kod sat r nda stylesheet
ad nda metin iccedilerikli bir XSL dosyas referans goumlsterilmi tir
38222 Yorumlar (Comments)
Yorum sat rlar XML belgesinin hemen hemen her yerinde iste e ba l olarak
kullan labilir XML yorum sat rlar XHTML belgelerindeki yap yla ayn d r Ayn karakterlerle
ba larlar
lt--Bu alana yorumlar yaz labilir --gt
Yorum sat rlar XML belgesi i lenirken etkilenmezler Bu sat rlar programc lar n ya da
kullan c lar n program kodlar n kolayca anlayabilmeleri iccedilin yaz l r [68]
58
38223 Dokuumlman Tipi Tan mlama-The Document Type Definition (DTD) ve XML
emalar
XML belgesinin standartla t r lmas iccedilin kullan lan bir yap d r XML belgesinin hangi
elementleri iccedilerece ini ve bu elementlerin oumlzniteliklerinin ne olaca n elementlerin neleri
ta yaca n dokuumlman iccedilerisindeki tekrar eklini ve say s n kurallarla belirtir [69]
382231 DTD kullanman n Avantajlar
Veri depolama XML nin temel amaccedillar ndan birisidir Oumlrne in yaz l m geli tirecek bir
proje ekibi ccedilal rken ortak bir DTD nin olu turulmas yla geli iguumlzel yeni etiketler eklenmesinin
etiketlerle depolanan bilginin hatal s ralanmas n n etiketlere hatal nitelikler eklenmesinin
oumlnuumlne geccedililmi olur Ayr ca i lem yapan program n da bu belgeleri tan mas ve i lemesi kesinlik
kazan r [70] Belge i lenirken geccedilerlilik derleyicileri (validating parsers) XML belgesinin DTD
geccedilerlili i sa lanana kadar tekrar tekrar kontrol eder E er geccedilerlilik kontroluumlnden geccedilemezse
derleyici hata mesaj verir [66]
ccedileri in bir standarda oturtulmas yla AJAX ve dinamik DOM manipuumllasyonunda
istenmeyen gereksiz kod parccedilalar n n ve ccedilal mayan i aretlemelerin oumlnuumlne geccedililir Ayr ca daha
h zl HTML derleyicileri ve daha iyi ccedilapraz taray c performans iccedilin geli mi arama motoru
optimizasyonu sa lan r Bir DOCTYPE belirlemenin en oumlnemli etkisi HTML iccedileri inin nas l
ayr t r ld n ve yorumland n n Web taray c ya goumlsterilmesi gerekti ini belirtmesidir Ayr ca
DOCTYPE ba l olarak CSS yorumlanabilir ve HTML farkl ekilde goumlruumlntuumllenir [71]
Hangi i lem moduna dacirchil oldu u tespit edilerek Web taray c lar
DOCTYPE
doumlnuuml uumlmuumlnuuml destekler Web taray c lar bir Web sayfas n n nas l HTML ve CSS iccedileri ini
yorumlad n
ve de erlendirdi ini sayfalar n DOCTYPE bildirimlerine dayanarak de i tirir
[71]
382232 DTD tan mlama
DTD olu umu iki yolla yap labilir Birinci yol belge iccedilerisinde a a daki oumlrnekte oldu u
ilk standart sat rdan sonra ltDOCTYPE ile ba layan ve gt i areti ile biten aral kla DTD tan m
yap lmas d r DTD alan nda bir kok_element_adi etiketi tan mlanm t r [ ]
i aretleri aras nda
iccedilsel olarak tan mlanm t r Bu etiketin iccedilerisine element_icerigi olarak alt alanlar belirtilir
XML dokuumlman n n iccedilerik k sm na tan mlanan kok_element_adi etiketleri aras na istenilen metin
giri i yap l r
59
ltxml version= 10 encoding= UTF-8 gt
ltDOCTYPE kok_element_adi
[ltELEMENT kok_element_adi (element_icerigi) gt ]
gt
lt kok_element_adi gt Bu basit bir DTDli XML ornegidir lt kok_element_adi gt
kinci yol ise Web sayfalar n n iccedileri i bir geccedilerlilik servisi kullan larak onaylanmas d r
Do rulu u W3C1 taraf ndan garantiye al nan bir DTD ile geccedilerlilik kontroluuml sa lanabilir [71]
HTML XHTML SMIL MathMLvb Web dokuumlmanlar n n httpvalidatorw3org adresinden
URI adresi dosyalar upload edilerek ya da direk i aretleme giri i yap larak geccedilerlilik kontroluuml
yap labilir [72]
DTD tan m a a daki oumlrnekteki gibi HTML belgesine harici olarak
httpwwww3orgTRxhtml1DTDxhtml1-strictdtd adresindeki haz r kural yap s
dacirchil edilir
Kural ak bu adresten sa lan r [72] A a daki kod sat r nda XML veri tan mlamas na goumlre
ltcodegtltcodegt etiketleri olu turulmu tur
ltDOCTYPE html
PUBLIC -W3CDTD XHTML 10 StrictEN
httpwwww3orgTRxhtml1DTDxhtml1-strictdtdgt
lthtmlgt
ltbodygt
ltpgt Bu alana serbest metin giri i yap labilir
ltcodegt
Bu alanda ise XML veri tan mlamas DTD tan m na goumlre yap lm t r
ltcodegt
ltpgt
ltbodygt
lthtmlgt
Programc lar n en ccedilok ihtiyaccedil duyabilece i 6 tane oumlncelikli DOCTYPE belgelerinin
listesi a a da verilmi tir [72]
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401EN
httpwwww3orgTRhtml4strictdtdgt
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN
httpwwww3orgTRhtml4loosedtdgt
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 FramesetEN
60
httpwwww3orgTRhtml4framesetdtdgt
ltDOCTYPE html PUBLIC -W3CDTD XHTML 10 StrictEN
httpwwww3orgTRxhtml1DTDxhtml1-strictdtdgt
ltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalEN
httpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgt
ltDOCTYPE html PUBLIC -W3CDTD XHTML 10 FramesetEN
httpwwww3orgTRxhtml1DTDxhtml1-framesetdtdgt
382233 DTD ccedilinde Element Tipi Bildirimleri
Elementler hakk nda bilgi veren kodlard r Kullan lan yap ELEMENT ile ba lar
element ad ve element iccedileri inin eklenmesiyle sonlan r
ltELEMENT elementName (elementContents)gt
Element iccedileri i a a daki gibi bo olarak ta tan mlanabilir
ltELEMENT elementName (EMPTY)gt
Element iccedileri inde alt dallar-duuml uumlmler olu turulacaksa a a daki oumlrnekte oldu u gibi
DVD koumlk duuml uumlmuumlne le ayr larak s ras yla baslik format tarz element isimleri yaz l r
Belirlenen s ralama XML belgesi iccedilinde goumlruumlnecek s ralamay da olu turur
ltELEMENT DVD (baslik format tarz)gt
Parsed Character Data (PCDATA) veri tuumlruuml element iccedileri inin metinsel ifade olaca n
bildirir XML ayr t r c s bu metindeki karakter ve varl k referanslar n ccediloumlzuumlmler A a da
ltbaslikgt ltformatgt lttarzgt bildirimlerinin iccedilerik tuumlruuml PCDATA olarak tan mlan r
ltELEMENT baslik (PCDATA)gt
ltELEMENT format (PCDATA)gt
ltELEMENT tarz (PCDATA)gt
61
XML belgelerinde tan mlanan bir element herhangi bir veri kombinasyonunu iccedilerebilir
Bu durumda iccedilerik tuumlruuml ANY olarak tan mlan r En serbest iccedilerik tan m d r Oumlrnek kullan m
a a da goumlsterilmektedir
ltELEMENT KATALOG ANYgt
Elementlerin alabilecekleri nitelikler DTD iccedilerisinde tan mlan r Element iccedilerikleri
hakk nda daha detayl bilgiye ula lmas n sa lar Tablo 36 da kullan labilecek niteleyiciler
goumlsterilmektedir
Tablo 36 DTD karakterleri ve accedil klamalar
Karakter Accedil klama
Elemandan s f r veya daha ccedilok bulunabilir
Alt elemanlar s rayla belirler
| Bir grup element aras nda seccedilim yap lmas na izin verir
+ Elemandan bir veya daha ccedilok bulunabilir
Elemandan s f r veya 1 tane bulunabilir
Sembol olmamas o elementin bir kez goumlruumlnmesi gerekti ini bildirir
Oumlrnek goumlsterimde KULLANICI elementine ait alt element olan AD ouml esi birden fazla
de er alabilece ini goumlsterir TEL bildirimi ile kullan c ya ait di er bilgiler girilirken telefon
numaras
giri i eksik olarak kalabilece ini ve sonradan eklendi inde ise yeni kural
tan mlamas na gerek kalmadan etiket tan mlamas n n yap labilece ini bildirir
ltELEMENT KULLANICI (ADI+ TEL)gt
382234 DTD ccedilinde Nitelik Liste Bildirimleri
Nitelik bildirimleri element bildirimlerinden sonra goumlruumlnuumlr ve biraz daha karma k bir
yap ya sahiptir Bir elementin sahip oldu u oumlzellikler bir liste halinde belirtilebilir
Nitelik liste bildirimi a a daki yap yla goumlsterilir
ltATTLIST Element_adi Nitelik_adi Nitelik_tipi varsayilan_degergt
ltATTLIST DVD id CDATA REQUIREDgt
62
Kod parccedilas nda yaz lan varsayilan_deger niteli in gerekli olup olmad n belirtir
Nitelik tipleri Tablo 37 deki de erleri alabilir
Tablo 37 DTD ccedilindeki niteliklerin de er ve accedil klamalar
[73]
De er Accedil klamas
CDATA De er karakter verisi olmal
(en1|en2|) De er parantez iccedilindeki de erlerden birisi olmal
ID a unique identifier- benzersiz bir tan mlay c -kimlik
IDREF De er ba ka bir eleman n ID si olmal
IDREFS De er ba ka ID lerin listesi olmal
NMTOKEN De er geccedilerli XML ad olmal
NMTOKENS De er geccedilerli XML ad listesi olmal
ENTITY De er bir varl k olmal
ENTITIES De er bir varl k listesi olmal
NOTATION De er bir notasyon olmal
xml De er oumlnceden tan mlam bir XML de eri olmal
Varsay lan de er ise Tablo 38 deki de erleri alabilir
Tablo 38 Varsay lan de erler ve accedil klamalar
De er Accedil klama
deger Niteli in Default de eri
REQUIRED Nitelik de eri Eleman iccedilinde geccedilmek zorundad r
IMPLIED Nitelik de eri Eleman iccedilinde geccedilmek zorunda de ildir
FIXED value Nitelik de eri sabittir E er nitelik de eri belirtilirse default de eri
yazmak zorunludur
A a daki oumlrnekte URUN elementinin RENK niteli i seccedilimli olarak k rm z ye il ya da
mavi olas de erleri tan mlanm t r Varsay lan de eri ise k rm z olarak belirtilmi tir [73]
ltATTLIST URUN RENK (red|green|blue) redgt
63
382235 DTD ccedilinde Varl k (Entity) Bildirimleri
Varl k bildirimleri XML belgesinde kullan lan de i ik tuumlr ve biccedilimlerdeki verilerin
XML belgesine aktar lmas n sa lar Di er programlama dillerinde kullan lan moduumll ya da
makrolar gibi s kl kla kullan lan metin bloklar
varl k olarak tan mlanarak sayfan n istenilen
yerine kolayca eklenebilir Eklenen metin uumlzerindeki de i iklikler varl k bildirimiyle
duumlzenlenebilir [73]
Ayr ca d ar dan bir dosyay
varl k olarak tan mlayarak iccedilindeki veri XML belgesinde
kullan labilinir Bu veri metin olmak zorunda de ildir DTD bir varl k olarak tan mlamak iccedilin
a a daki sat r n kullan lmas
gerekmektedir [73]
ltENTITY varl k_ad varl k_degerigt
ltENTITY copyright Copyright 2009 Yayinevigt
Harici bir dosyadan al nacak bir varl k iccedilin soumlz dizimi ise a a daki gibidir
ltENTITY varl k_ad SYSTEM URIURLgt
ltENTITY tableOfContents SYSTEM entitiesdenemexmlgt
(Not URL = Uniform Resource Locator URI = Uniform Resource Identifier )
38224 XML emas
XML emas DTD lere benzer ekilde XML belgesinin yap s n ve bulundurabilece i
verilerin tuumlruumlnuuml tan mlamakta kullan l r XML emalar
xsd dosya uzant l d r ema XML
belgesinde kullan labilecek ouml eleri nitelikleri ve veri tuumlrlerinin yan s ra XML belgesinin soumlz
konusu XML emas iccedilin geccedilerli olmas n sa lamak amac yla uyulmas gereken yap y da
tan mlar [74]
XML emalar DTD yap lar na goumlre daha guumlccedilluuml bir yap ya sahiptir DTD iccedilerisinde
eleman iccedileri i string ve di er birkaccedil veri tipi ile s n rl d r XML ema integer floating point
say lar date time gibi daha geni bir veri tipi deste i sa lamaktad r XML ema ayr ca accedil k
iccedilerik modeli (open content model) ve isim uzay
(namespace integration) gibi ek oumlzellikler de
sunmaktad r XML ema belgeleri olu turulmas s ras nda XML soumlzdizimi kullan l r Bu DTD
lere goumlre ccedilok belirgin bir uumlstuumlnluumlk sa lar Ccediluumlnkuuml yeni bir soumlz dizimi ouml renilmesi yerine
XML in XML emaya oumlzel komutlar n n ouml renilmesi yeterli olur [75]
64
A a daki oumlrnek ema tan mlamas nda xs schema elementi ile ba layan bir koumlk ouml e
vard r
ltxml version=10 encoding=UTF-8gt
ltxsschema
xmlnsxs=httpwwww3org2001XMLSchemagt
ltxsschemagt
ema elementi iki tane oumlzelli e sahiptir
name
xmlns
ema iccedilin bir isim tan mlamas name oumlzelli i ile sa lan r xmlns oumlzelli inin ise oldukccedila
oumlnemli bir goumlrevi vard r Bu oumlzellik sayesinde oumlrne in Microsoft un schema belirtimlerini
kullanabilmesi iccedilin urnschemas-microsoft-comxml-data de erine ayarlanmas gerekir
A a daki oumlrnekte XML ema belgesi iccedilin name ve xmlns niteliklerinin basit kullan m
goumlsterilmektedir [66 75]
ltschema name=kutuphane xmlns= urnschemas-microsoft-comxml-datagt
lt - - ema iccedileri i buraya yaz l r- -gt
ltschemagt
Oumlrnek XML belgesi olu turma ba l alt nda verilen oumlrne in ema dosyas olan
denemexsd nin kodlar ve ekran goumlruumlntuumlsuuml ekil 323 deki gibidir
ltxml version=10 encoding=UTF-8gt ltxsschema xmlnsxs=httpwwww3org2001XMLSchemagt
ltxselement name=Kullanicilargt
ltxscomplexTypegt
ltxssequencegt
ltxselement ref=Kullanici minOccurs=0 maxOccurs=unboundedgt
ltxssequencegt
ltxscomplexTypegt
ltxselementgt
ltxselement name=Kullanicigt
ltxscomplexTypegt
ltxssequencegt
ltxselement name=adi type=xsstringgt
ltxselement name=soyadi type=xsstringgt
ltxselement name=eposta type=xsstringgt
ltxssequencegt
ltxsattribute name=id type=xsinteger use=requiredgt
65
ltxscomplexTypegt
ltxselementgt
ltxsschemagt
ekil 323 denemexsd nin ekran goumlruumlntuumlsuuml
3823 Belge Duuml uumlmleri
XML dokuumlman nlar ndaki belge duuml uumlmleri a a da incelenecektir
38231 Elementler
XML dokuumlmanlar ndan bahsederken etiket ve element terimleri kullan lmaktad r lk
ba ta birbirinin yerine kullan labilir gibi goumlruumlnse de asl nda farkl iki terimdir Element terimi
herhangi bir iccedilerikle birlikte etiketlerin accedil l p kapanmas olarak tan mlanabilir Etiket elementin
bir parccedilas d r Etiketler de kouml eli parantez accedil larak ba lan r ve sonunda kapat larak bitirilir
A a daki oumlrnek sat rda ltxyztgt etiketlerini iccedileren tam bir element goumlruumllmektedir
Accedil l etiketi Kapan etiketi
ltxyztgtXML de etiket ve element fark ltxyztgt
ccedilerik
Element
66
38232 Nitelikler
Her XML belgesi karakter verisi ve biccedilimlendirmeden olu ur Genellikle karakter verisi
ba lang ccedil ve biti etiketleri aras nda metinsel bilgi iccedilerir
XML etiketlerine bir ya da daha fazla nitelik tan mlanabilir
ccedilerik ya da
Nitelik ba ka etiketler
ltKullanici kullanici_id= 1 gt ltKullanicigt
Etiket sim De er
Accedil l etiketi Kapan etiketi
Element
38233 Metin
Accedil lan ve kapat lan tuumlm etiketlerin iccedileri ini olu turur CDATA gibi metin i aretlemesi
yap lmad kccedila tuumlm metin XML kural yap s na goumlre i lenecektir [66]
38234 CDATA Boumlluumlmuuml
CDATA XML yap s iccedilerisinde i lenmeyecek metinleri bloklar halinde i aretlemeye
yarar XML derleyici bu boumlluumlmde metin iccedilerisinde yer alan i aretleme ay raccedillar n ve etiketlerini
normal karakterler olarak alg lar CDATA yap s ltCDATA[ ile ba lar ve]] kouml eli parantezlerin
kapanmas yla sona erer
ltbaslikgtltCDATA[
]]ltbaslikgt
CDATA boumlluumlmleri Javascript gibi goumlmuumlluuml kodlar XML belgelerinde kullanabilir ve bu
boumlluumlmlere i leme ihtiyaccedil duyulmayan iccedilerik eklenebilir Oumlrne in bir uygulamada veritaban ndan
veri okumas ve i aretlemesi buumltuumln iccedileri in XML belgesine goumlmme bilgisini vermede
karakterler i lenirken accedil kccedila ayr lmas n n oumlnuumlne geccedilebilmek iccedilin CDATA boumlluumlmleri kullan l r
[66]
67
38235 Varl klar
Bir karakteri temsil eden sembol grubuna varl k denir Oumlrne in Ampersand i areti
yerine yani ve yerine kullan lan ampamp ya da bir karakterlik bo luk b rakmak iccedilin
nonbreaking space yerine ampnbsp semboluuml kullan l r
ltmatematikgt18 lt 36ltmatematikgt
Yukar daki kod sat r nda bu element i lenmeye ccedilal ld nda hata iletisi verecektir
Ccediluumlnkuuml 36 de erinin oumlnuumlndeki etiket accedilma i areti olarak alg lanacak ve kod sat r n n i leme
al nmas nda yanl l a neden olacakt r Bu hatay duumlzeltmek iccedilin kod sat r n n a a daki gibi
yaz lmas yeterli olacakt r
ltmatemetikgt18 amplt 36ltmatemetikgt
Tablo 39 da s k kullan lan karakterlerin varl k sembolleri goumlsterilmektedir
Tablo 39 XML Belgelerinde kullan lan varl k bildirimleri
Karakter Varl k
amp ampamp
ampapos
gt ampgt
lt amplt
ampquot
383 XML nin Soumlz Dizim Kurallar
XML iccedileri in i aretlenmesi iccedilin etiketleme dili kullan l r Bu etiketlemeler yap l rken
baz kurallar goumlz oumlnuumlnde bulundurulur imdi bu kurallar incelenecektir
1) XML dili buumlyuumlk kuumlccediluumlk harfe kar duyarl d r XML de kuumlccediluumlk harf kullan m esast r
Oumlrnek yaz m a a daki gibidir [76]
lttable WIDTH= 100 gt kullan m yanl t r
lttable width= 100 gt kullan m do rudur
68
2) Her etiket kapat lmal d r Oumlrne in ltkelimegt etiketini takip eden sat r sonuna ltkelimegt
etiketi de eklenmelidir
3) Dokuumlmanda buumltuumln elementleri iccedileren bir koumlk eleman olmas gerekir Oumlrnek yaz mda
oldu u gibi alt ouml eler duumlzenli bir yap da yaz lmal d r [76]
ltrootgt
ltchildgt lt childgt
ltsubchildgt lt subchildgt
lt rootgt
4) Etiketler belirlenirken bir element ba ka elementleri iccediline alacak ekilde tasarlanabilir
ccedilten d a do ru etiketlerin hepsi kapat lmal d r
ltbgtltigtBu metin koyu ve e ikltbgtltigt yanl kullan m
ltbgt ltigt Bu metin koyu ve e ik lt igt lt bgt do ru kullan m
5) XML elementleri oumlzel karakter verileri bo elementler CDATA ya da yorumlar
bar nd rabilir
6) Oumlznitelik de erleri t rnak iccediline al nm olmal d r Tek t rnak ya da ccedilift t rnak olabilir
lttable width=100gt kullan m yanl t r
lttable width= 100 gt kullan m do rudur
7) Element adlar harfler rakamlar tire alt ccedilizgi iki nokta i aretlerini ve noktalar
iccedilerebilir ki nokta i areti sadece namespace kullan m iccedilindir xml ile ba layan eleman
isimleri oumlnceden tan mlanm oumlzel isimlerdir [86]
ltkullanilabilirIsimlergt
ltisimgt
ltxslcopy-ofgt
ltUzun_bir_isimgt
ltNoktalarlaayrilmisbirisimgt
lth823323123-231-231gt
lt_23gt
ltkullanilabilirIsimlergt
8) Etiketleme yap l rken rakamla ba lamamas na dikkat edilmelidir Bo luk yer
almamal d r
69
384 XML Dokuumlmanlar n n leyi i ve Sunumu
XML i lemleri a accedil tabanl ve olay tabanl olmak uumlzere iki kategoriye ayr l r Verilerin
i lenmesinde XML parser yani ayr t r c kullan l r XML i lemciler genellikle XML ayr t r c
olarak da adland r l r A accedil tabanl ayr t r c lar DOM (Document Object Model) yakla m na
goumlre olay tabanl ayr t r c lar ise SAX (Simple API for XML) yakla m na goumlre veriyi ema
yap s ile birlikte XMLye oumlzguuml hiyerar ik yap da i ler lenen veriler uygulama ve
sorgulamalara haz r hale getirir [66 76]
Genellikle bir XML dokuumlman n XML formatl veri iccedilerik dosyas XSD (DTD yerine)
formatl ema dosyas ve XSL (CSS yerine) formatl stylesheet dosyas olmak uumlzere 3 dosyayla
tan mlanabilir Bu uumlccedil dosya tipi de XML destekli tuumlm sunucu ve veri tabanlar nda ccedilal t r labilir
Verinin yal n (native) olarak sakland veritaban youmlnetim sistemleri di er veritabanlar nda
kar la lan harici veri tipleri veya farkl format doumlnuuml uumlmlerine gerek duymad ndan sorgu
transfer ve entegrasyon i lemlerinin performanslar
oldukccedila yuumlksektir Ayr ca XML veritaban
youmlnetim sistemlerinde verinin yal n biccedilimde kendi iccedil format nda tutuluyor olmas n n bir
avantaj da eri imi kolayla t rmas d r Ba ka veritaban youmlnetim sistemi yakla mlar nda buna
benzer bir arama iccedilin karma k ccediloklu tablolar ara t r l r ve daha sonra XML verisine
doumlnuuml tuumlruumlluumlr Bu da i lem performans n n duuml mesine ve maliyet art r c ek uygulamalar
eklenmesine neden olur [66 76]
39 AJAX Prensipleri
AJAX yeni bir teknoloji olmas itibariyle henuumlz emekleme doumlnemindedir Bununla
birlikte birkaccedil Web tasar mc s bu yenili i ba a ccedil k lmas gereken bir sorun gibi alg lamaktad r
Bu sorun iyi bir AJAX Web uygulamas yapabilmek iccedilin s radan ya da koumltuuml bir uygulamaya
kar ne yap lmas gerekti i olarak tan mlanabilir Michael Mahemoff (wwwmahemoffcom)
bir yaz l m geli tirici ve kullan labilirlik uzman iyi Ajax uygulamalar iccedili birkaccedil temel ilke
belirlemi tir [37]
Minimal Trafik nternet trafi i internet uumlzerindeki veri ak d r Goumlnderilen ve al nan
mesajlar n miktar youmlnuuml web sitesine giren ziyaretccedililerin say s ziyaret ettikleri
sayfalar ccedilevrimiccedili trafi i olu turmaktad r AJAX uygulamalar nda amaccedil bu internet
trafi ini en alt seviyede tutmak iccedilin sunucudan muumlmkuumln olabildi i kadar az bilgi
goumlnderip almakt r Ayr ca bilgi ak nda gereksiz bilgilerin her seferinde goumlnderilip
al nmas n n oumlnuumlne geccedililmesiyle uygulamaya sa laml k kat l r
70
Kullan c etkile imli model Genellikle AJAX uygulamalar geleneksel Web
uygulamalar ndan farkl olarak de i ik kullan c etkile imli modeller sunar Web
standartlar ndaki t kla-bekle anlay na kar AJAX uygulamalar nda an nda suumlruumlkle
b rak ya da ccedilift t klamayla yak nla t rma gibi di er kullan c arayuumlz paradigmalar
vard r E er kullan c
etkile imli modeller seccedililirse kullan c
ne yapaca n bilir
Sade arayuumlz Yan p soumlnen sayfa boumlluumlmuuml ya da suumlrekli doumlnen animasyonlar gibi dikkat
da t c ve gereksiz sayfa elementlerinden kaccedil n l r Kullan c lar goumlze hitabeden
uyumlu ve sade sayfalar tercih etmektedir
Eri ilebilirlik nsanlar n ba lant h zlar ndan fiziksel engellerine ya ad uumllkenin
toplumsal yap s ndan ya l l a kadar birccedilok youmlnden eri ilebilirlik standartlar
incelenebilir Birincil ve ikincil kullan c lar n beklentilerine en uygun olacak AJAX
uygulamalar na eri im seccedilenekleri goumlz oumlnuumlnde bulundurulmal d r Oumlzel yaz l mlarla m
yoksa kullan lacak taray c oumlzellikleriyle mi adaptasyonun sa lanaca belirlenmelidir
Boumlylece yeni hedef kitleler de tamamen d ar da b rak lm olmayacakt r
Sayfan n tamam n indirilmesinden kaccedil nma Tetikleyici sayfa indirildikten sonra
tuumlm sunucu ileti imi AJAX motoru taraf ndan youmlnetilmektedir Boumlylece kuumlccediluumlk bilgi
al -veri leri iccedilin tuumlm sayfan n tekrar yuumlklenmesinin oumlnuumlne geccedililmi olur
lk kullan c AJAX uygulamalar nda tasar m kullan c lar n daha oumlnce
kar la mad klar bir biccedilimdedir Etkileyici efektler ve s k c olmayan bilgilendirici
reklamlarla genel kullan m durumlar n kolayca ba armaktad r
Buumltuumln bu ilkelerde bulunan ortak nokta kullan labilirliktir AJAX oumlncelikle kullan c lar
iccedilin web deneyimini geli tirmeye ccedilal rken arkas ndaki teknoloji sadece bunun iccedilin bir araccedilt r
Yukar daki ilkelere sad k kalarak AJAX uygulamalar oldukccedila faydal ve kullan l olacakt r
[37]
310 AJAX Kuumltuumlphaneleri ve Araccedillar
Kuumltuumlphaneler haz r fonksiyonlara kolayca eri im sa lar Ayr ca s k kullan lan var olan
kodlar tekrar yazarak zaman kaybedilmemesini sa lar A a da en ccedilok kullan lan AJAX
kuumltuumlphanelerine oumlrnekler verilmi tir
3101 Prototype
Prototype dinamik web uygulamalar yaratmak iccedilin kullanabilecek geli mi bir
kuumltuumlphanedir Accedil k kaynakl ve nesne tabanl kod kuumltuumlphanesidir Ajax iccedilin yaz lan
71
kuumltuumlphanelerin ilk oumlrneklerindendir ve di er haz r kuumltuumlphanelerin bir k sm prototypejs
kullanmaktad r [78]
3102 AJAX Gear Toolkit
AJAX olarak bilinen istemci tarafl tekni in buumltuumln avantajlar ndan faydalanmay
muumlmkuumln k lan bir araccedilt r XMLHttpRequest nesnelerini kullanarak internet taray c s n n
asenkron ccedila r yapmas n sa lar [78]
3103 AspNet Ajax
ASPNET AJAX ASPNET ile yap lan ve tuumlm nternet taray c lar nda ccedilal abilen
uygulamalar iccedilin Microsoft taraf ndan geli tirilen bir kuumltuumlphanedir Oumlnce Atlas daha sonra
ASPNET Ajax ad n alm t r ASPNET 20 ile kolay entegrasyon ASPNET 35 ile tam
entegrasyon sa lar Yeni nesil etkile imli arayuumlzler olu turmak iccedilin kullan l r [78]
3104 Dojo Toolkit
Accedil k kaynak kodlu bir javascript toolkit olup dhtml sorunlar n buumlyuumlk oumllccediluumlde ccediloumlzmuuml tuumlr
Arayuumlz programlama karma k kodlar n basite indirgenmesi toolkitin sa lad avantajlard r
Ayr ca dinamik web sitesi ya da ba ka ortamlar haz rlamay kolayla t ran ve sitenin daha
kullan l olmas n sa layan iccedilerikler sunar [78]
3105 MochiKit
Dreamweaver web uygulamalar iccedilin kullan lan ajax kuumltuumlphanelerinden birisidir E
zamanl olmayan davran lar iccedilin erteleme uygulamas n kulland ndan sunucuyla etkile im
halinde olan web sayfalar n n geli tirilmesinde tercih edilir [78]
3106 PHPLiveX
PHP ile yap lan uygulamalar iccedilin kullan lan bir kuumltuumlphanedir Versiyon 25 ile gelen
yenilikler ve optimizasyonlar kuumltuumlphanenin potansiyelini ciddi biccedilimde artt rm t r Di er php
tabanl kuumltuumlphaneler gibi php fonksiyonlar n javascript koduyla ccedila r r fakat di erlerine goumlre
daha az kodla kullan m sa lar [78]
72
3107 Sardalya (Sarmal Dinamik Altyap s )
Sardalya Dinamik AJAX Kuumltuumlphanesi DOM deste i olan tuumlm guumlncel taray c larda
ccedilal mak iccedilin tasarlanm bir AJAX Kuumltuumlphanesi dir Linux windows freebsd osx sun gibi
platformlarda ccedilal abilir Tuumlm taray c lardan ba ms z olarak ccedilal r ve kullan m s ras nda az
yer kaplar [78]
3108 Sajax
Sajax n accedil l m Simple Ajax Toolkit tir ASP ve PHP tabanl programlarda AJAX
uygulamalar geli tirmek iccedilin kullan lan bir kuumltuumlphanedir Buumltuumln sunucu tarafl platformlara
ccedila r goumlnderebilme yetene ine sahiptir [78]
3109 Solvent
AJAX uygulamalar n moduumller bir yap da gerccedilekle tiren farkl bir kuumltuumlphanedir
JavaScript ile yaz lm t r ve tuumlm taray c lardan ba ms z olarak ccedilal an bir AJAX uygulamas d r
Web uygulamalar n kuvvetlendirmek ve uygulamalar n geli tirme suumlrecini h zland rmak iccedilin
kullan l r [78]
31010 AjaxAC
AjaxAC accedil k kaynak kodlu php tabanl bir kuumltuumlphanedir AjaxAC ile varolan PHP
s n flar na ve MySQL veritaban na ek istek verilerini doumlnduumlrmek iccedilin geccedili oldukccedila kolayd r
[78]
31011 Xajax
Xajax Php JavaScript HTML XMLHttp ve XML kullanarak taray c ve sunucu
aras ndaki al veri i ve verileri goumlstermeyi gerccedilekle tirir Xajax ile geli tirilmi
uygulamalar sunucudaki php fonksiyonlar n ccedila rabilir ve sayfay yeniden yuumlklemeden
iccedileri ini guumlncelle tirebilir [78]
73
31012 Scriptaculous
Prototype tabanl bir js framework tuumlr Yap lan AJAX i lemleri prototype iccedilerisinde
bulunan nesneler ve fonksiyonlar ile yap l r [78]
311 AJAX Uygulamalar nda Kullan lan Di er Teknolojiler
AJAX istemci ile sunucu aras nda e zamanl olmayan ileti im sa layan bir teknolojiler
buumltuumlnuumlduumlr
3111 HTMLXHTML
stemci tarafl (client side) bir metin i aretleme dili olan XHTML (Extensible
HyperText Markup Language- Geli tirilebilir Metin aretleme Dili) dili XML soumlz dizimi ile
olu turulmu tur XHTML standart etiket ayarlar n tan mlarken spesifik bir yol kullan lmal d r
World Wide Web Consortium (W3C) duumlnyadaki Web geli tiriciler iccedilin olu turulmu ayn
standartla t r lm yakla m benimserler [66]
3112 CSS
XHTML de stil biccedilimlendirmesini sa lar Yuumlzlerce sayfan n tek merkezden
youmlnetilmesini sa lar Geleneksel youmlntemlerde her sayfan n biccedilimlendirme ayarlar birccedilok kod
sat r aras ndan stillerle ilgili olanlar n seccedililip duumlzeltilmesiyle yap l r CSS kullan lan
youmlntemlerde a a daki gibi bir kod parccedilas
tuumlm sayfalardaki stil ayarlar n n yap lmas n tek
merkeze ba lam t r
kabuk
width760px
background-colorEE7700
spot
colorEE7700
font-familyVerdana Comic Sans MS Helvetica sans-serif
74
AJAX ve CSS birlikte kullan larak masauumlstuuml ccedilal t r labilir EXE yaz l mlar ile ayn
h zda ve performansta ccedilal an web uygulamalar geli tirmek muumlmkuumln hale gelmi tir Google
belgelerinde Gmail bunun en buumlyuumlk oumlrne idir
Web sayfalar ndaki tuumlm iccedilerik biccedilimlendirmeler resimler vb istemciye
HTMLXHTML kodlar halinde goumlnderilir Bu kodlar sade ve basittir Bu da oldukccedila fazla
kullan c ya hitap edebilen web siteleri iccedilin oumlnemlidir Ccediluumlnkuuml internete ba land nda k s tl bir
bant geni li ine sahip kullan c lar daha az say da karakter iccedileren sayfalar daha k sa suumlrede
indirebilecektir Boumlylece kullan c lar toplam suumlrede daha fazla sayfa ziyaret edecektir
Sayfalar n h zl yuumlklenmesi kullan c lar n o siteler hakk ndaki memnuniyetini art racakt r
Ayr ca bu durum yaz c dostu sayfalar n olu turulmas nda etkilidir [79]
3113 XSLT
XSLT (Extensible Stylesheet Language Transformations Geni letilebilir
Biccedilimlendirme Dili Doumlnuuml uumlmleri) XML tabanl doumlkuumlmanlar n orijinal halini de i tirmeden
yeni bir dokuumlman olu turmak iccedilin kullan lan bir dildir [80] Oumlrne in bir XML doumlkuumlman n
XHTML ye doumlnuuml tuumlrmek iccedilin XSL doumlnuuml uumlmuuml (transformation) kullan labilir XMLnin iccedilindeki
hangi data nas l doumlnuuml tuumlruumllecek sorular ndan hangi sorusunun cevab XPath ile belirtilirken
nas l sorusunun cevab ise yine XML ile belirtilir [81]
75
4 FLEX
Flex MXML ActionScript 30 ve Flex s n f kuumltuumlphanelerinin birle iminden olu an
sunucu-istemci tabanl yeni bir teknolojidir Ayr ca Flex Flash uygulamalar ile derlenebilen
XML tabanl bir dil olarakta tan mlanabilir [84] Flex in ccedilal ma sistemati inin i lem ak
emas ekil 41 de goumlsterilmektedir
ekil 41 Flex uygulamalar n n i lem ak emas
ekil 41 de sol alt kouml eden sa uumlst kouml eye do ru i lem ak emas takip edildi inde
Flex Builder 3 ile geli tirlen appmxml uygulamas MXML derleyicide ccedilal t r ld nda bir swf
dosyas uumlretmektedir Ayr ca uumlretilen swf dosyas n n sunucu uumlzerinde test edilebilmesi iccedilin
birde html uzant l dosya olu turulur Flex in en oumlnemli oumlzelli i uumlretilen son uumlruumlnuumln swf
format nda olmas d r Ayr ca olay tutucu komut dizelerinin kolay kullan m
yaz l m n
olu turulmas nda Flex program n tercih nedeni olmas n sa lam t r
Adobereg Flexreg 3 yayg n olarak kullan lan taray c lar masauumlstleri ve i letim
sistemlerinde kolayl kla etkileyici web uygulamalar olu turmaya ve bak mlar n yapmaya
youmlnelik verimlili i yuumlksek bir programd r Accedil k kaynak (open source) altyap s na sahiptir
Eclipse tabanl bir plugin kuumlmesidir
Adobe firmas taraf ndan Flex Builder 3 Pro lisans
herhangi bir e itim kurumuna
ouml renci e itmen ya da ccedilal an olarak ba l olduklar n belgeleyenlere tamamen uumlcretsiz olarak
verilmektedir Kurulum tamamland ktan sonra ilk accedil l ekran ekil 42 de goumlsterildi i gibidir
[83]
76
ekil 42 Flex arayuumlzuuml
41 Adobereg Flexreg 3 Kurulumu ccedilin Gereken Minimum Sistem Gereksinimleri
Uygulama gerccedilekle tirmek iccedilin farkl i letim sistemleri iccedilin gerekli sistem
gereksinimleri a a da belirtilmi tir
411 Windows ccedilin Flex Builder 3 (Standart ve Profesyonel)
Flex in Windows kurulumu iccedilin gerekli minimum sistem gereksinimleri a a da
goumlsterilmektedir [83]
Intelreg Pentiumreg 4 i lemci
Microsoftreg Windowsreg XP Service Pack 2 veya Windows Vistareg Home (Premium
veya Basic) Business veya Ultimate
1 GB RAM (2 GB oumlnerilir)
500 MB kullan labilir sabit disk alan (eklenti yap land rmas iccedilin ek 500 MB gerekir)
Java Virtual Machine Sun JRE 142 Sun JRE 15 (dacirchildir) IBMreg JRE 15 veya
Sun JRE 16
Eklenti yap land rmas iccedilin Eclipse 322 33 ve 34 (Eclipse 33 Windows Vista iccedilin
oumlnerilir)
Adobe Flashreg Player 9 yaz l m
BEA Workshop 101
77
IBM Rational Software Architect 7003 (Yaln zca Eclipse 33 eklenti yap land rmas )
412 Macintosh ccedilin Flex Bu lder 3 (Standart ve Profesyonel)
Macintosh bilgisayarlar iccedilin gerekli minimum sistem gereksinimleridir [83]
PowerPCreg G4 125 GHz veya Intel i lemci
Mac OS X v1047 10410 veya 105
1 GB RAM (2 GB oumlnerilir)
500 MB kullan labilir sabit disk alan
Java Virtual Machine Appledan JRE 15 veya JRE 16
Eclipse 322 33 ve 34 (eklenti yap land rmas iccedilin)
Adobe Flash Player 9 yaz l m
78
5 CcedilEVR M Ccedil KATALOG TASARIMI F rat Uumlniversitesi Oumlrne i
AJAX teknolojisi AdobeMacromedia firmas n n geli tirdi i Flex program
ve
bile enleri kullan larak F rat Uumlniversitesinin 2009 ccedilevrimiccedili katalog ccedilal mas
herhangi bir
teknik bilgi gerektirmeden guumlncellenebilen alt yap s yla gerccedilekle tirilmi tir Kullan c arayuumlzuuml
olu turulurken XML tabanl bir gramer yap s
ve Flex program
kullan lm t r Bu tez
ccedilal mas nda sunucu olarak WampServer 20 kullan lm t r Katalog uygulamas n n kaynak
kodlar na ek boumlluumlmuumlnden bak labilir
AJAX teknolojisiyle ortaya ccedil kmaya ba layan ccedilevrimiccedili bro uumlrler ve kataloglar
internetteki Web uygulamalar uumlzerinde ccedilevrimiccedili hedeflerin oumlnemli bir boumlluumlmuumlne hacirckim
olmaktad r [37] Bu tez ccedilal mas da buna oumlrnek te kil etmektedir
Ccedilal man n olu um haritas na literatuumlr taramas yla ba lanm t r Bir sonraki ad mda
haz rlanacak olan program n oumlzellikleri belirlendi Bu a amadan sonra yaz l m iccedilin kullan lacak
program n seccedilimi yap ld Yaz l m algoritmas planlan p ekil 51 deki kodlama algoritmas
olu turulmu tur Yaz l m test edildi inde olu an hatalar giderilmi tir Ccedilal man n sayfa tasar m
yap larak son ekli verilmi tir
79
ekil 51 Kodlama algoritmas
Ba la
Harici verilerin XML dosyas ndan okunmas iccedilin HttpService s n f tan mland
De i ken tan mlamalar
Flex s n flar eklendi
Uygulamada kullan lacak resim boyutland rmas iccedilin maskeleme yap ld
Sunucu ile taray c ileti iminde AJAX scriptler kullan ld
Tuumlm sayfalar ekran goumlruumlntuumlsuuml iccedilin uygulama boyutland rmas yap ld
Zoom oumlzelli i iccedilin etiket tan mlamas ve buumlyuumltuumllmuuml sayfa goumlruumlntuumlsuuml iccedilin goumlruumlnuumlm
ayarlar fonksiyonu yaz ld
Navigasyon duuml meleri olu turuldu
XML format na uygun duuml uumlmler olu turuldu
Sayfa tasar m yap ld
Dur
A a daki kod sat rlar yla katalog ccedilal mas n n uygulama dosyas olan catamxml
dosyas na Flex iccedilinde ccedilal ma youmlntemlerini belirleyen faydal
s n flar dacirchil edilmi tir
lt[CDATA[
import mxutilsStringUtil
import mxrpcsoapLoadEvent
import mxcontrolsAlert
import mxrpceventsFaultEvent
import qscontrolsFlexBook
import qscontrolsflexBookClassesFlexBookPage
import qscontrolsflexBookClassesFlexBookEvent
import qscontrolsflexBookClassesWBookPageImpl
import qscachingContentCache
import mxrpceventsResultEvent
import mxrpchttpHTTPService
import mxcoreUIComponent
import mxmanagersPopUpManager
import compResimSec
import Kullan
import mxcoreScrollPolicy
import mxcollectionsArrayCollection
XML tan mlamalar diziler sunucu ba lant lar ve zoom i lemleri iccedilin gerekli de i ken
tan mlamalar a a daki kod sat rlar yla yap lm t r
private var aXML
[Bindable]
private var resimlerArrayCollection
private var dataSetHTTPService
private var resimdiziArray=new Array()
private var zoomYapBoolean=false
Katalo un local sunucu uumlzerinde ccedilal t r labilmesi iccedilin kaynak dosyas
Wamp kurulumu
sonras nda olu an www klasoumlruuml iccediline yerle tirilir E-katalog resimleri dinamik olarak data
dizinindeki imagesxml dosyas nda ccedilekilmektedir Katalog resimlerini de i tirmek iccedilin bu
dosyadaki xml duuml uumlmlerinin de i tirilmesi yeterlidir De i iklik yap lacak duuml uumlm oumlrne i
a a da goumlsterilmektedir
81
ltimage source=images2jpg thumb=images2jpg zoom=images2jpggt
Yukardaki sat rdaki duuml uumlmleri accedil klamak gerekirse source duuml uumlmuumlnde katalogda
goumlruumlnecek resim thumb duuml uumlmuumlnde e er as l resim (source) resmi yuumlklenene kadar ba ka bir
resim goumlruumlnmesi isteniyorsa o resmin kayna goumlsterilir Zoom duuml uumlmuuml ise sayfaya zoom
yap lmas esnas nda goumlruumlnecek resmin kayna n goumlsterir
Yukardaki 3 duuml uumlmden thumb duuml uumlmuuml iste e ba l olarak kullan l r Zoom
duuml uumlmuumlndeki resim as l resmin 100 buumlyuumlk hali olmal d r
ekil 52 Katalo un ilk sayfas n n ekran goumlruumlntuumlsuuml
E-katalog sayfalar n boyutunu kataloghtmlde tan ml olan object nesnesinin geni lik ve
yuumlkseklik oumlzelliklerinden almaktad r ekil 52 nin kaynak kodu a a da verilmi tir
ltscript src=ScriptsAC_RunActiveContentjs type=textjavascriptgtltscriptgt
ltscript type=textjavascriptgt
AC_FL_RunContent( idkatalogwidth894height653codebasehttpfpdownloadm
acromediacomgetflashplayercurrentswflashcabmoviekatalogqualityhighbgcolor
000000allowscriptaccesssameDomain ) end AC code
ltscriptgtltnoscriptgtltobject classid=clsidD27CDB6E-AE6D-11cf-96B8-444553540000
id=katalog width=894 height=653
82
codebase=httpfpdownloadmacromediacomgetflashplayercurrentswflashcabgt
ltparam name=movie value=katalogswf gt
ltparam name=quality value=high gt
ltparam name=bgcolor value=000000 gt
ltparam name=allowScriptAccess value=sameDomain gt
ltembed src=katalogswf quality=high bgcolor=000000
width=984 height=653 name=katalog align=middle
play=true
loop=false
quality=high
allowScriptAccess=sameDomain
type=applicationx-shockwave-flash
pluginspage=httpwwwadobecomgogetflashplayergt
ltembedgt
ltobjectgtltnoscriptgt
ekil 53 Katalo un 23 sayfa goumlruumlntuumlsuuml
Oumlrne in ekil 53 te kullan lan resimlerin width=447 height=613 boyutunda ise
resimlerin sayfada goumlruumlnmesi iccedilin html etiketindeki width oumlzelli ini 447x2=984 ve height
83
oumlzelli ini 613+40=653 eklinde duumlzenlenmesi gereklidir Yani width=resim geni li i X 2 ve
height=resim yuumlksekli i + 40 olmal d r
ekil 54 Katalo un sayfa ccedilevirme efektli goumlruumlntuumlsuuml
ekil 54 te goumlruumllen e-katalogun sayfay ccedilevirme oumlzelli i ile h z gibi i lemleri stylecss
dosyas nda tutulmaktad r Gerekli olmad kccedila bu dosya uumlzerinde de i iklik yap lmamas tavsiye
edilir Olu turulan stylecss dosyas n n kodlar a a da goumlsterilmi tir
FlexBook
color 000000
textRollOverColor 000000
border-thickness 0
border-style none
page-slope06
active-grab-area page
page-shadow-strength 1
curve-shadow-strength 1
auto-turn-duration 1500
Application
color F1F1CC
textRollOverColor FFFFFF
84
backgroundGradientColors FFFFFF FFFFFF
backgroundColor FFFFFF
SuperImage
border-thickness 0
border-style none
ekil 55 de goumlruumllen navigasyon ccedilubu unda 1 numara ile goumlsterilen alan istenilen
sayfaya konumland rma yap labilmesi iccedilin sayfa numaras n n girildi i kutudur 2 numara ile
goumlsterilen alan Sayfaya Git duuml mesine t kland nda istenilen sayfan n accedil lmas n sa layan
duuml medir 3 ve 4 numara ile goumlsterilen duuml meler Geri leri duuml meleridir Fare kontroluuml
olmadan da sayfalar aras nda gezinti yap labilmesini sa lar 5 numara ile goumlsterilen alan Tuumlm
Sayfalar duuml mesidir
ekil 55 Katalo un navigasyon ccedilubu u
Tuumlm sayfalar n accedil l r pencere iccedilerisinde goumlruumlntuumllenmesini sa layan fonksiyon a a daki
gibidir Kullanmxml sayfas nda ccedilekilen resimler pencerede goumlster komutuyla geni lik ve
yuumlksekli i ayarlan r Seccedililen nesneler customMoveend() komutuyla ekrana ta n r
private function tumsayfalar()void
Kullanshow_window(thisfalseapplicationwidth-10(applicationheight-60)2)
customMoveend()
customMoveplay()
ekil 56 da goumlruumllduuml uuml uumlzere ccedilevrimiccedili katalogdaki yuumlkluuml olan tuumlm sayfalar yukar dan
accedil lan bir pencere yard m yla goumlsterilir Tuumlm sayfalar
goumlster duuml mesi t kland nda goumlruumlnecek
resimler ile ilgi ayarlar ise data klasoumlruumlndeki onizlexml dosyas ndan ayarlanabilir Xml nin
esnek etiketleme yap s sayesinde onizlexml dosyas nda olu turulan ltsayfalargt etiketi aras na
a a daki kod sat rlar ccedilo alt larak olu turulmu tur
85
ltsayfagt
ltresim1gtimages2jpgltresim1gt
ltresim2gtimages3jpgltresim2gt
ltgitgt2ltgitgt
ltpagesgt23ltpagesgt
ltsayfagt
ekil 56 Tuumlm Sayfalar duuml mesi t kland ndaki ekran goumlruumlntuumlsuuml
Son olarak 6 numaral duuml me t kland nda + ve - konumlar n alarak buumlyuumlteccedil
oumlzelli i kullan l r ekil 57 de goumlsterildi i gibi imleccedil sayfa uumlzerinde gezdirilirken bu alan
uumlzerinde zoom yap larak yan sayfada buumlyuumltuumllmuuml goumlruumlntuuml sa lan r
86
ekil 57 Zoom oumlzelli i
Zoom oumlzelli inde resimler uumlzerindeki geni lik ve yuumlkseklik de erleri iccedilin if else blok
yap s kullan larak maskeleme fonksiyonu yaz lm t r Maskeleme fonksiyonu a a daki kod
sat rlar nda goumlsterilmektedir Fare nin x-y koordinatlar nda alaca de erlere goumlre fare nin
buumlyuumltuumllecek alan uumlzerinde gezinmesiyle yan sayfada buumlyuumltuumllmuuml goumlruumlntuuml elde edilmi tir
private function maskele(eMouseEvent)void if(zoomYap) if((mouseXgt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) )
maskex=0
img2visible=false img1visible=true img1x=(applicationwidth2)-mouseX img1y=-1mouseY else if((mouseXlt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) ) maskex=applicationwidth2 img1visible=false img2visible=true img2x=-1mouseX img2y=-1mouseY
Sayfa goumlruumlntuumllerinin maskelenmesinden sonra resimlerin kaynak dosyadan ccedilekilerek
ekrana buumlyuumltuumllmuuml hallerinin yans t lmas iccedilin a a daki fonksiyon olu turulmu tur
87
private function zoom()void
if(zoomerlabel==+) zoomerlabel=- if(img2source=aimage[bookcurrentPageIndex2]zoom) yuklemevisible=true
img2addEventListener(EventCOMPLETEbuyuk2_yuklendi) img2source=aimage[bookcurrentPageIndex2]zoom
if(aimagelength()gtbookcurrentPageIndex2+1) img1addEventListener(EventCOMPLETEbuyuk1_yuklendi)
img1source=aimage[bookcurrentPageIndex2+1]zoom
zoomYap=true else if(zoomerlabel==-)
zoomerlabel=+
setGorunum()
private function setGorunum()void zoomYap=false zoomerlabel=+ img1visible=false img2visible=false
88
6 SONUCcedil
Web 20 ak m ve zengin internet uygulamalar guumlnuumlmuumlz popuumller konular ndand r Bu
nedenle tez ccedilal mas
bu amaca youmlnelik olarak son teknolojiler kullan larak geli tirilmi tir
AJAX teknolojisi kullan larak kullan c n n istekleriyle sayfan n tamamen yenilenmeden
ilgili i lemin yuumlruumltuumllebilmesi sa lanmaktad r Geli tirilen sistem ccedilapraz taray c deste ine sahip
esnek ve kolay kullan labilir bir yap ya sahip oldu undan herhangi bir programlama bilgisine
sahip olmadan ki ilerin istenilen de i iklikleri yap labilece i bir alt yap ya sahiptir Bu ccedilal ma
nda en yenilikccedili internet yaz l mlar konusunda uygulama yapmak isteyen yaz l m
uzmanlar na kaynak te kil edecek bir ccedilal ma gerccedilekle tirilmi tir Yaz l m geli tiricileri ve
yaz l m mimarlar AJAX Flash Flex Appletler ve di er teknolojileri uygulamalar na kolayca
entegre edebilirler
Bu tez ccedilal mas kapsam nda Web de Ajax Tekni inin Bant Geni lik Optimizasyonuna
Etkisi ba l kl bir makale haz rlanm t r [85] Bu makalede Web Performance Suite 355941
program yla AJAX n performans testi yap lm t r Bu oumllccediluumlmler sonucunda elde edilen de erler
goumlstermi tir ki bir ebeke uumlzerinden goumlnderilecek sinyalin en duuml uumlk ve en yuumlksek frekanslar
aras nda gereksiz yere kullan lan aral n optime edilmesinde AJAX etkili bir youmlntemdir
AJAX n ccedilal ma prensibi sayesinde uygulamalar en iyi performansla gerccedilekle tirilir
AJAX teknolojisinin hala geli imi devam etmekte oldu undan baz eksik yanlar da
bulunmaktad r Oumlrne in taray c
uumlzerindeki Geri
fonksiyonu bazen beklendi i gibi
ccedilal mayabilir Dinamik olarak olu turulan sayfalar taray c n n oumlnceden i ledi i sayfalar
youmlneten mekanizmalar na kendini otomatik olarak kaydetmez bu yuumlzden taray c n n Geri
tu una bas ld nda istenen sayfa elde edilemeyebilir [86] Ba ka bir dezavantaj ise AJAX ile
olu turulan iccedileri in kodlar kaynak kodlar k sm nda goumlruumllememektedir Ayn zamanda Google
ve Yahoo gibi arama motorlar n n Web sayfalar na goumlnderdi i robot yaz l mlar da bu kodlar
goumlrememektedir Dolay s yla tamamen AJAX ile olu turulan iccedilerik arama motorlar n n sonuccedil
sayfalar nda listelenmezler Guumlnuumlmuumlzde yap lan Web sayfas n n arama motorlar nda
goumlruumlntuumllenmesi oldukccedila oumlnemlidir Fakat bir Web uygulamas ziyaretccedililer hakk nda oumlnemli
ki isel bilgilere sahipse bu bilgilerin arama motorlar nda herkes taraf ndan goumlruumlntuumllenmesini
sa lamas bir avantaja doumlnuuml uumlr [87] AJAX yerinde ve do ru bir ekilde kullan ld nda
uygulamalarda performans art n sa lar
Bu tez ccedilal mas nda Web 20 ak m n n ortaya ccedil k nedenleri ve RIA konseptine
duyulan ihtiyac n temeli irdelenmi tir Web 20 ak m nda oumlne ccedil kan uygulamalar ve ccedilal ma
sistematikleri incelenmi tir Oumlne ccedil kan bu uygulamalar n site tasar m nda dikkat ccedileken
89
oumlzelliklerine de inilmi tir AJAX teknolojisini olu turan bile enler incelenmi tir Bu inceleme
ve ara t rma sonucunda zengin internet uygulamalar na oumlrnek te kil edecek Web 20 ak m n n
ccedilekirde i olan AJAX teknolojisi kullan larak F rat Uumlniversitesi iccedilin ccedilevrimiccedili bir katalog
tasarlanm t r Bu tasar mda flexBook flexbookpage landscape wrapper zoomer gibi ek
bile enler kullan lm t r Navigasyon paneli tasarlanm t r Olu turulan tasar mda yerli ve
yabanc literatuumlr taramas yap larak emsallerindeki kullan l oumlzellikler projeye dahil edilmi tir
Projenin geli tirilmesi s ras nda izlenen ad mlar resimlenerek ortaya bir yol haritas ccedil kar lm t r
61 Oumlneriler
Bu tez ccedilal mas esas al narak ileride bu uygulamalar mobil cihazlar arac l yla
kullan labilirli i uumlzerine ara t rmalar suumlrduumlruumllebilir AJAX n uumlstuumln oumlzellikleri sayesinde Web
uumlzerinden yay nc l k ve mobil ileti im alanlar farkl bir boyut kazanm t r Birccedilok irket art k
ta nabilir cihazlar iccedilin Web 20 uygulamalar n AJAX la optimize etmeye ba lam t r Yeni bir
teknoloji olan AJAX la ta nabilir cihazlardaki performans bellek youmlnetimi s n rl tu giri i
gibi sorunlar n uumlstesinden gelinmesi hedeflenmelidir
AJAX kullan larak IDE (Integrated Development Environment) entegrasyonu Eclipse
iccedilin ba lant lar yaz labilir veya yap m servisi arac l yla do rudan IDE den yap m paketleri
geli tirilebilir Guumlnuumlmuumlzde oldukccedila popuumller olan accedil k kaynak kodlu yaz l m geli tirme
ortamlar nda entegre uygulamalar geli tirilebilir
Kullan c Arabirimi aretleme Beti i (User Interface Markup Language) s n f na dacirchil
edilecek gelece in en popuumller web tabanl teknolojilerinden biridir Flex geli tiricileri Adobe
Flex Builder - IDE ortam nda LiveCycle Data Services Java Coldfusion ASPNET JSP PHP
gibi popuumller web programlama dilleri yard m yla etkile imli ve guumlvenli web tabanl projeler
geli tirilebilir [82]
90
KAYNAKLAR
1 nternet Web 20 httptrwikipediaorgwikiWeb_20 Eri im tarihi 03092008
2 Oumlzer Z Web Teknolojileri ve AJAX Seminer Ccedilal mas Fen Bilimleri Enstituumlsuuml sf2
2007
3 nternet Web 20 Nedir wwworeillynetcompubaoreillytimnews20050930what-is-
web-20html Eri im tarihi 04102008
4 nternet httpravenyoungspaceslivecomblogcns17376F4C11A91E0E3717entry
Eri im tarihi 03092008
5 Mcluhan M Povers B R Ccedileviren Bahar Oumlcal Duumlzgoumlren Global Koumly 21 Yuumlzy lda
Yeryuumlzuuml Ya am nda ve Medyada Meydana Gelecek Doumlnuuml uumlmler Scala Yay nc l k 2001
6 nternet RIA konsepti httpwwwademaktepecomGunlukDetayaspxId=122 Eri im
Tarihi 26062008
7 Onat F A man Ouml K l ccedil A Sosyal A Sitelerinin Reklam Ve Halkla li kiler Ortamlar
Olarak De erlendirilmesi Sayfalar 3-6 2008
8 nternet httpi8tinypiccom6kymb0kgif Eri im tarihi 11072008
9 nternet DFA httpwwwdoubleclickcomproductsdfaindexaspx Eri im tarihi
14022009
10 nternet Adsensecom
httpswwwgooglecomadsensesupportbinanswerpyanswer=9712amptopic=13488 Eri im
tarihi 15112008
11 nternet DoubleClickcom wwwdoubleclickcom Eri im 13102008
12 nternet Adsense ho geldiniz wwwgooglecomadsense Eri im 18112008
13 nternet Flicker Tan m httptrwikipediaorgwikiFlickr Eri im tarihi 09032009
14 nternet Flicker Foto raf Payla m Sitesi httpwwwflickrcom Eri im 18022009
15 nternet BitTorent httptrwikipediaorgwikiBitTorrent Eri im tarihi 05012009
16 nternet Bittorent kulan m rehberi httpwwwbittorrentcombtusersguidesbeginners-
guide Eri im tarihi 05012009
17 nternet Bittorent kullan m k lavuzu httpwwwshukkocombittorrent_kilavuzu Eri im
tarihi 05012009
18 nternet Bittorent ccedilal ma mant httpwwwforumelbizbittorent-nedirgne-ise-
yarargresimli-detayli-super-anlatim-
t12836htmls=17f7b3147d97799d31c32b09e87d43e4ampamp Eri im tarihi 05012009
19 nternet Soumlzluumlk
91
httpwwwparliamentvicgovauSARCE-DemocracyFinal_ReportGlossaryhtm Eri im
tarihi 05012009
20 FU F LIU L WANG L Empirical Analysis of Online Social Networks in the Age of
Web 20 2007 Physica A Statistical Mechanics and its Applications Volume 387 Issues 2-3
Sayfalar 675-684
21 nternet Facebook httptrwikipediaorgwikiFacebook Eri im tarihi 06012009
22 nternet Facebook makale httpturkinternetcomhaberyazigosterphp3yaziid=22787
Eri im tarihi 06012009
23 nternet Facebook istatistiksel bilgiler
httpwwwinsidefacebookcom20090107facebook-growth-continuing-surpasses-150-
million-monthly-active-users Eri im tarihi 06012009
24 nternet Peter Thiel Facebook haberleri
httpwwwbusinessweekcomtechnologycontentmar2009tc2009031_743025htm Eri im
tarihi 06012009
25 nternet Blog httptrwikipediaorgwikiBlog Eri im tarihi 13022009
26 nternet Technorati httptechnoratimediacom Eri im tarihi 13022009
27 nternet Blog ara t rmas httpwwwmmistanbulcommakaletitlebloglarin-satin-alma-
kararlarina-etkisi-uzerine-bir-arastirma Eri im tarihi 13022009
28 nternet Wiki nedir httpyunushacettepeedutr~b0343579baglantilerwikinedirhtm
Eri im tarihi 13022009
29 nternet nternette wikinin yeri
httpogrencihacettepeedutr~besstindexphp20080603internette-wikinin-yeri Eri im
tarihi 14022009
30 Bergstedt S Wiegreffe S Wittmann J Moller D Content Management Systems and e-
Learning-Systems
A Symbiosis Proceedings of the The 3rd IEEE International Conference
on Advanced Learning Technologies (ICALT 03)
31 nternet ccedilerik Youmlnetim Sistemleri
httptrwikipediaorgwikiC4B0C3A7erik_yC3B6netim_sistemi Eri im tarihi
17022009
32 nternet ccedilerik Youmlnetim Sistemleri httpwwwmsxlabsorgforuminternet-bilgisayar-
dunyasi22262-icerik-yonetim-sistemi-cms-content-management-systemhtml Eri im tarihi
17022009
33 nternet Web 20 Tasar m Araccedillar httpwwweburhancomhazir-web-20-tasarim-
araclari Eri im tarihi 06022009
92
34 nternet Tasar m rehberi httpwwwhasanyalcincomweb-20-tasarim-rehberi-yansima-
ikon-ve-flaslarref=GuzelsTV Eri im tarihi 06022009
35 nternet AJAX kaynak makalesi
httpadaptivepathcompublicationsessaysarchives000385php Eri im tarihi 06022009
36 Keith J Bulletproof Ajax New Riders yay nc l k Sayfa 3 2007
37 Zakas N C McPeak J Fawcett J Professional Ajax 2nd Edition Wiley Publishing Inc
Sayfalar 5-18 2007
38 Gehtland J Galbraith B Almaer D Pragmatic Ajax A Web 20 Primer The Pragmatic
Programmers LLC sf1 2005
39 Babin L Beginning Ajax with PHP From Novice to Professional Apress Yay nc l k
Sayfa 6 2007
40 Crane D B beault B Sonneveld J Goddard T Gray C Venkataraman R Ve Walker J
Ajax in Practice Manning Publications Co Sayfalar 56 2007
41 Eichorn J Understanding AJAX Using JavaScript to Create Rich Internet Applications
August 11 2006 Sayfalar5-50
42 Ballard P SAMS Teach Yourself Ajax in 10 Minutes Sayfalar 6-78 28 Nisan 2006
43 nternet httpwwwipucuwebtraspders17php Eri im tarihi
44 Ullman C Dykes L Beginnig AJAX Wiley Publishing Inc Sayfa 44-100 2007
45 Zakas N C McPeak J Fawcett J Professional Ajax Wrox Press Chapter 2 Ajax
Basics Ajax Communication Techniques 2006
46 nternet Cross-Browser (Ccedilapraz Taray c Deste i) httpblogceyhunaksancomcross-
browser-capraz-tarayici-destegi Eri im 11032009
47 nternet
httpwwwyazgelistirnetviewtopicphpp=160ampsid=a49d3c26dd8e14e02e65bb222d6bcc39
Eri im 31032009
48 Jacobi J Fallows J R Pro JSF and Ajax Building Rich Internet Components Apress
Sayfa 175 2006
49 Schutta N T Asleson R Pro Ajax and Java Apress Sayfa 10 2006
50 Lauriat S M Ajax Architecture and Best Practices Pearson Education Inc Sayfa 25
2008
51 Powers S Adding Ajax OReilly yay nc l k June 01 2007
52 nternet Asenkron ve Senkron Meselesi httpAJAX-trcomasenkron-ve-senkron-meselesi
Eri im tarihi 02112008
53 Holzner S Ajax For Dummies Wiley Publishing Inc sf 40 2006
93
54 nternet httpwwwecma-internationalorgpublicationsfilesECMA-STEcma-262pdf
Eri im tarihi 06032009
55 Darie C Brinzarea B Chereche -To a F Bucica M AJAX and PHP Building
Responsive Web Applications Packt Publishing Sayfa42 2006
56 Olson S D Ajax on Java OReilly Yay nc l k Chapter 2 February 23 2007
57 nternet httpiibferciyesedutrggwebjavascriptpdf Eri im tarihi 06032009
58 nternet httpwwwmutasyonnetkitaplarasp hakk oumlcal javascript ders notu sf8 Eri im
tarihi 06032009
59 nternet httpwwwbilgisayarogrencomjava5doc Eri im tarihi 06032009
60 Asleson R Schutta N T Foundations of Ajax 2006 sf29
61 Wells C Securing Ajax Applications O Reilly Media Inc sf86 July 2006
62 nternet httpwwww3schoolscomdomdom_introasp Eri im tarihi 19032009
63 nternet httpwwww3orgTRREC-DOM-Level-1introductionhtml Eri im tarihi
19032009
64 nternet httpwwwberkerpeksagcomblogdom-document-object-model-belge-nesne-
modeli Eri im tarihi 19032009
65 nternet httpwwwrssnedircomxml_nedirphp Eri im tarihi 19032009
66 Jacobs S Beginning XML with DOM and Ajax From Novice to Professional Apress
Yay nc l k sf2631 2006
67 nternet
httpwwwcclubmetuedutrnenedirXML+(Extensible+Markup+Language)+Nedir3F
Eri im tarihi 20032009
68 nternet httpbelgelerorgelkitabixmldoc-howto_structhtml Eri im tarihi 20032009
69 nternet httpwwwverivizyoncomdetailaspcid=149 Eri im tarihi 20032009
70 nternet httpwwwbilgisayardershanesicomxml1htm Eri im tarihi 21032009
71 Johnson D White A Charland A ENTERPRISE AJAX Strategies for Building High
Performance Web Applications Prentice Hall Yay nc l k Sayfa 108 2008
72 nternet httpwwww3orgTRxhtml1dtds Eri im tarihi 01042009
73 nternet httpwwwcsharpnedircommakalegosteraspMId=51 52 Eri im tarihi
01042009
74 nternet httpofficemicrosoftcomtr-trinfopathHP010967301055aspx Eri im tarihi
01042009
75 nternet
httpwwwkodpaylascomviewtopicphpt=959ampsid=e5167bdea935943ed9bbdc91ee218c53
Eri im tarihi 01042009
94
76 nternet httpwwww3schoolscomXhtml Eri im tarihi 02042009
77 nternet httpwwwzvonorgxxlXMLTutorialOutput_turexample6html Eri im tarihi
02042009
78 nternet httpwwwbidbituedutrd=837 Eri im tarihi 03042009
79 nternet httpwwwcssnedircom Eri im tarihi 03042009
80 nternet httptrwikipediaorgwikiXSLT Eri im tarihi 03042009
81 nternet httpwwwbilisim-kulubucomsozluksozlukphpe=XSLT Eri im tarihi
08042009
82 nternet httpwwwsanalkursnetadobe-flex-nedir--1081html Eri im tarihi 10042009
83 nternet httpwwwadobecomtrproductsflex Eri im tarihi 11042009
84 nternet httpwwwtrflexcomp=4 Eri im tarihi 11042009
85 Oumlzer Z Varol A Web de Ajax Tekni inin Bant Geni lik Optimizasyonuna Etkisi
Bilimde Modern Youmlntemler Sempozyumu 2008
86 nternet httptrwikipediaorgwikiAJAX(programlama) Eri im tarihi 01062009
87 nternet httpajax-trcomajaxi-anlamak Eri im tarihi 01062009
95
OumlZGECcedilM
Zeynep OumlZER AYDO MU
zeynep_ozermsncom
F rat Uumlniversitesi Teknik E itim Fakuumlltesi
Elektronik Bilgisayar E itimi Boumlluumlmuuml
ELAZI
1983 y l nda Elaz da do du lk orta ve lise ouml renimini Elaz da tamamlad ktan
sonra 2002 y l nda F rat Uumlniversitesi Teknik E itim Fakuumlltesi Elektronik Bilgisayar E itimi
Bilgisayar Ouml retmenli i Boumlluumlmuuml nuuml kazand 2006 y l nda bu boumlluumlmden mezun oldu 2006
y l nda F rat Uumlniversitesi Fen Bilimleri Enstituumlsuuml Elektronik Bilgisayar E itimi Ana Bilim Dal
Bilgisayar Sistemleri Bilim Dal nda yuumlksek lisans e itimine ba lad 2007 y l ubat ay nda
Elaz n Karakoccedilan ilccedilesinin Yenice koumlyuumlnde h J Kd Uumlt m Mahir Oumlzdemir lkouml retim
Okulu nda Bilgisayar Ouml retmeni olarak goumlreve ba lad uan Elaz Korgeneral Hulusi Say n
Lisesi nde Bilgisayar Ouml retmeni olarak goumlrevini suumlrduumlrmektedir Yabanc dili ngilizce dir
Fatih AYDO MU ile evlidir
96
EK
Katalog ccedilal mas n n uygulama dosyas olan catamxml kullanmxml ve
imagepagemxml dosyalar n n kaynak kodlar a a daki gibidir
Catamxml
ltxml version=10 encoding=utf-8gt
ltmxApplication xmlnsmx=httpwwwadobecom2006mxml
layout=absolute
xmlnscontrols=qscontrols
backgroundColor=FFFFFF
creationComplete=init() color=FFFFFF xmlnslocal= xmlnscomp=comp
horizontalScrollPolicy=off verticalScrollPolicy=off borderColor=050505 borderStyle=solid
borderThickness=2gt
ltmxStyle source=stylecss gt
ltmxScriptgt
lt[CDATA[
import mxutilsStringUtil
import mxrpcsoapLoadEvent
import mxcontrolsAlert
import mxrpceventsFaultEvent
import qscontrolsFlexBook
import qscontrolsflexBookClassesFlexBookPage
import qscontrolsflexBookClassesFlexBookEvent
import qscontrolsflexBookClassesWBookPageImpl
import qscachingContentCache
import mxrpceventsResultEvent
import mxrpchttpHTTPService
import mxcoreUIComponent
import mxmanagersPopUpManager
import compResimSec
import Kullan
import mxcoreScrollPolicy
import mxcollectionsArrayCollection
private var aXML
[Bindable]
private var resimlerArrayCollectioncomboresim
97
private var dataSetHTTPService
private var resimdiziArray=new Array()
private var zoomYapBoolean=false
private function init()void
maskex=0
maskey=0
maskewidth=applicationwidth2
maskeheight=applicationheight-40
addEventListener(MouseEventMOUSE_MOVEmaskele)
addEventListener(tamam sayfa_secildi)
dataSet = new HTTPService()
dataSeturl = (dataimagesxml)
dataSetresultFormat = e4x
dataSetsend()
dataSetaddEventListener(FaultEventFAULT onFault)
dataSetaddEventListener(ResultEventRESULT onResult)
var wNumber=new Number
var hNumber=new Number
w=Applicationapplicationwidth
h=Applicationapplicationheight
bookwidth=w
bookheight=h-40
yuklemevisible=false
yuklemesource=assetsloadinggif
yuklemeaddEventListener(EventCOMPLETEyukleme_yuklendi)
private function yukleme_yuklendi(eventEvent)void
yuklemex=(applicationwidth2)-100
yuklemey=(applicationheight-40)2
private function maskele(eMouseEvent)void
if(zoomYap)
98
if((mouseXgt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) )
maskex=0
img2visible=false
img1visible=true
img1x=(applicationwidth2)-mouseX
img1y=-1mouseY
else if((mouseXlt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) )
maskex=applicationwidth2
img1visible=false
img2visible=true
img2x=-1mouseX
img2y=-1mouseY
maskex=mouseX
maskey=mouseY
private function onFault(eEvent)void
trace(e)
private function onResult(eResultEvent)void
a=new XML(eresult)
bookcontent = dataSetlastResultimage
bookaddEventListener(FlexBookEventTURN_STARTloadContent)
bookaddEventListener(FlexBookEventTURN_ENDloadContent)
private function sayfa_secildi(eventResimSec)void
99
sayfatext=eventyeniResim
git()
mxcontrolsAlertshow(sseventyeniResim)
private function loadContent(eventFlexBookEvent)void
setGorunum()
var pageImagePage = ImagePage(eventrenderer)
pageload()
sayfatext=(bookcurrentPageIndex2)toString()
resimdizi[bookcurrentPageIndex]=pagethumbsource
mxcontrolsAlertshow(bookcurrentPageIndextoString())
private function buyuk1_yuklendi(eventEvent)void
yuklemevisible=false
img1width=applicationwidth
img1height=(applicationheight-40)2
img1x=0
img1y=0
private function buyuk2_yuklendi(eventEvent)void
yuklemevisible=false
img2width=applicationwidth
img2height=(applicationheight-40)2
img2x=0
img2y=0
private function tumsayfalar()void
Kullanshow_window(thisfalseapplicationwidth-10(applicationheight-60)2)
customMoveend()
customMoveplay()
private function zoom()void
if(zoomerlabel==+)
zoomerlabel=-
if(img2source=aimage[bookcurrentPageIndex2]zoom)
yuklemevisible=true
img2addEventListener(EventCOMPLETEbuyuk2_yuklendi)
100
img2source=aimage[bookcurrentPageIndex2]zoom
if(aimagelength()gtbookcurrentPageIndex2+1)
img1addEventListener(EventCOMPLETEbuyuk1_yuklendi)
img1source=aimage[bookcurrentPageIndex2+1]zoom
zoomYap=true
else if(zoomerlabel==-)
zoomerlabel=+
setGorunum()
private function setGorunum()void
zoomYap=false
zoomerlabel=+
img1visible=false
img2visible=false
private function next()void
mxcontrolsAlertshow(bookcurrentPageIndextoString() bookpageCounttoString())
if(bookcurrentPageIndex+1 lt bookpageCount)
mxcontrolsAlertshow(--resimdizi[bookcurrentPageIndex])
setGorunum()
bookturnToPage(bookcurrentPageIndex + 1)
private function previous()void
if(bookcurrentPageIndex gt 0)
setGorunum()
bookturnToPage(bookcurrentPageIndex -1)
private function git()void
var s_nouint = new uint
s_no=Mathfloor(uint(sayfatext)2)
101
if(s_nogt0 ampamp s_noltbookpageCount)
bookturnToPage(s_no)
setGorunum()
]]gt
ltmxScriptgt
lt-- 614x453 --gt
ltmxParallel id=customMove target=Kullangt
ltmxMove duration=2000 xTo=(100) 2 yTo=(200) 2 gt
ltmxWipeRight duration=2000 gt
ltmxParallelgt
ltmxVBoxgt
ltmxHBoxgt
ltcontrolsFlexBook id=book width=100 height=100 x=0 y=0 horizontalCenter=0
verticalCenter=0
animateCurrentPageIndex=true
showCornerTease=false
edgeAndCornerSize=150
itemRenderer=ImagePage
animatePagesOnTurn=true
itemSize=halfPage cornerRadius=0 themeColor=1D99E8
backgroundAlpha=10 alpha=10gt
ltcontrolsFlexBookgt
ltmxHBoxgt
ltmxHBox height=30 width=100 verticalAlign=middle
horizontalAlign=center color=B65F5F backgroundColor=121313gt
ltmxSpacer width=10gt
ltmxSpacergt
ltmxTextInput borderColor=FFFFFF width=34 height=24 id=sayfa
color=FFFFFF fontSize=11 text=0 alpha=001gt
ltmxButton click=git() color=ffffff fontWeight=bold fontSize=11
width=114 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label=Sayfaya Git themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxSpacer width=60gt
102
ltmxSpacergt
ltmxButton click=previous() color=ffffff fontWeight=bold fontSize=11
width=70 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label=Geri themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxButton click=next() color=ffffff fontWeight=bold fontSize=11
width=70 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label= leri themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxButton click=tumsayfalar() color=ffffff fontWeight=bold fontSize=11
width=134 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label=Tuumlm Sayfalar themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxButton id=zoomer click=zoom() color=ffffff fontWeight=bold
fontSize=14 width=44 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00
00] label=+ themeColor=EDF2F5 textRollOverColor=EDD617 fontFamily=Arialgt
ltmxSpacer width=5gt
ltmxHBoxgt
ltmxSpacer height=10gt
ltmxVBoxgt
ltmxCanvas id=maske x=224 y=168 width=200 height=168
verticalScrollPolicy=off horizontalScrollPolicy=off borderThickness=0 borderColor=000000
borderStyle=solidgt
ltmxImage id=img1 x=0 y=0gt
ltmxImage id=img2 x=40 y=0gt
ltmxCanvasgt
ltmxImage x=10 y=144 id=yuklemegt
ltmxApplicationgt
103
Kullanmxml
ltxml version=10 encoding=utf-8gt
ltmxTitleWindow xmlns= xmlnsmx=httpwwwadobecom2006mxml
creationComplete=on_creation_complete()
styleName=popupWindow showCloseButton=true
paddingBottom=0 paddingTop=0 paddingLeft=0 paddingRight=0
height=200 width=100 alpha=09 borderAlpha=1gt
ltmxScriptgt
lt[CDATA[
import mxcontrolsAlert
import mxcollectionsArrayCollection
import mxrpceventsResultEvent
[Bindable]
private var sayfalarArrayCollection
[Bindable]
private var introString =
import mxeventsCloseEvent
import mxmanagersPopUpManager
import mxcoreApplication
import mxeventsDragEvent
import mxmanagersDragManager
import mxcoreDragSource
import compResimSec
import koraxcontrolsColorPickerResimSecEvent
private var m_parentDisplayObject = null
private function myResult(eventResultEvent)void
sayfalar = eventresultsayfalarsayfa
private function sayfaac(eventEvent)void
wndwith_last_preved()
mxcontrolsAlertshow(myTileselectedItemgittoString())
uyeler = eventresultsayfalarsayfa
104
private function on_creation_complete()void
myHTTPsend()
private static var wndKullan = null
public static function show_window(parentDisplayObject
modalBooleanwNumberhNumber)void
if (wnd == null)
wnd = new Kullan()
wndaddEventListener(mxeventsCloseEventCLOSE on_close_event)
wndm_parent = parent
if (wndisPopUp)
PopUpManageraddPopUp(wnd DisplayObject(Applicationapplication) modal)
PopUpManagercenterPopUp(wnd)
else
PopUpManagerbringToFront(wnd)
wndstart_init()
wndx=0
wndy=0
wndwidth=w
wndheight=h
wndmyTilewidth=w-20
wndmyTileheight=h-40
private function with_last_preved()void
if (m_parent = null) m_parentdispatchEvent(new ResimSec(tamam
myTileselectedItemgit))
private static function on_close_event(eventCloseEvent)void
if (wnd == null) return
PopUpManagerremovePopUp(wnd)
wnd = null
105
private function yardim()void
Kullanshow_window(thisfalse)
]]gt
ltmxScriptgt
ltmxHTTPService id=myHTTP url=dataonizlexml
result=myResult(event) showBusyCursor=truegt
ltmxTileList id=myTile dataProvider=sayfalar change=sayfaac(event)
itemRenderer=compUyeSayfasi width=100 height=147 rowHeight=110 columnWidth=120
rowCount=2gt
ltmxTitleWindowgt
106
ImagePagemxml
ltxml version=10 encoding=utf-8gt
ltmxCanvas xmlnsmx=httpwwwadobecom2006mxml width=600 height=400
xmlnscontrols=qscontrols
backgroundColor=FFFFFF horizontalScrollPolicy=off verticalScrollPolicy=offgt
ltmxstatesgt
ltmxState name=loadingStategt
ltmxAddChild position=lastChildgt
ltmxImage id=loadingContent horizontalCenter=0 verticalCenter=-6
source=assetsloadinggif gt
ltmxAddChildgt
ltmxStategt
ltmxstatesgt
ltmxtransitionsgt
ltmxTransition fromState= toState=loadingStategt
ltmxFade alphaTo=1 target=loadingContent duration=1000gt
ltmxTransitiongt
ltmxTransition toState= fromState=loadingStategt
ltmxSequencegt
ltmxFade alphaTo=0 target=loadingContent duration=1000gt
ltmxRemoveChildAction target=loadingContent gt
ltmxSequencegt
ltmxTransitiongt
ltmxtransitionsgt
ltmxScriptgt
lt[CDATA[
import mxcontrolsAlert
private var _loadedBoolean = false
public function load()void
if(_loaded)
return
_loaded = true
fullsource = datasourcetoString()
mxcontrolsAlertshow (fullsource)
107
currentState = loadingState
]]gt
ltmxScriptgt
ltcontrolsSuperImage left=0 right=0 top=0 bottom=0 id=thumb
source=datathumbtoString() gt
ltcontrolsSuperImage left=0 right=0 top=0 bottom=0 id=full complete=currentState = gt
ltmxCanvasgt
This document was created with Win2PDF available at httpwwwwin2pdfcomThe unregistered version of Win2PDF is for evaluation or non-commercial use onlyThis page will not be added after purchasing Win2PDF
TE EKKUumlR
Bu tez ccedilal mas
suumlresince desteklerini esirgemeyen Dan man m Say n Prof Dr Asaf
VAROL a Prof Dr Z Hakan AKPOLAT a ccedilal mam n her a amas nda sevgi ve guumlvenlerini
her zaman hissetti im aileme e im Fatih AYDO MU a ve oumlzellikle karde im Ya mur
OumlZER e te ekkuumlrlerimi ve uumlkranlar m sunar m
Zeynep OumlZER AYDO MU
I
Ccedil NDEK LER
TE EKKUumlR
Ccedil NDEK LER I
EK LLER L STES
IV
TABLO L STES
VI
KISALTMALAR L STES
VII
OumlZET IX
ABSTRACT X
1 G R
1
11 Tez Ccedilal mas n n Amac
1
12 Tez Ccedilal mas n n Kapsam
1
2 WEB 20 AKIMI 2
21 Web 20 Platformunda Oumlne Ccedil kan Popuumller Uygulamalar 4
211 Double Click - Google AdSense 4
212 Flickr 5
213 BitTorrent 5
214 Sosyal A Siteleri 8
2141 Facebook 8
215 Web Guumlnluumlkler 11
216 Wiki 11
217 ccedilerik Youmlnetim Sistemleri 13
218 Etiketleme (Folksonomi) 14
22 Web 20 da Site Tasar m nda Dikkat Ccedileken Oumlzellikler 14
221 Logolar 14
222 Butonlar 15
223 Arka Planlar 15
224 Ccedilerccedileveler 16
225 Menuumller 16
3 AJAX 17
31 Google Suggest 18
32 Google Maps 18
33 Neden AJAX 19
34 AJAX Metodolojisi 23
341 HTTP Requests Nesnesi 24
II
342 HTTP Request Nesnesinin Oumlzellikleri ve Youmlntemleri 25
343 HTTP Response Nesnesi 26
35 AJAX leti im Teknikleri 27
351 XMLHttp Requests (XHR) Nesnesi 27
36 AJAX Olu turan Bile enler 34
361 E zamanl Olmayan leti im 34
362 E zamanl leti im 35
363 Javascript 36
37 Basit Bir AJAX Oumlrne i 49
38 XML 51
381 Oumlrnek XML Belgesi Olu turma 53
382 XML Dokuumlman n n Yap s
55
383 XML nin Soumlz Dizim Kurallar
67
384 XML Dokuumlmanlar n n leyi i ve Sunumu 69
39 AJAX Prensipleri 69
310 AJAX Kuumltuumlphaneleri ve Araccedillar
70
3101 Prototype 70
3102 AJAX Gear Toolkit 71
3103 AspNet Ajax 71
3104 Dojo Toolkit 71
3105 MochiKit 71
3106 PHPLiveX 71
3107 Sardalya (Sarmal Dinamik Altyap s ) 72
3108 Sajax 72
3109 Solvent 72
31010 AjaxAC 72
31011 Xajax 72
31012 Scriptaculous 73
311 AJAX Uygulamalar nda Kullan lan Di er Teknolojiler 73
3111 HTMLXHTML 73
3112 CSS 73
3113 XSLT 74
4 FLEX 75
41 Adobereg Flexreg 3 Kurulumu ccedilin Gereken Minimum Sistem Gereksinimleri 76
411 Windows ccedilin Flex Builder 3 (Standart ve Profesyonel) 76
III
412 Macintosh ccedilin Flex Bu lder 3 (Standart ve Profesyonel) 77
5 CcedilEVR M Ccedil KATALOG TASARIMI F rat Uumlniversitesi Oumlrne i 78
6 SONUCcedil 88
61 Oumlneriler 89
KAYNAKLAR 90
OumlZGECcedilM
95
EK 96
IV
EK LLER L STES
Sayfa
ekil 21 Web 20 kavram
2
ekil 22 Web 20 ak m nda oumlne ccedil kan uygulamalar 3
ekil 23 Doubleclick ve Google Adsense sitelerinin logolar 4
ekil 24 Flickr sitesinin logosu 5
ekil 25 ccedilerik da t m sitelerinde bittorrent site logosu 5
ekil 26 Torrent program n n anasayfas
6
ekil 27 Torrent program n n arayuumlzuuml 7
ekil 28 Facebook kullan c say s n n aylara goumlre da l m grafi i 9
ekil 29 Aylara goumlre facebook ve myspace site analizi 10
ekil 210 Vikipedi oumlzguumlr ansiklopedi sitesinin logosu 12
ekil 211 Oumlrnek etiket bulutu 14
ekil 212 Yans mal logo oumlrne i 15
ekil 213 Web 20 da buton oumlrnekleri 15
ekil 214 Web 20 da arka plan oumlrnekleri 15
ekil 215 Web 20 da ccedilerccedileve yap s na oumlrnek 16
ekil 216 Web 20 da menuuml oumlrne i 16
ekil 31 Jesse James Garrett in makale goumlruumlntuumlsuuml 17
ekil 32 Google Suggest ekran goumlruumlntuumlsuuml 18
ekil 33 Google Maps ekran goumlruumlntuumlsuuml 18
ekil 34 Geleneksel sunucularda istekcevap modeli 20
ekil 35 AJAX n asenkron istekcevap modeli 20
ekil 36 Klasik Web uygulamalar nda t kla-bekle doumlnguumlsuuml 21
ekil 37 T kla-T kla interaktif AJAX uygulamas
21
ekil 38 Geleneksel Web ileti im modeli ile AJAX ileti im modeli 21
ekil 39 Web uygulamas ndaki cevap ak
22
ekil 310 AJAX uygulamalar ndaki istek ak
22
ekil 311 Normal Web ile AJAX uygulamalar n n kar la t rmas
23
ekil 312 Geleneksel istekcevap (requestresponse) youmlntemi 23
ekil 313 Standart AJAX etkile imi 32
ekil 314 E zamanl olmayan ileti im modeli 35
ekil 315 E zamanl ileti im modeli 36
ekil 316 Javascript nesneleri 44
V
ekil 317 DOM a accedil yap s
46
ekil 318 AJAX oumlrne i 49
ekil 319 sonuchtml sayfas n n ekran ccedil kt s
51
ekil 320 denemexml dosyas n n a accedil yap s
53
ekil 321 XML belgesi 55
ekil 322 Oumlrnek bir XML dokuumlman yap s
56
ekil 323 denemexsd nin ekran goumlruumlntuumlsuuml 65
ekil 41 Flex uygulamalar n n i lem ak emas
75
ekil 42 Flex arayuumlzuuml 76
ekil 51 Kodlama algoritmas
79
ekil 52 Katalo un ilk sayfas n n ekran goumlruumlntuumlsuuml 81
ekil 53 Katalo un 23 sayfa goumlruumlntuumlsuuml 82
ekil 54 Katalo un sayfa ccedilevirme efektli goumlruumlntuumlsuuml 83
ekil 55 Katalo un navigasyon ccedilubu u 84
ekil 56 Tuumlm Sayfalar duuml mesi t kland ndaki ekran goumlruumlntuumlsuuml 85
ekil 57 Zoom oumlzelli i 86
VI
TABLO L STES
Tablo 21 Facebook ve myspace in buumlyuumlme tablosu 10
Tablo 31 Standart XHR nesnesinin oumlzellikleri 30
Tablo 32 Standart XHR nesnesinin fonksiyonlar
31
Tablo 33 De i ken tuumlrleri 41
Tablo 34 leccediller ve goumlrevleri 41
Tablo 35 kili i leccediller 42
Tablo 36 DTD karakterleri ve accedil klamalar
61
Tablo 37 DTD ccedilindeki niteliklerin de er ve accedil klamalar
62
Tablo 38 Varsay lan de erler ve accedil klamalar
62
Tablo 39 XML Belgelerinde kullan lan varl k bildirimleri 67
VII
KISALTMALAR L STES
AJAX Asenkron JavaScript ve XML
API Application Programming Interface (Uygulama Program Arayuumlzuuml)
ASP Active Server Pages (Aktif Sunucu Sayfalar )
CDNs Content Distributed Networks ( ccedilerik Da t c A lar)
CMS Content Management System ( ccedilerik Youmlnetim Sistemi)
CGI Common Gateway Interface (Genel Geccedili Arayuumlzuuml)
CSS Cascading Style Sheets (Basamakl Stil Sayfalar )
DFA DART for Advertisers
DOM Document Object Model (Doumlkuumlman Nesne Modeli)
DTD The Document Type Definition (Dokuumlman Tipi Tan mlama)
DWR Direct Web Remoting ( Direkt Web Eri imi)
ECMA European Computer Manufacturers Association (Avrupa Bilgisayar
Uumlreticileri Birli i)
GOumlBL GNU Oumlzguumlr Belgeleme Lisans
HTML Hyper Text Markup Language (Yard ml Metin aretleme Dili)
HTTP Hypertext Transfer Protocol (Yard ml Metin Aktar m Protokoluuml)
IDE Integrated Development Environment (Tuumlmle ik Geli tirme Ortam )
JSP Java Server Pages (Java sunucu Sayfalar)
LAN Local Area Network (Yerel Alan A )
MIYS E-ticaret ve Muuml teri li kileri Youmlnetim Sistemleri
MSN Microsoft Network
OOP Object Oriented Programming (Nesne Youmlnelimli Programlama)
PHP Hypertext Preprocessor (Yard ml Metin Oumlni leme)
PIs Processing Instructions ( lem Accedil klamalar )
RIA Rich Internet Applications (Zengin nternet Uygulamalar )
VIII
RPC Remote Procedure Call (Uzaktan Yordam Ccedila rma)
SAX Simple API for XML (XML iccedilin Basit API)
WIKI What I Know is (Ne Biliyorsam)
W3C World Wide Web Consortium (Duumlnya Ccedilap nda A Birli i)
XML eXtensible Markup Language (Geli tirilebilir aretleme Dili)
XHR XMLHttpRequest
XHTML Extensible HyperText Markup Language (Geli tirilebilir Yard ml Metin
aretleme Dili)
XSD eXtensible Schema Document(Geni letilebilir ema Dokuumlman )
XSL Extensible Stylesheet Language (Geli tirilebilir Biccedilimlendirme Dili)
XSLT Extensible Stylesheet Language Transformations (Geli tirilebilir
Biccedilimlendirme Dil Doumlnuuml uumlmleri)
IX
OumlZET
Yuumlksek Lisans Tezi
AJAX TEKNOLOJ S KULLANARAK CcedilEVR M Ccedil
KATALOG TASARIMI
Zeynep OumlZER AYDO MU
F rat Uumlniversitesi
Fen Bilimleri Enstituumlsuuml
Elektronik-Bilgisayar E itimi Anabilim Dal
2009 Sayfa 107
Gerccedilekle tirilmi olan bu uygulama kapsam nda Flex program ve Web 20 n
ccedilekirde ini olu turan AJAX (Asynchronous JavaScript and XML) teknolojisi kullan larak F rat
Uumlniversitesini tan tan kolayl kla guumlncellenebilen Zengin nternet Uygulamalar na (RIA- Rich
Internet Applications) oumlrnek bir ccedilevrimiccedili katalog tasar m ve gerccedilekle tirimi yap lm t r
Projenin gerccedilekle tirim a amalar nda kullan lan teknolojilerin ve izlenen youmlntemlerin
anlat mlar n iccedileren bir yol haritas olu turulmu tur
Anahtar soumlzcuumlkler AJAX RIA Web 20 ccedilevrimiccedili katalog e-dergi
X
ABSTRACT
Master Thes s
ONLINE CATALOG DESIGN USING AJAX TECHNOLOGY
Zeynep OumlZER AYDO MU
F rat University
Graduate School of Natural and Applied Sciences
Department of Electronic and Computer Education
2009 Page 107
Embracing in this comparison F rat University is introduced by using Flex program and
AJAX (Asynchronous JavaScript and XML) technology which forms Web 20 Also RIA (Rich
Internet Applications) is easily renowated which is instance for online catalog design A road
map including realization of the project and tracing methods are illustrated
Keywords AJAX RIA Web 20 online catalog e-journal
1
1 G R
Web in geli im suumlrecinde ccedile itli youmlntemler kullan l r Bu youmlntemlerin farkl amaccedillara
hizmet etmeye ba lamas yla Web te ak mlar meydana gelmi tir Bu ak mlardan ilki Web 10
ak m olarak adland r l r Bu ak mda kullan c lar bilgilendirmeye youmlnelik iccedilerik sunumu
yap lmaktad r [1]
Web 20 ak m ise internet sitelerinin bilgi bar na olmas ndan i leyen platformlara
ta nmas
olarak tan mlanabilir Web 20 RIA (Rich Internet Applications- Zengin nternet
Uygulamalar ) i lemleri internet sunucu mimarisi temeline dayanmaktad r RIA da beraberinde
kulland AJAX Flex gibi teknolojiler uumlzerine kuruludur [1]
Baz yeni teknolojilerle de i en World Wide Web duumlnyas Web 20 RIA AJAX
(Asynchronous JavaScript and XML- E zamanl olmayan JavaScript ve XML) terimleriyle izah
edilmektedir
11 Tez Ccedilal mas n n Amac
Bu tez ccedilal mas yla Web 20 n ccedilekirde ini olu turan AJAX (Asynchronous JavaScript
and XML) teknolojisi ve Flex program kullan larak F rat Uumlniversitesini tan tan kolayl kla
guumlncellenebilen Zengin nternet Uygulamalar na (RIA-Rich Internet Applications) oumlrnek bir
ccedilevrimiccedili (online) katalog tasar m yap lmas hedeflenmi tir Projenin gerccedilekle tirim
a amalar nda kullan lan teknolojilerin ve izlenen youmlntemlerin anlat mlar n iccedileren bir yol
haritas olu turulmas amaccedillanm t r Bu tez ccedilal mas sonucunda geli tirilen yaz l mla kolay
guumlncellenebilen katalog haz rlanmas na katk sa lanmas amaccedillanm t r
12 Tez Ccedilal mas n n Kapsam
Bu tez ccedilal mas 6 boumlluumlmden olu mu tur 1 Boumlluumlm giri i olu turmaktad r 2Boumlluumlmde
Web 20 ak m incelenecektir 3 Boumlluumlmde AJAX teknolojisi accedil klanacakt r 4 Boumlluumlmde
yaz l m gerccedilekle tirme arac olarak kullan lan Flex tan t lacakt r 5 Boumlluumlmde gerccedilekle tirilmi
ccedilevrimiccedili katalog hakk nda bilgi verilecektir 6 Boumlluumlmde ccedilal man n sonuccedillar
ve gelece e
youmlnelik oumlneriler bulunmaktad r
2
2 WEB 20 AKIMI
Ccedilo u teknolojilerde oldu u gibi yenilik aray ihtiyaccediltan do ar Yeni Web ak mlar n n
do u u da 2001 y l ndaki tuumlm duumlnyay etkileyen kriz sonras nda iflas eden irketlerin yeniden
aya a kalkma ccedilabalar n n bir sonucu olarak ortaya ccedil km t r [2 3] Web 20 ak m 2005 te ilk
kez OReilly ve MediaLive International aras nda gerccedilekle en bir beyin f rt nas s ras nda
uumlretilmi bir kavramd r [3] Web 20 kavram World Wide Web teknolojisinde kullan lan
de i en ve geli en e ilimlere verilen bir ad olarak da tan mlanabilmektedir
ekil 21 Web 20 kavram
[4]
Web 20 kavram ekil 21 de goumlsterildi i uumlzere Web bir uygulama platformu ve sosyal
etkile imli olma oumlzelliklerini bar nd r r Ccedilevrimiccedili hayat n ba lang c ve devam n temsil eder
Say sal ortamda kendini ifade etme imkacircn sunar Kullan c lar (oku-yaz oumlzelli i ile) Web te
kat l mc kimlik kazan r
Asl nda Web 20 ortam n 1964 y l nda McLuhan Global Koumly terimini kullanarak
ortaya atm t r McLuhan Global Koumlyuuml gelecekte ileri teknolojiye geccedililmesiyle ve toplumlar
aras nda s n rlar n kalkmas yla duumlnyan n her kouml esinde teknolojiyi kullanan herkesin co rafi
s n rlar ve s n rlamalar olmaks z n diledikleri ki iyle ileti im kurabilecekleri
haberle ebilecekleri ve payla mda bulunabilecekleri bir ortam olarak tan mlam t r [5]
Mc Luhan n n tan m ndan guumlnuumlmuumlze kadar geccedilen suumlreccedil iccedilinde kullan c ihtiyaccedillar
da
de i im ve geli im goumlstermi tir Bu ihtiyaccedillar kar lamak iccedilin genel olarak internet
uygulamalar n n daha zengin bir arayuumlz ile sunulmas n sa layan uygulamalar Zengin nternet
Uygulamalar ad alt nda k sa zaman oumlnce hayat m za girmi tir
RIA uygulamalar s radan HTML web uygulamalar ile standart masauumlstuuml uygulamalar
aras ndaki bo lu u dolduran bir geli tirme platformudur Web arayuumlzuumlnde basit HTML ile
3
s n rl kalmadan masauumlstuumlndeki zengin goumlrsel ouml eleri program niteli inde kullanabilecek her
tuumlrluuml araccedil RIA konseptini uygulamaktad r [6]
Kullan c lar art k iccedilerik uumlreticilerin s n rlar n kald rarak kullan c n n yan s ra kat l mc
olarak ta nitelendirilerek etkile imli bir rol uumlstlenmi lerdir nternetin bu yeni gereksinimlere
cevap vermesiyle ortaya ccedil kan Web 20 doumlnuuml uumlmuuml hem kullan c say s nda art a neden
olmu tur hem de kullan c lar n iccedilerikleri yani mesajlar olu turdu u ve payla t buumlyuumlk bir
guumlce doumlnuuml muuml tuumlr Bu guumlcuumln oumlnemini ccedilabuk anlayan kurulu lar mimarilerine AJAX da dacirchil
ederek oumlnce arama motorlar n Google Yahoo yu daha sonra MSN yi Hotmail i bloglar
(Myspace Bloggercom Blogcucom gibi) Youtube u Wikileri ve sosyal a sitelerini
(Facebook Twitter Orkut vb) ke fetmi lerdir Bu ke iflerin sonucunda McLuhan n Global
Koumly uumlnuumln 21 Yuumlzy lda tam olarak gerccedilekle ti i soumlylenebilir Bu interaktif siteler sayesinde
ayn anda milyarlarca ki inin rk dil din ya am tarz e itim ya cinsiyet statuuml goumlzetmeksizin
e zamanl payla mda bulunup kendi ccedilevreleri ve ba ka ccedilevrelerle ileti ime geccedilebilmektedirler
ekil22 de goumlsterilen irketler Web 20 ak m nda oumlne ccedil kan sitelerin oumlzellikle ccedilevrimiccedili
faaliyet goumlsteren reklacircm irketleri pazarlama ve ticari irketler perspektifinden bak ld nda da
oumlnemli bir potansiyele sahip kitle ileti im araccedillar olarak goumlruumlluumlr [7]
ekil 22 Web 20 ak m nda oumlne ccedil kan uygulamalar [8]
Kitle ileti im arac olarak kullan labilen bu uygulamalar iccedilin birccedilok geli tirme ortam
mevcuttur Adobe Flex AJAX Java Applet Adobe Flash ve Microsoft Silverlight uygulamalar
en ccedilok bilinen RIA uygulamalar d r A a da da bu uygulamalarla olu turulmu Web 20
platformunda oumlne ccedil kan popuumller uygulama oumlrnekleri incelenecektir [7]
4
21 Web 20 Platformunda Oumlne Ccedil kan Popuumller Uygulamalar
kinci nesil internet hizmeti olarak literatuumlre giren Web 20 ak m yla internet sitelerinin
ccedilehresi de i mi tir nternet siteleri art k masauumlstuuml uygulamalar ile internet uygulamalar
aras nda bir koumlpruuml goumlrevi uumlstlenmi tir A a da bu ak m n popuumller uygulamalar ndan oumlrnekler
bulunmaktad r
211 Double Click - Google AdSense
Google firmas na ait iki uygulama da reklacircm verenlerin ve yay nc lar n web uumlzerinden
reklacircm hizmeti sunmas n sa layan sitelerdir Her reklacircmc n n hedefi tuumlketicilerin isteklerine
uygun ccediloumlzuumlmler sunmakt r Bu ccediloumlzuumlm ise Web 20 la reklacircmlar n profilini de i tirmi tir Art k
istenmeyen kendili inden accedil lan reklacircm pencerelerinin yerini kullan c n n bilgisayar na
yerle tirilmi ccedilerezlerden ccedilekti i bilgilere dayanarak kullan c n n ilgisini ccedilekebilece ini tahmin
etti i rahats z edici olmayan metin ya da resim tabanl
reklacircmlar alm t r
DoubleClick in di er reklacircm firmalar ndan ayr lan youmlnuuml reklacircmc lar iccedilin DART
oumlnerisiyle k saca DFA (DART for Advertisers) ile reklacircm youmlnetimi ve servis ccediloumlzuumlmlerinde
kullan c lar na dijital pazarlama programlar n n tuumlmuumlnuuml kapsayan youmlnetimi kolay daha iyi bir
arayuumlze sahip h zl geni bir arama sistemine sahip de eri artan sitelerin trafik ak n
belirleyen bir ccediloumlzuumlm olmu tur DoubleClick daha ccedilok grafiksel reklacircmlar yay nlamaktad r
Oumlnceleri Web 10 uygulamalar aras nda say lan bu site Web 20 doumlnuuml uumlmuumlnuuml ba ar yla
gerccedilekle tirmi tir [9]
Google AdSense ise web sitesi yay nc lar n n site iccedileri iyle alakal dinamik ve goumlze
batmayan Google reklacircmlar n
web sitelerinde goumlstererek kullan c lar n bu reklacircmlara
t klamalar yla para kazanmalar n sa laman n h zl ve kolay bir yoludur Uumlcretsiz olan bu
program sayesinde her t klama ve goumlsterim iccedilin site sahiplerine oumldeme yap l r [10] Bu
uygulamalar sayesinde Web de daha ak ll bir sisteme do ru youmlnelim ba lam t r
ekil 23 Doubleclick ve Google Adsense sitelerinin logolar [11 12]
5
212 Flickr
Yahoo nun sundu u bir hizmet olan uumlcretsiz foto raf arama ve payla m sitesi Flickr
ayn zamanda web servisi ve ccedilevrimiccedili topluluk platformudur Web 20 n ilk uygulamalar ndan
biridir Foto raf payla m nda en popuumller sitelerin ba nda gelmektedir ccedileri inde yakla k
olarak 3 milyar
a an foto raf bulunmaktad r Yenilikccedili ccedilevrimiccedili topluluk araccedillar foto raflar
etiketlemeye ve s n fland rmaya yard mc olur Bu da popuumllaritesindeki ciddi art n
nedenlerinden biridir
Flickr a imaj yuumlkleyebilmek iccedilin Yahoo dan bir e-mail adresiyle sisteme giri
yap lmal d r Payla lmak istenen foto raflar uumlcretli uumlyelik olmadan her imaj iccedilin 5 Mb l k
s n rlamayla ayda toplam 100 Mb a kadar yuumlkleme yap labilir Sadece foto raf eklemenin
d nda imajlar uumlzerinde duumlzenlemeler yap labilir Belirlenen alanlara notlar eklenebilir
Be enilen foto raflara yorumlar eklenebilir Ccedile itli gruplara uumlye olunup ileti im kurulabilir
Ayr ca API leri sayesinde XML-RPC (Remote Procedure Call- Uzaktan Yordam Ccedila rma)
arabirimi kullanarak flickr sitesindeki foto raflarla ilgili bilgileri proseduumlrler sayesinde XML
format nda al p ayr t rarak ba ka bir programda kullan labilinir Flickr daki blog grup ve
etiketleme alt yap s bu API lere dayanmaktad r [13]
ekil 24 Flickr sitesinin logosu [14]
213 BitTorrent
BitTorrent internet uumlzerinden yuumlksek h zlarla iccedileri in da t ld duumlnya ccedilap nda bir
standartt r Ayr ca 150 milyondan fazla kullan c ya sahip en son p2p (peer to peer) dosya
payla m youmlntemlerinden biridir Di er p2p payla m programlar ndan fark sabit olmayan
ba ms z sunucu tan mlama dosyalar sayesinde sabit bir sunucuya ihtiyaccedil olmaks z n belirli bir
protokol ccedilerccedilevesinde indirme (download) yaparken yuumlkleme (upload) yap lmas na da izin
vererek payla ma devam edebilmesidir [15]
Python programlama diliyle yaz lm bir uygulamad r [15]
ekil 25 ccedilerik da t m sitelerinde bittorrent site logosu [16]
6
Bit Seli olarak da ccedilevirebilece imiz ccedilok h zl bir sistemdir BitTorrent sayesinde
oldukccedila buumlyuumlk boyutlu videolara ses ya da yaz l m dosyalar na daha h zl daha ucuz ve daha
kolay bir ekilde ula labilmeyi sa lar
Guumlnuumlmuumlzde ccedilerik Da t c A lar (Content Distributed Networks-CDNs) guumln geccediltikccedile
popuumllaritesini art rmaktad r Bittorent kullan m n n 2004 te internet te teknik standartlar ve
youmlnetim konusunda yetkili organ olan W3C (World Wide Web Consortium - Duumlnya Ccedilap nda
A Birli i) taraf ndan yap lan bir ccedilal maya goumlre P2P ba lant lar n toplamda 60 n tuumlm
internet trafi inin ise 30 unu a aca tahmin edilmektedir
BitTorrent le dosya transferi yap l rken oumlncelikle bilgisayarda BitTorrent stemci
(Client) yuumlkluuml olmal d r stemci yaz l mlara oumlrnek Flashget Azureus BitTorrent Torrent
ABC LimeWire vb yaz l mlar olabilir ekil 26 ve ekil 27 de en popuumller uygulamalardan
Torrent yaz l m n n kurulum ve arayuumlz oumlrne i goumlruumllmektedir
ekil 26 Torrent program n n anasayfas
7
ekil 27 Torrent program n n arayuumlzuuml
BitTorrent istemciler BitTorrent Protokol uygulamalar n yapar Her istemci bu
protokoluuml kullanarak dosyalar n kullan c lar n BitTorent in kulland protokole sahip
duumlnyadaki tuumlm iccedileriklere h zl ve guumlvenilir bir ekilde eri mesine izin verir stenilen iccedileri in
indirilebilmesi iccedilin gerekli tan mlama bilgilerinin bar nd
torrent uzant l bir dosyaya
ihtiyaccedil vard r Bu torrent dosyalar n ccedile itli duyuru sitelerinden ya da Web den temin edildikten
sonra istemciler yukar da bahsedilen herhangi bir torrent yaz l m kullanarak bu dosyay accedilarlar
ndirme ba lad anda indirilmek istenen dosyay payla an kullan c lar n olu turdu u kuumlccediluumlk
a a (swarm) dacirchil olurlar Bu kuumlccediluumlk a daki her kullan c dosyan n indirdi i boumlluumlmuumlnuuml di er
kullan c larla payla mas gerekir Tuumlm bu i lemleri de takipccedili (tracker) isimli bir sunucu kontrol
eder Yakla k olarak 256 Kb buumlyuumlkluuml uumlndeki bu kuumlccediluumlk boyutlu dosyalara indeksleyici
(indexer) de denmektedir Kuumlccediluumlk bir a
kurulmas iccedilin tuumlm dosyaya sahip en az bir da t c n n
(seeder) olmas gerekir Da t c lar herhangi bir dosyay yuumlkleyen kaynaklard r O dosyan n
tamam n
kendi bilgisayar na indiren her kullan c art k bir da t c
olur Fakat da t c olmak
kullan c lar n insiyatifindedir ndirme i lemi bittikten sonra o dosya payla ma accedil k tutulmazsa
di er kullan c lar da t c dan bu dosyay ccedilekerek indirme i lemini h zland ramazlar Da t c
say s
ne kadar artarsa indirme i lemi o kadar h zl olur ndirme yapan kullan c lara da grup
uumlyeleri (peers) denilmektedir Torrent dosyas n indiren kullan c lar izleyicilere (tracker) dosya
hakk nda bilgi goumlnderirler di er kullan c lar (peers) ise izleyicilere ba lanarak kimde hangi
dosyan n hangi parccedilalar n n oldu unu ouml renirler zleyiciler uumlzerinden kesinlikle dosya transferi
8
gerccedilekle mez sadece kaynak payla l r Hangi kullan c ne kadar dosya ccedilekti ve ne kadar
yuumlkledi gibi istatistiksel bilgileri de bar nd rabilir [16 17]
Sadece indirme i lemi yap p kaynak olmay istemeyen ki ilere leecher (suumlluumlk) denir Bu
anlay a sahip ki iler gruplar iccedilinde ho kar lanmazlar Bir torrent dosyas payla m nda
kaynak (seed) say s s f r ise yani dosyan n tamam na sahip ki iler payla mdan ccedilekilmi lerse
eksik dosyaya sahip buumltuumln uumlyeler (peer) birbirleri aras nda veri al veri i yaparak eksik
parccedilalar indirebilecekleri bir kaynak olmad ndan belli bir yuumlzdesi tamamlanm dosyaya
sahip olarak kal rlar Bu durumda daha oumlnce dosyay indirmi ve dosyan n tamam na sahip olan
bir kullan c
eksik parccedilalar goumlndermek iccedilin dosyay yeniden payla ma accedilabilir (seed eder) Bu
olaya reseed etme denir [18]
214 Sosyal A Siteleri
Sosyal a lar bireyler aras ndaki ki isel veya profesyonel ili kilerin olu turuldu u
duumlzenlendi i a d r [19] Son y llardaki bilgi teknolojilerindeki geli meler sosyal a lar n gerccedilek
ya amdakinden daha farkl bir ekilde yeniden yap lanmas n
sa lam t r Herhangi bir
irketteki yerel a iccedilinde personelin e-posta al p-goumlndermesiyle olu an etkinlik ve e-posta
gruplar ilk ccedilevrimiccedili sosyal a oumlrneklerinden say labilir Daha sonra h zla hayat m za giren
bloglar wikiler ve sosyal a siteleri gibi sosyal i birli i sa layan teknolojilerin geli mesi
insanlar n ileti im kurduklar bilgi resim muumlzik video payla t klar ve birbirleriyle suumlrekli
haberle tikleri ccedilevrimiccedili sanal topluluklar n olu mas n sa lam t r [20] Bu topluluklar n h zla
yay lmas n n temelinde kullan c lar n bireysel aktivitesine ba l olarak duygu ve duuml uumlncelerini
bilgiyi guumlncel haberleri tavsiyelerini be enilerini payla ma fikri vard r A a da sosyal a
sitelerinden en popuumller olanlar iccedilinde yer alan Facebook incelenecektir [7]
2141 Facebook
En yayg n sosyal a sitesi Facebook Amerika Birle ik Devletleri nde 4 ubat 2004
tarihinde Harvard Uumlniversitesinde ouml renci Mark Zuckerberg taraf ndan kurulmu tur Facebook
oumlncelikle Harvard ouml rencileri iccedilin kurulmu tu Daha sonra h zla tuumlm duumlnyaya yay lm t r
Kullan c lar siteyi uumlcretsiz uumlye olarak kullanabilmektedir Site gelirini banner reklamlar ndan ve
sponsor gruplar ndan almaktad r Duumlnyan n en popuumller Web 20 blogu TechCruncha goumlre
Amerika Birle ik Devletleri ndeki uumlniversitelerdeki ouml rencilerin 85inin facebookda bir
hesab bulunmakta ve bunlar n 60 her guumln ba lanmaktad r 85 her hafta 93 her ay
ba lananlar aras ndad r [21] Facebook sitesinden ba ms z Web 20 ak m n yak ndan takip
9
eden bir blog sitesi olan insidefacebook 2009 Ocak ay n n ba nda yay nlad habere goumlre
facebook kullan c say s a a daki grafikte goumlruumllduuml uuml gibi yakla k 140 milyonu bulmu tur
Milyonlar a k n aktif uumlye say s yla guumlnde ortalama 150 bin aktif kullan c yla sanal duumlnyan n en
popular sitesi olmu tur [22]
ekil 28 Facebook kullan c say s n n aylara goumlre da l m grafi i [23]
Aktif kullan c lar n iccedileri e katk s a a daki istatistik sonuccedillar n do urmu tur [22]
13 milyon kullan c durumlar n en az ndan guumlnde bir kez guumlncellenmektedir
25 milyon kullan c her guumln Sayfa hayran (fan of Pages) olmaktad r
Siteye her ay 700 milyon foto raf yuumlkleniyor ki toplam foto raf rakam yakla k 10
milyar bulmaktad r
Her ay 4 milyon video yuumlklenmektedir
Her ay 15 milyon iccedilerik parccedilas (web linki yeni hikacircyeler blog yaz lar notlar
foto raflar vb) payla ma sunulmaktad r
Her ay 2 milyon etkinlik olu turulmaktad r
Sitede 19 milyon adet aktif grup varl n suumlrduumlrmektedir
Yukar da belirtilen bu rakamlar sosyal ileti im a lar n n ne kadar ciddi boyutlarda bir
kapasiteye sahip oldu unu goumlstermektedir
10
ekil 29 Aylara goumlre facebook ve myspace site analizi [22]
Facebook ve ona en yak n rakibi sosyal ileti im web sitesi olan MySpace compete de
kar la t r ld nda yukar daki grafik elde edilmektedir
Tablo 21 Facebook ve myspace in buumlyuumlme tablosu
Tarih 032008 032009 Kullan c
Ayl k Y ll k
facebookcom
91054535 234
1951
myspacecom
55594761 48
-114
Tablo 21 de Mart 2008 ile Mart 2009 aras ndaki ayl k aktif ziyaretccedili say s n
goumlstermektedir Compete verilerine goumlre Aral k 2008 de facebook myspace in kullan c say s n
yakalam t r Tablo 21 deki verilere goumlre bir oumlnceki y la goumlre Facebook taki kullan c say s nda
ayl k 234 luumlk bir art varken MySpace 48 lik bir buumlyuumlmeye sahiptir Yakla k olarak
ayl k MySpace Facebook u 5 kat geriden takip etmektedir Facebook taki bir oumlnceki y la
goumlre 1951 lik buumlyuumlmeye kar n myspace de 114 luumlk kuumlccediluumllme goumlruumllmektedir Elde edilen
veriler ileriki y llarda bu rakamlar aras ndaki uccedilurumun artaca n i aret etmektedir
Facebooktaki bu h zl buumlyuumlme ekonomi ve ticari sektoumlruumlnuumln de ilgisini ccedilekmektedir Oumlnemli bir
yat r m alan olarak giri imcileri cezbetmektedir
Facebook youmlneticilerinden Peter Thiel ise Facebookun iccedil de erinin 8 Milyar dolar
oldu unu ve proje gelirlerinin 2015 y l iccedilin 1 milyar dolar oldu unu soumlylemektedir [24]
Duumlnyaca tan nm Microsoft irketi 24 Ekim 2007 de Facebooku 16l k hissesini 240 milyon
dolara sat n alm t r Google ve di er irketler de gittikccedile de er kazanan Facebook hisselerine
youmlnelmektedir [24]
11
215 Web Guumlnluumlkler
ngilizcedeki Web
ve log kelimelerinin birle iminden olu an Blog kelimesi internet
uumlzerinden ki ilerin istedikleri konu hakk nda fikir beyan edebilecekleri kendilerini kolayca
ifade etmelerini sa layacak bir ortamd r
Bloglar genellikle en yeni yorum ve yaz lardan eski tarihli yorum ve yaz lara do ru
s ralanm web tabanl yay nlar
belirtir Bloglar n iccedileri i suumlrekli guumlncellendi i iccedilin sadece
bloglar iccedilin kurulmu oumlzel indeksleme mekanizmalar ve arama motorlar bulunmaktad r [25]
Duumlnya ccedilap nda indeksleme mekanizmalar n n en oumlnde geleni Technorati firmas
milyonlarca blog okuyucusu iccedilin her geccedilen guumln 15 milyondan fazla yeni blogu
indekslemektedir [26] Forrester in ara t rma irketlerinden internet ile ilgili ciddi bir ara t rma
kurumu olan JupiterResearch uumln 2008 A ustos unda bloglar uumlzerine gerccedilekle tirdi i
ara t rmada internet kullan c lar na 40 soruluk kapal uccedillu soru youmlneltilmi tir Bu ara t rma
sonucunda geccedilti imiz doumlrt y l iccedilerisinde bloglar n okunma oranlar nda 300 oran nda bir art
oldu u ortaya ccedil km t r Belki ilgimi ccedilekecek bir bloga ula abilirim duuml uumlncesi ile kullan c lar
okuduklar bloga eklenmi
olan di er linkleri de takip edebiliyorlar S k blog okuruyum
diyenlerin 38 i yeni bir blogu okudu u blogun linklerinden ke fetti ini belirtmi tir
Ara t rmaya kat lan blog okurlar n n 34 uuml Web te dola rken yeni bir blogla tan t n 11 i
blog arama motorlar n kulland n
belirtmi [27]
Bloglar n bu kadar yayg nla mas n n nedenlerinde biri de internet gezginler sanal
acirclemdeki tek duumlze yorumsuz hatta bazen oldukccedila bilimsel bir dille yaz lm yaz lardan
s k ld klar iccedilin bloglar tercih etmektedir Bloglarda ki iler gittikleri bir seminer hakk ndaki
yorumlar n kulland klar bir uumlruumln hakk ndaki fikirlerini k saca hayata dair kendi yorumlar n
katarak ba ka ki ilerle payla abilmektedirler
216 Wiki
Bilgiye ula mak iccedilin eskiden oldu u gibi kitap ya da ansiklopediler kullan lmamaktad r
Guumlnuumlmuumlzde kuumlreselle menin ve geli en teknolojinin etkisiyle tuumlm kaynaklara bilgisayar
uumlzerinden ula lmas elde edilen bilgilerin k sa suumlrede derlenebilmesine imkacircn vermi tir
Wiki ler kullan c lar n uumlzerinde istedi i gibi duumlzenlemeler yapmas na izin veren bilgi
sayfalar toplulu udur ngilizce What I Know is soumlzcuumlklerinin k saltmas
olan Wiki
Bildi im kadar yla anlam na gelir [28]
12
Wikilerin ccedilal ma prensibi u ekilde accedil klanabilir Bir web program script ya da script
grubu sayesinde veritaban na yaz lm olan ya da sadece dosya halindeki verileri okur bu
verileri HTML kodlar ile de i tirir ve Web taray c s na yans t r
ekil 210 Vikipedi oumlzguumlr ansiklopedi sitesinin logosu
Wiki dilini kullanan ve internetin en geni iccedileri ine sahip ccedilevrimiccedili ansiklopedisi
Vikipedi 22 Ocak 2007de Alt n Oumlruumlmcek 2006 En yi ccedilerik oumlduumlluumlnuumln sahibi oldu
Wikipediaorg taraf ndan geni kitlelere tan t lan Wiki dili pek ccedilok farkl programlama
platformunda Javascript ASP PHP C++ vb kullan labilmektedir
2161 Wiki Kullanman n Avantajlar
Web proje gruplar
projeleri olu tururken ekiplere ayr ld iccedilin programc lar kendi
goumlrevi d ndaki ccedilal malarda neler yap ld n
tam olarak bilemez ccedileri in yap land r lmas nda
geli melerden sadece iccedilerik koordinatoumlrleri haberdard r An nda yap goumlster oumlzelli iyle Wikiler
bu sorun iccedilin pratik bir ccediloumlzuumlm te kil eder
ndekslenme yapan sitelerde bile arama yap l rken defalarca ayn siteye girilebilir yahut
aran lan bilgiyi bulmak ccedilok zaman alabilir Wiki gereksiz tekrarlardan kurtar r steyen herkes
wiki iccedileri indeki bilgileri eksik ya da hatal
ise de i tirilebilir veya kald rabilir Bu i lemleri
yapan wiki youmlneticilerine wikipedist denir Wikipedistler sayfa duumlzenlemelerine ve iccedilerik
zenginle tirmeye yard mc olurlar
Wiki de de i iklik yap ld nda de i iklik yapan ki inin bir hesab yoksa IP adresiyle
varsa kullan c ad yla kaydedilerek hemen sonuccedil goumlzlenebilir Yap lan iccedileriksel herhangi bir
hata ba kalar taraf ndan fark edildi inde duumlzeltilir Geccedilmi sekmesiyle duumlzeltilen sayfalar n
oumlnceki suumlruumlmleri kronolojik s ralamayla takip edilebilir hatta sayfalar aras nda kar la t rma
bile yap labilir Sayfa iccedilerikleri hakk nda Tart ma
sekmesiyle fikir beyan nda bulunulabilinir
Tart malara yorum eklenebilir Denetleme mekanizmas sayesinde telif haklar n n ihlali gibi
durumlarda ihlali yapan kullan c lar engellenebilmektedir
13
Wiki di er ansiklopedilerden farkl olarak Vikipedi GNU Oumlzguumlr Belgeleme Lisans
(GOumlBL) kullanmaktad r Kullan c lar na oumlzguumlr iccedilerik kat l m e it tarafs z ve uumlcretsiz kat l m
hakk verir Ayr ca diluumllkekonuya goumlre geli mi kategorilendirme sistemine sahiptir Diff
oumlzelli i sayesinde sayfalar aras ndaki fark izlenebilir [29]
217 ccedilerik Youmlnetim Sistemleri
ngilizce Content Management System ya da k saca CMS olarak tan nan ccedilerik
Youmlnetim Sistemleri - YS bilgiyi olu turmak ar ivlemek ara t rmak denetlemek ve
yay nlama olana sa layan buumlyuumlk bir veritaban na sahip moduumlllerden olu an buumltuumlnle ik bir
ortamd r YS lerde iccedilerik iki ayr boumlluumlmden olu ur Bunlardan birincisi uumlzerinde i lem
yap lmam olan ham bilgiyi bar nd ran veritaban
di eri ise bu bilginin yerle imini goumlsteren
ablondur ablonda bilginin goumlsterilece i sayfan n goumlrsel boumlluumlmuumlnuuml olu turan yaz tipleri
renkleri gibi tuumlm biccedilim bilgileri saklan r Genellikle PHP benzeri dillerle kodlan r Boumlylece daha
esnek hale gelebilirler [30]
ccedilerik Youmlnetim Sistemleri uluslararas platformda birccedilok organizasyon iccedilin zorunluluk
haline gelen modern bir veri youmlnetimi tekni idir Guumlnuumlmuumlzde iccedilerik youmlnetim sistemleri kendi
iccedilerisinde boumlluumlnmuuml bir yaz l m enduumlstrisi haline gelmi tir Kendi iccedilerisinde portal sistemleri
Wiki sistemleri web-based grupware vb alt dallara ayr lan enduumlstri guumlnuumlmuumlzde halen
geli imini suumlrduumlrmektedir [31]
Web yay nlama sistemi kullan c lar arad klar iccedileri e goumlre veritaban iccedilinde anahtar
kelimeler yazar olu turulma tarihi gibi ccedile itli oumllccediluumltlere goumlre arama yapabilirler Web iccedilerik
youmlnetim sistemleri bilgi portallar olu turmak iccedilin bilgi youmlnetimi hizmeti sunar YS buumlnyesinde
bar nd rd
yaz l m moduumllleri sayesinde herhangi bir kullan c n n web sitesi uumlzerindeki
i lemleri yapabilmesi iccedilin grafiksel kullan c arayuumlzuuml sunar
YSnin temeli iccedileri in olu turulmas ndan son hali olan yay nlanma evresine kadar tuumlm
evrelerde iccedileri i youmlnetme esas na dayan r Ayr ca YS nin iccedileri i E-ticaret ve Muuml teri li kileri
Youmlnetim Sistemleri (MIYS) (ing CRM - Customer Relationship Management System) ile de
payla labilir YS sayesinde iccedilerik yay n
teknik bilgisi olmayan kullan c lar taraf ndan bile
yap labilir Kullan c lar na sade basit ama guumlccedilluuml web taray c s destekli bir uygulama arayuumlzuuml
sunar [32]
14
218 Etiketleme (Folksonomi)
Web 20 sitelerinde goumlze ccedilarpan etiket bulutlar ile kullan c lara ilgilendikleri konulara
ili kin kolay ve h zl ba lant lar sa lanmaktad r Site iccedileri iyle ilgili konular ccedile itli etiketler ad
alt nda s n fland r l r Her etiket iccedilinde bar nd rd makale yaz ba l k ile farkl boyutlarda
olabilmektedir Yani etiketin yaz boyutu ne kadar buumlyuumlkse iccedilinde bar nd rd iccedilerik o kadar
fazlad r ekil 211 de bir etiket bulutu goumlruumllmektedir
ekil 211 Oumlrnek etiket bulutu
22 Web 20 da Site Tasar m nda Dikkat Ccedileken Oumlzellikler
Yukar daki popuumller uygulamalar olu turulurken dikkat ccedileken ortak oumlzellikler bu ba l k
alt nda incelenecektir Genel olarak Web sitelerindeki de i im ve geli im tasar m ve arayuumlz
accedil s ndan de erlendirilecektir
221 Logolar
Logolara daha parlak bir goumlruumlntuuml verilirken yans ma efekti bolca kullan lmaktad r
Yans ma efekti dinamik olmayan tuumlm objelere kullan larak siteye derinlik hareket ve modern
bir goumlruumlnuuml kazand r l r Kullan c lar n dikkatini ccedilekmek iccedilin ekil 212 de goumlruumllduuml uuml gibi
logolara rozet eklinde yenilik bildiren kelimeler eklenebilmektedir [33] Bu yenilik bildiren
kelimelerden Beta ifadesiyle s k s k kar la l r Bunun nedeni Web 20 ak m na goumlre
kullan c lar birer yard mc -geli tiriciler olarak benimsenir Sonuccedil olarak ortaya ccedil kan site suumlrekli
geli mekte ve de i mektedir Logolara yerle en Beta bu geli imin bir simgesi haline gelmi tir
[34]
15
ekil 212 Yans mal logo oumlrne i [34]
222 Butonlar
Butonlarda ise klasik butonlar yerine resim olarak haz rlanan butonlarda oumlzellikle cam
efekti ve renk geccedili (gradient) efekti hacirckimdir Gradient efekti butonlarda logolarda ya da arka
planlardaki renk geccedili lerini daha yumu at r Bir renkten farkl bir renge keskin geccedili lerin oumlnuumlne
geccedililmi olur [33] Ccedile itli buton oumlrnekleri ekil 213 de goumlruumllmektedir
ekil 213 Web 20 da buton oumlrnekleri
223 Arka Planlar
Web 20 ile sitelerde arka planlar olu turulurken yatay eritlerden ya da duumlz renk
geccedili lerinden faydalan labilinir Her iki ekilde de hedeflenen ortak amaccedil ekil 214 te oldu u
gibi goumlzuuml yormayan tasar mlar gerccedilekle tirmektir [33]
ekil 214 Web 20 da arka plan oumlrnekleri
16
224 Ccedilerccedileveler
Site iccedilinde goumlruumlnmez iframe ler yerine ekil 215 deki gibi ccedilerccedilevelerin yuvarlak kouml eli
kutular olarak tasarlanmas
oumln plana ccedil km t r Kouml eleri keskin duumlz kare veya dikdoumlrtgen
biccedilimde kutular art k kullan lmamaktad r Yuvarlak kouml eli kutu yap m iccedilin farkl tekniklerle
olu turulabilecek programlar mevcuttur Resim css ve html teknikleri kullan lacaksa Spiffy
Corners RoundedCornr ve CSS Rounded Box Generator gibi araccedillar kullan labilirken Nifty
Corners Cube ve curvyCorners gibi araccedillar da JavaScript tekni i ile kullan labilinir [33]
ekil 215 Web 20 da ccedilerccedileve yap s na oumlrnek
225 Menuumller
Site iccedileri inden etkin bir ekilde faydalanabilmek iccedilin menuuml ve sekmeler sade kolay
anla labilir olmal d r Hem goumlrsel hem kullan l menuumller CSS kodlarla olu turulabilir [33]
ekil 216 Web 20 da menuuml oumlrne i
Yukar da bahsedilen konu Web 20 platformunda olu turulan sitelerin genel oumlzellikleri
olarak alg lanabilir Bu oumlzellikler d nda da tasar mlar olabilmektedir
17
3 AJAX
AJAX kavram n n ilk ccedil k noktas
ubat 2005 de Jesse James Garrett taraf ndan the
Adaptive Path Web sitesinde Ajax A New Approach to Web Applications ba l yla
yay nlanan makaledir [35]
ekil 31 Jesse James Garrett in makale goumlruumlntuumlsuuml [36]
Bu makalede Web uygulamalar olu turulurken tasar mlardaki buumlyuumlleyici geli meler
yenilikccedili ccedilevrimiccedili projelerle desteklenirken bunun yan nda h zl cevap verebilir daha zengin
goumlrsellere sahip masauumlstuuml uygulamalar aras ndaki bo lu a dikkat ccedilekilmi tir Bu bo lu u
dolduran Google Suggest ve Google Maps uygulamalar Adaptive Path sitesinde AJAX olarak
adland r lan Web uygulamalar na yeni yakla m n en iyi oumlrnekleri oldu u belirtilmi tir Klasik
Web uygulamalar n n ccedilal ma modeliyle AJAX l uygulamalar n ccedilal ma modeli
kar la t r lm t r AJAX di er uygulama youmlntemlerinden ay ran oumlzellikleri belirtilmi tir
AJAX yakla m na buumlyuumlk yat r mlar yapan Google n neden AJAX tercih etti i accedil klanm t r
Google Groups Google Suggest Gmail Google Maps ve ard ndan Flickr Amazon nun
A9com servisleriyle kullan c lar n oda haline geldi ine de inilmi tir [35]
AJAX n ccedilekirde i olan XMLHttpRequest (XHR) nesnesi sayesinde de iyi haz rlanm
sa lam ve kolay anla labilir-kullan labilir sitelerin olu umuna dikkat ccedilekilmi tir [35] A a da
18
ise AJAX tekni i kullanan en populer servislerden Google Suggest ve Google Maps hakk nda
k sa bilgi verilecektir
31 Google Suggest
ekil 32 Google Suggest ekran goumlruumlntuumlsuuml
Google Suggest a httpwwwgooglecomigcomplete=1amphl=en
adresine girildi inde
ekil 32 de goumlruumlnen ana sayfaya ula lmaktad r Google Suggest servisinin oumlzelli i arama
motorunda aranacak kelimenin harfleri girilmeye ba land andan itibaren filtreleme yaparak
text alan n n alt na accedil lan boumllmede oumlneriler sunulmaktad r Sadece oumlneri sunmakla da kalmay p
oumlnerileri popuumllarite s ras na goumlre s ralar Kelime tamamlama oumlzelli i sayesinde aranan kelime
tam yaz lmadan gelen oumlnerilerden biri t klanarak istenen sonuca ula labilinir Ayr ca oumlnerilerin
yan nda o kelimeye ait kaccedil sonuccedil oldu u da belirtilir ve bu i lem sadece 1-2 sn iccedilinde
gerccedilekle ir
32 Google Maps
ekil 33 Google Maps ekran goumlruumlntuumlsuuml
19
Google Maps sitesine httpmapsgooglecom
adresinden ula labilinir Google n
etkile imli harita servisi ile arama motorunda goumlruumlntuumllenmek istenen konum yaz larak
Haritalarda Ara butonu ile o konuma odaklan l r Bir yerden bir yere gitmek iccedilin Yol
Tariflerini Al butonu kullan l r Konumun iste e goumlre uydu arazi ve sokak haritas
goumlruumlnuumlmlerine ula labilinir Daha fazla seccedilene i ile resim video ve wikipedia katmanlar da
goumlruumlntuumlye eklenir Hatta yurtd ndaki ba lant larda yoldaki trafik ak n n h z hakk nda bile
bilgi katman mevcuttur
Di er harita web uygulamalar ndan farkl olarak Google Maps te harita uumlzerinde ccedile itli
youmlnlere ula mak iccedilin suumlrekle b rak youmlntemi kullan l r Harita bir imaj serisi halinde ayr larak
boumlluumlnuumlr Biti ik imajlar n birlikte goumlruumlntuumlsuumlnuumln olu turulabilmesi iccedilin bu serilerden faydalan l r
Goumlruumlntuumllenen haritada kullan lan imaj say s s n rl d r Bu da her seferinde yeni imajlar n
olu turulmas gerekti ini goumlsterir Kullan c n n harita uumlzerindeki h zl hareketleri haf za
problemlerine yol accedilabilir Bunun yerine ayn imajlar haritan n farkl segmentlerinde tekrar
tekrar goumlruumlntuumllenir [37]
stemci-sunucu ileti imi gizli bir IFRAME uumlzerinden yap l r Bir arama yap ld nda
veya yeni bir yol soruldu unda bu bilgiler goumlnderilir ve IFRAME iccedilinde doumlnduumlruumlluumlr Veri XML
format nda ccedilevrilir ve bir Javascript fonksiyonunda (AJAX Motorunda) kullan lmak iccedilin
aktar l r Bu XML verisi sonra farkl ccedile itli ekillerde kullan l r Bazen hatas z harita imajlar n n
ccedila r lmas nda bazen de XML dokuumlmanlar n n XSLT (Extensible Stylesheet Language
Transformations Geni letilebilir Biccedilimlendirme Dili Doumlnuuml uumlmleri) sayesinde HTML kodlar na
doumlnuuml tuumlruumllerek ana pencerede goumlruumlntuumllenmesinde kullan l r [37]
Bunlar n d ndaki daha birccedilok accedil k kaynak projeler ve ticari uumlruumlnler bu yeni Web
uygulama modelinin avantajlar ndan faydalanarak geli tirilmeye ba lanm t r [37]
33 Neden AJAX
AJAX terimi oldukccedila guumlccedilluuml bir kelimedir Guumlcuumlnuuml daha zengin geni enduumlstri trendlerinin
olu umunda kullan labilmesinden ve oumlzguumlr Web uygulamalar n n kurulumunda odak noktas
olmas ndan al r Ayr ca programc lar yabanc olduklar yeni programlama dilleri ouml renmelerine
gerek kalmadan geli tirdikleri Web uygulamalar na istedikleri etkiyi katabilmektedirler Bunu
yaparken de sunucu tarafl teknolojileri kullan rken var olan yat r mlar n n d nda ba ka
masraflar olmaz AJAX guumlccedilluuml bir teknik olmas n n yan s ra di er teknolojilerle birlikte
kullan ld nda daha etkili sonuccedillar al nabilmektedir [38] AJAX Java 2 Enterprise Edition
(JAVA EE) Net PHP Flex CGI scriptler ve di er birccedilok uygulama geli tirme ortam nda
ccedilal abilir
20
AJAX uygulamalar n n gittikccedile yayg nla mas n n bir nedeni de geleneksel uygulamalara
goumlre istekcevap modelleri aras ndaki farkt r ekil 34 te goumlsterildi i uumlzere geleneksel Web
uygulamalar nda sunucuya yap lan her istekte olu turulan cevap Web sayfas n n tuumlmuumlnuuml
etkileyerek yeniden yuumlklenmesine neden olmaktad r
ekil 34 Geleneksel sunucularda istekcevap modeli [39]
AJAX n asenkron metodolojisiyle klasik Web mimarilerindeki gibi sunucuya gidip
parametreleri i lemek yerine ekil 35 te goumlruumllduuml uuml uumlzere birccedilok sunucu iste i tuumlm sayfan n
yenilenmesine ihtiyaccedil duymadan cevaplanabilmektedir
ekil 35 AJAX n asenkron istekcevap modeli [39]
Yukar da anlat lan durum kullan c lar ekil 36 da goumlruumllen t kla-bekle doumlnguumlsuumlnden
kurtar r AJAX kullan c lara ekil 37 deki gibi kesintisiz gezinti (soumlrf) imkacircn sunar
21
ekil 36 Klasik Web uygulamalar nda t kla-bekle doumlnguumlsuuml [40]
ekil 37 T kla-T kla interaktif AJAX uygulamas
[40]
stek i lem basamaklar ekil 38 te goumlsterildi i gibi AJAX motoru sayesinde JavaScript
kod betikleri kullan larak sunucuya HTTP tabanl ba lant sa lan r Bu ba lant
XMLHttpRequest protokoluumlnuuml kullanarak mesaj transferi yap lmas n sa lar Bu sayede hem h z
artar hem de bant geni li i verimli bir ekilde kullan lm olur
ekil 38 Geleneksel Web ileti im modeli ile AJAX ileti im modeli [37]
AJAX sunucuya kullan c n n Web taray c s uumlzerinden Javascript ortam nda ikinci bir
ileti im yoludur AJAX n kullan m normal Web uygulamalar nda goumlruumllen tipik sayfa ak nda
de i ikliklere neden olur AJAX ile istekler daha s k ve daha kuumlccediluumlk cevaplar halinde HTML
olmayan veri formunda cevaplan r Daha iyi anlayabilmek iccedilin normal bir Web uygulamas n n
ileti im ak ekil 39 da goumlruumllmektedir [41]
22
ekil 39 Web uygulamas ndaki cevap ak
Bir AJAX Web uygulamas bir Web uygulamas n n normal ileti im ak n al r ve yeni
bir istek tipi ekler Bu durum sunucuya normal sayfa iste i gibi goumlruumlnuumlr ama Web taray c iccedilin
farkl formatta bir giri i vard r Kullan c taraf ndan do rudan tetiklenmeyen ve sayfan n
tamam n n yeniden yuumlklenmesini gerektirmeyen bir istektir Ccedilo u durumda bu AJAX istekleri
baz verilerin oumln yuumlklenmesi ya da bir formdaki baz alanlar n do rulama istekleri gibi kuumlccediluumlk
de i iklikler olabilir Bazen de JavaScript ile bir form goumlnderimi veya HTML sayfalar n n bir
parccedilas uumlzerindeki iccedileri i de i tirmek iccedilin kullan l r Oumlrnek bir AJAX ileti im ak ekil
310 da goumlruumllmektedir AJAX uygulamalar ndaki istek biti zamanlar ve bunun normal Web
uygulamalar yla kar la t rmas ekil 311 de goumlruumllebilir Boumlylece ikisinin aras ndaki istek
frekanslar n n fark na var labilinir [41]
ekil 310 AJAX uygulamalar ndaki istek ak
23
ekil 311 Normal Web ile AJAX uygulamalar n n kar la t rmas
AJAX Web uygulamalar yla frekanstaki bu de i im hostlar iccedilin buumlyuumlk etki yapabilir
Boumlylece sunucular ayn kullan c say s yla yuumlksek h zlarda veri al -veri ini yapabilecek duruma
gelir Bu oumlzellikle daha fazla i lem gerektiren normal sayfa yuumlklemelerinde oldukccedila zor bir
i lemdi [41]
34 AJAX Metodolojisi
World Wide Web istemci-sunucu a mimarisine uygun ccedilal r [42] A aktiviteleri iki
tiptir Bunlardan birincisi kullan c taraf ndan tetiklenen HyperText Transfer Protocol (HTTP)
istekler (URL yazarak ya da bir link t klanarak olu turulur) di eri ise sunucu cevaplar d r
HTTP protokoluuml soru ve cevaplar serisinden olu an bir ileti im yoludur [41]
ekil 312 Geleneksel istekcevap (requestresponse) youmlntemi [39]
24
Web taray c dan bir istekte bulunuldu unda HTTP kullan larak cevap goumlnderilir Web
taray c bir istemci internet sayfas n n sunucusu ise HTTP sunucudur AJAX sunucu
cevaplar n HTTP kullanarak goumlnderir Sunucu taraf ndan geri doumlnduumlruumllen farkl tuumlrlerdeki
HTTP istek ve cevaplar n n tan nmas oumlnemlidir AJAX uygulamalar n sunucudan gelecek olan
HTTP cevaplar n iccedileri inin ne oldu u hakk nda karar verebilmesi iccedilin sunucunu
sorgulanmas nda HTTPRequest nesnesine ihtiyaccedil duyar [42]
341 HTTP Requests Nesnesi
HTTP request nesnesinin kullan m format a a daki ekildedir
ltrequest-linegt
ltheadersgt
ltblank linegt
[ltrequest-bodygt]
HTTP request nesnesinin ilk sat r genellikle iste in tipini belirten uumlccedil boumlluumlmden olu ur
Youmlntemin ad gerekli olan sunucu kayna n n yolu HTTP suumlruumlmuumlduumlr Birinci istek sat r (accedil l
sat r ) olmal d r kinci boumlluumlm sunucunun kullanabilece i ba l k sat r eklenebilen bilgilerin
goumlsterildi i boumlluumlmduumlr Son boumlluumlm olan bo sat r ise iste e ba l olarak BODY boumlluumlmuumlnden
ccedila r labilecek ek verilerin takip edilebilece i sat rd r
HTTP iccedilinde ccedile itli istek tuumlrlerinin tan mlanabilece i ccedilok say da youmlntem vard r Fakat
AJAX sadece GET ve POST youmlntemleriyle ilgilenir
3411 GET Youmlntemi
HTTP GET youmlntemi ccedila r lmak istenen URL adresi ard na eklenen anahtar-de er
ccediliftleri (key-value pair) ile ccedilal r Bir Web taray c dan talep edilen bir URL ccedila r s sunucuya
GET youmlnetemi ile bir istek goumlnderir Basitccedile sunucu kayna getirir ve taray c ya cevab
goumlnderir A a da Get youmlnetemi kullan larak F rat uumlniversitesinin Web sitesine yap lan bir ccedila r
sat r goumlsterilmektedir
GET HTTP11 ltrequest-linegt
Host wwwfiratedutr
User-Agent Mozilla50 (Windows U Windows NT 51 en-US rv176) ltheadersgt
Connection Keep-Alive
25
Oumlrnek kod parccedilas nda da goumlruumllduuml uuml uumlzere ilk sat r GET istek sat r d r Di er boumlluumlm ise
istek hakk nda bilgi goumlnderilen ba l k (header) k sm d r Bu boumlluumlme bir parametre ve her sat r
ba na bir de er ccedilifti gelebilir Host ba l iste in hedef sunucu adresini iccedilerir User-Agent
ba l eri ilebilir her iki sunucu ve istemci tarafl scriptler ve taray c lar n temel ta d r Bu
bilgi ile her istekte otomatik olarak goumlnderilir ve kullan lan taray c tan mlan r Connection
ba l ise taray c i lemleri iccedilin kullan lan tipik ba lant ayarlar nda kullan l r
3412 POST Youmlntemi
POST iste i ise sunucuya request body iccedilinde ek bilgi sa lar Genellikle ccedilevrimiccedili
formlarda doldurulmayan sat r bilgileri POST youmlntemi ile sunucuya bildirilir POST istekleri
a a daki yap dad r
POST HTTP11
Host wwwfiratedutr
User-Agent Mozilla50 (Windows U Windows NT 51 en-US rv176)
Content-Type applicationx-www-form-urlencoded
Content-Length 40
Connection Keep-Alive
Yukar daki kod parccedilas nda gri ile vurgulanan sat rlar GET youmlnteminden farkl olan
sat rlar goumlstermektedir lk sat rda kullan lan youmlntemin ad belirtilmi tir Content-Type sat r
request-body nin nas l kodland n goumlsterir Content-Length sat r nda request-body nin kaccedil
byte uzunlu unda oldu u goumlsterilir [37]
342 HTTP Request Nesnesinin Oumlzellikleri ve Youmlntemleri
Request nesnesi be tane temel fonksiyon bulundurmaktad r [43] Bunlar
Querystring URL iccedilersinde bulunan dosya ismi ile birlikte goumlnderilen bilginin veya
form iccedilerisinden GET
youmlntemi ile goumlnderilen bilgilerin al nmas nda kullan l r
Form POST
youmlntemi genellikle form iccedilerisinden bilgi al nmas iccedilin kullan l r
Servervariables Web sunucu request ile ilgili bilgilere (Http ServerVariables)
ula may sa layan bir youmlntemidir
Cookies(Ccedilerezler) Kullan c n n taray c s sunucudan gelen ccedilerezleri kabul ediyor ise
bu bilgilere ula lmas n sa lar
26
ClientCertificate Dijital bir sertifikad r Sunucu ve istemcinin birbirini tan mlamas
iccedilin kullan l r
343 HTTP Response Nesnesi
HTTP response nesnesi HTTP request nesnesine benzer ekilde goumlsterilir
ltstatus-linegt
ltheadersgt
ltblank linegt
[ltresponse-bodygt]
HTTP request nesnesinden tek fark ilk sat rda istek bilgisinin yerine iccedileri in durum
bilgisi vard r Durum sat r istek kayna
hakk nda temin edilen bir durum kodunu bildirir
A a da basit bir HTTP response kod parccedilas
goumlsterilmektedir
HTTP11 200 OK
Date Sat 31 March 2009 165959 GMT
Content-Type texthtmlcharset=ISO-8859-1
Content-Length 122
lthtmlgt
ltheadgt
lttitlegtFirat Universitesilttitlegt
ltheadgt
ltbodygt
lt-- body buraya gelir --gt
ltbodygt
lthtmlgt
Bu oumlrnekte durum sat r nda 200 eklinde bir HTTP durum kodu ve Tamam (OK)
diye bir mesaj verilmektedir Durum sat r her zaman durum kodu ve her hangi bir kar kl
oumlnlemek iccedilin k sa bir mesaj iccedilerir A a da en yayg n kullan lan durum kodlar verilmektedir
200 (OK) Sunucu ba ar l istekler iccedilin bu kodu kullan r
304 (NOT MODIFIED) Sunucu goumlnderilen istekle ilgili verilerin daha i lenmedi ini
istemciye bildirmek iccedilin bu kod kullan l r Taray c lar n oumln bellek mekanizmalar iccedilin en s k
kullan lan koddur
27
401 (UNAUTHORIZED) stemcinin kaynak eri im yetkisi yoktur
anlam nda
kullan l r Genellikle bu taray c n n sunucudan kullan c ad ve ifre gibi bilgi giri i istemesiyle
olu an hatalarda meydana gelir
403 (FORBIDDEN) Yetki elde etmek iccedilin istemci ba ar s z oldu
hata kodudur 401
hatas ndan sonra e er do ru bir kullan c ad ve ifre ile oturum accedil lmamas halinde genelde bu
hata kodu olu ur
404 (NOT FOUND) Kaynak belirtilen yerde bulunamad nda bu hata kodu uumlretilir
Kod parccedilas n n ikinci sat r nda uumlretilen cevab n tarihi ve saati Date ba l nda
sunucuya goumlnderilir Content-Type ve Content-Length ba l klar POST youmlnteminde oldu u gibi
kullan l r BODY cevab basitccedile istemci kayna (iccedilerik duumlz metin ikili veri ya da farkl
tuumlrden
bilgiler olabilir) HTML kayna n iccedilerir [42]
35 AJAX leti im Teknikleri
Web uygulamalar nda ccedilo unlukla kullan c istekleri bir form uumlzerinden yap l r ve
sunucu cevab h zl bir ekilde Java ya da Php gibi bir programlama dili ile olu turulur Normal
Web uygulama modelinde kullan c daima istek uumlretir boumlylece kullan c lar n h zl ca
t klamalar yla olu an yuumlksek h zlardaki sayfa istekleri genellikle rastgele aral klarla olu ur ve
her bir istek h z n n cevab duuml uumlktuumlr [41]
AJAX uygulamalar nda yukarda bahsedilen eksikli in oumlnuumlne geccedilebilmek iccedilin ccedile itli
ileti im teknikleri geli tirilmi tir Bu teknikler
Gizli Ccedilerccedileve (Hidden Frame) Tekni i stemci-sunucu ileti iminde kullan lan gizli
ccedilerccedileve yap s yuumlksekli i ve geni li i 0 pikselden olu an ekranda goumlruumlnmeyen bir
frameset yap s na dayan r
XMLHttp Requests (XHR) AJAX teknolojisinin temel nesnesidir A a daki ba l kta
ayr nt l bir biccedilimde incelenecektir
351 XMLHttp Requests (XHR) Nesnesi
AJAX la do rudan ilgili teknolojilerin ccedilo u asenkron ve XML tekni i ile yak ndan
ilgilidir Ccediluumlnkuuml veri kodlama yollar ve ileti im katmanlar n n tedarik edilmesi bu teknikler ve
kuumltuumlphaneler uumlzerinden hareket eder Ccedilo u durumda bu XMLHttpRequest nesnesi kullan l r
ancak IFrame lerde popuumllerdir Ccedilerezler veya ActiveX Java goumlmuumlluuml ba ka bir alternatif de
kullan labilir [41]
28
XHR Nesnesi Internet Explorer 50 (IE 5) iccedilindeki ActiveX control ile ortaya ccedil km t r
XHR Javascript ile olu turulur [44] Sayfalar n tamamen yeniden yuumlklenmeden sa lanan parccedilal
guumlncelleme oumlzelli i bu nesne sayesinde olmaktad r Arka planda ccedilal an bu sistem sayesinde
asenkron bir ileti im gerccedilekle ir Yenilenme s ras nda taray c yla ba lant kesilmeksizin yeni bir
istek yap labilir
World Wide Web Consortium (W3C) standart organizasyonu standartla amam
XMLHttpRequest nesnenin tuumlm taray c larda kullan labilen youmlntem ve oumlzelliklerinin genel bir
alt kuumlmesini olu turma ccedilal malar suumlrmektedir u anda kullan lan kural kuumlmesi W3C DOM
Level 3 yuumlkleme ve kaydetme oumlzellikleri iccedilerir kinci ccedilal ma tasla
wwww3orgTRXMLHttpRequest adresinde bulunabilir Henuumlz bir standart haline
gelememesinin nedeni taray c dan taray c ya goumlre farkl davran lar goumlstermesidir
Ccedilal ma tasla na goumlre XHR nesnesinin iki goumlrevi vard r Birincisi HTTP yolu ile
sunucuya programlanabilir ba lant kuran betiklerin ccedilal mas na izin verir kinci ifade ekli ise
normal HTTP istekcevap doumlnguumlsuumlnuumln d nda sunucuyla ileti ime izin verir
XMLHttpRequest Microsoft taray c ccedile itlerinde Mozilla Firefox Konqueror Opera
ve Safari gibi neredeyse tuumlm modern taray c lar taraf ndan desteklenmektedir [42]
3511 XMLHttpRequest Nesnesi Olu turma
Nesneler olu turulurken farkl taray c lar iccedilin farkl kurallar vard r Oumlrne in Microsoft
Internet Explorer XMLHttpRequest nesnesini bir ActiveX nesnesi olarak Safari Mozilla
Firefox ve Opera ise sadece normal bir JavaScript nesnesi olarak yorumlar
Windows un guumlncelleme sisteminin temelini olu turan ActiveX Web sayfalar ndaki
aktif nesneleri etkinle tiren oumlzel bir Microsoft teknolojisidir ActiveX i mevcut Web taray c lar
aras nda u anda sadece Microsoft Internet Explorer desteklemektedir Microsoft IE nin di er
suumlruumlmleri iccedilin MSXML geli tirerek daha aktif ve kararl bir yap olu turulmu tur IE nin farkl
suumlruumlmleri iccedilin a a daki bile enler kullan l r [45]
MicrosoftXMLHttp
MSXML2XMLHttp
MSXML2XMLHttp30
MSXML2XMLHttp40
MSXML2XMLHttp50
29
IE 60+ taray c lar iccedilin a a daki tan mlama yap l r
var nesne = new ActiveXObject(Msxml2XMLHTTP)
IE 55 suumlruumlmleri iccedilin ise a a daki tan mlama yap l r
var nesne = new ActiveXObject(MicrosoftXMLHTTP)
Mozilla Firefox Opera Safari gibi taray c lar iccedilin ise a a daki tan mlama yap l r
var nesne = new XMLHttpRequest ()
Ayn anda birden fazla internet taray c s (ie firefox opera vb) ile uyumlu Web
uygulamalar iccedilin ccedilapraz taray c deste i ifadesi kullan lmaktad r Ccedilapraz taray c deste i bir
arayuumlz kodlamas nda kodlay c lar n en ccedilok zaman harcad konudur Guumlnuumlmuumlzde ccedilapraz
taray c deste i bir zorunluluk haline gelmi tir [46] AJAX uygulamalar n n sorunsuz tuumlm
taray c larla uyumlu bir ekilde ccedilal abilmesi iccedilin JavaScript iccedilerisinde try-catch bloklar
yazarak taray c ya goumlre yeni bir nesne olu turulur
function NesneOlustur()
var nesne
try
nesne = new ActiveXObject(Msxml2XMLHTTP) IE 60+ taray c lar iccedilin
catch(e)
try
nesne = new ActiveXObject(MicrosoftXMLHTTP) IE 55 taray c lar iccedilin
catch(e)
try
nesne = new XMLHttpRequest () Firefox Opera 80+ ve Safari taray c lar iccedilin
30
catch(e)
alert( Maalesef taray c n z AJAX desteklemiyor)
return null
return nesne
Yukar da tan mlanan fonksiyon sayesinde dinamik ve ccedilapraz taray c deste ine sahip bir
XHR nesnesi olu turulmu tur
3512 XHR Nesnesinin Oumlzellik ve Youmlntemleri
XMLHttpRequest nesnesine eklenebilen oumlzellikler Tablo 31 de goumlsterilmektedir [42]
Tablo 31 Standart XHR nesnesinin oumlzellikleri
Oumlzellikler Tan mlar
onreadystatechange
Nesnenin readyState oumlzelli i de i ti inde hangi olay tutucunun (event
handler) ccedila r laca n belirler
readyState ste in durumunu raporlayan tamsay de eridir
0 = uninitialized ( stek haz rlanmad Henuumlz open youmlntemi kullan lmad )
1 = loading ( stek haz rland goumlnderiliyor)
2 = loaded ( stek goumlnderildi)
3 = interactive ( stek de erlendiriliyor ve sonuccedil bekleniyor)
4 = completed ( stek tamamland ve sonuccedil geldi)
responseText Form iccedilindeki metin dizesi sunucu taraf ndan veriye doumlnuuml tuumlruumlluumlr
responseXML Sunucu taraf ndan bir belge nesnesi gibi ifade edilen veri geri doumlnduumlruumlluumlr
Status Sunucu taraf ndan geri doumlnduumlruumllen HTTP durum kodudur Oumlrne in 404
kodu Not Found yani istenilen sayfa bulunamad anlam na gelir 200 ise
OK de eri goumlnderir ve i lemin tamamland n belirtir
31
statusText Status oumlzelli inin metin kar l n verir
XMLHttpRequest nesnesinin fonksiyonunu artt ran ek youmlntemler Tablo 32 de
goumlsterilmektedir Bu youmlntemler sayesinde sunucuyla asenkron ileti im kurulur
Tablo 32 Standart XHR nesnesinin fonksiyonlar
[42]
Youmlntemler Tan mlar
abort() Geccedilerli iste i iptal eder
getAllResponseHeaders()
Gelen cevab n ba l k bilgilerini string olarak getirir
getresponseHeader(x) x gibi bir parametre olarak verilen ba l k bilgisini getirir
setRequestHeader(xy) stekle goumlnderilen ba l k bilgisine istenilen etiketi ya da de eri atar
Tablodaki youmlntemler d nda open ve send youmlntemleri de s kccedila kullan lmaktad r
Open youmlnteminin parametreleri a a da goumlsterilmektedir
nesneopen( POST | GET URL asynch username password)
1 Parametre Web sayfas na yap lacak iste in hangi youmlntemle yap laca n belirtir
2 Parametre stek yap lacak Web sayfas n n URL adresi E er GET youmlntemi
kullan l yorsa querystring lerin de erleri URL e birle tirilerek belirtilmelidir
3 Parametre True de eriyle yap lacak iste in e zamans z olaca false de eri ile
e zamanl
olaca belirlenir E er false de eri verilirse i lem bitene kadar taray c di er
kullan c isteklerine cevap veremeyecektir True yap l rsa istek ayr bir i lem olarak ele
al nacakt r
4 ve 5 Parametre Opsiyonel parametreler olup e er istek yap lan Web sayfas ifre ve
kullan c ad istiyorsa bu ekilde goumlnderilebilir [47]
Open ile haz rlanan istek sunucuya goumlnderilir E er open ile accedil lan istek post metodunu
kullan yorsa send metodu parametre olarak goumlnderilecek veriyi ta yabilir
Send metodu parametresiz veya null parametresi ile de kullan labilinir Send metodunda
cevab n gelip gelmedi inin anla labilmesi iccedilin yani e zamanl haberle menin hangi safhada
oldu unun belirlenebilmesi iccedilin Tablo 31 deki oumlzellikler eklenir Send metodunun kullan m
ekli a a da verilmi tir [42 47 48 49]
nesnesend() veya nesnesend(null)
32
3513 XHR Ccedilal ma Mant
ekil 313 bir AJAX uygulamas nda standart etkile imli bir paradigmay
goumlsterir [49]
lem ad mlar a a da s ralanmaktad r
ekil 313 Standart AJAX etkile imi [49]
1 stemci tarafl bir olay AJAX olay (event) tetikler stemcinin a a daki gibi her
hangi bir hareketi onchange olay n ba lat r
ltinput type=text d=eposta name=eposta onblur=validateEposta()gt
2 Oumlrnek bir XHR nesnesi olu turmak iccedilin open() youmlntemi kullan l r ve ccedila r lar iccedilin
ayarlan r URL ayarlar iste e goumlre kullan lacak HTTP youmlntemlerinden GET ya da
POST a goumlre belirlenir A a daki kod oumlrne inde oldu u gibi istek send() youmlntemi
ile bir ccedila r y tetikler
var xmlHttp
function validateEposta()
var eposta= documentgetElementById(eposta)
var url = validateeposta= + escape(epostavalue)
if (windowActiveXObject)
xmlHttp = new ActiveXObject(MicrosoftXMLHTTP)
else if (windowXMLHttpRequest)
xmlHttp = new XMLHttpRequest()
xmlHttpopen(GET url)
xmlHttponreadystatechange = gericagir
33
xmlHttpsend(null)
3 Sunucuya bir istek yap l r Bu bir servlet CGI script PHP ya da ASPNET ile
yaz lm herhangi bir sunucu tarafl (server-side) script olabilir
4 Sunucu herhangi bir veri ambar na eri ebilir
5 stek taray c ya geri doumlnduumlruumlluumlr XHR nesnesi Content-Type ayar textxml dir
XHR nesnesi sadece texthtml tipindeki sonuccedillar i leyebilir Daha karma k
oumlrneklerde cevap JavaScript DOM manipuumllasyon ya da ba ka benzer teknolojiler
iccedilerebilir
responsesetHeader(Cache-Control no-cache)
responsesetHeader(Pragma no-cache)
Taray c lokal sonuccedillar oumln belle inde depolamaz Bunun iccedilin yukar daki kod sat rlar na
ihtiyaccedil duyar
6 Bu oumlrnekte i lemler geri doumlnduumlruumllduuml uumlnde gericagir() ad ndaki XHR fonksiyonu
ayarlan r Bu fonksiyon sunucudan goumlnderilen durum kodlar na bakar ve XHR
nesnesinin readyState oumlzelli ini kontrol eder gericagir() fonksiyonu beklendi i gibi
i lenmi se a a daki gibi bir kod parccedilas goumlruumlluumlr
function gericagir()
if (xmlHttpreadyState == 4)
if (xmlHttpstatus == 200)
stek Ba ar l
Yukar daki anlat mla XHR nesnesinin ccedilal ma mant na de inilmi tir Genellikle
kullan lan standart ccedila r lar oumlrneklenmi tir Bu ccedila r lar yap l rken bir kuumltuumlphaneden yap lan bir
uygulamadan da faydalan labilir Yeni bir ccedilal ma alan olmas na ra men accedil k kaynak
topluluklar nda hat r say l r etkinlikler yap lmaktad r [49]
Uygulamalar olu turulurken genellikle ccedile itli frameworkler ve toolkitlerden faydalan l r
Bunlardan baz lar sadece istemci tarafl ccedilal r baz lar ise sunucu uumlzerinde ccedilal maya ihtiyaccedil
duyar
34
Bu frameworkler suumlrekli de i en ve geli en bir ortam oldu u iccedilin yeni kuumltuumlphaneler ve
suumlruumlmleri takip edilmelidir En yayg n kullan lan kuumltuumlphanelerin ba nda Prototype
scriptaculous Dojo Toolkit Direct Web Remoting (DWR) Taconite ve Rico gelmektedir [49]
36 AJAX Olu turan Bile enler
Asynchronous JavaScript and XML kelimelerinin ba harflerinden olu an AJAX
kavram kullan l zengin Web uygulamalar geli tirebilmek iccedilin pratik bir araccedilt r [50]
AJAX n A parccedilas veri ileti im tekni ini JA parccedilas ileti im youmlntemini X
parccedilas tekni in veri kodlama k sm n olu turur AJAX tam manas yla anlayabilmek iccedilin onu
olu turan bile enlerin her birini de anlamak gerekmektedir [41]
361 E zamanl Olmayan leti im
AJAX tekni inin ccedilekirde ini olu turan XMLHttpRequest nesnesi hem e zamanl hem
de e zamans z olarak ccedilal abilen bir yap uumlzerine kurulmu tur
Ccedilo u AJAX uygulamas XHR nesnesini asenkron olarak kullan r Asenkron istek
taray c ya goumlnderilir ama sunucudan bir cevap gelmesini beklemektense sonraki istek kodlar
i letilmeye devam eder lenen cevap goumlnderildi inde XHR nesnesinin onreadystatechange
oumlzelli i bir fonksiyona ba lan r Bu fonksiyonun i letilmesinden sonra readystate koduyla
iste in durumu test edilir readystate oumlzelli i 4 de erini ald nda sunucuya istek tamamland
ve sonuccedil geldi mesaj gider [51]
A a daki kod parccedilas nda asenkron bir ileti im goumlsterilmektedir [51]
get recipe using Ajax
function getRecipe(evnt)
if (xmlhttp) xmlhttp = aaGetXmlHttpRequest( )
if (xmlhttp) return
var drink = encodeURIComponent(documentgetElementById(drink)value)
var qry = drink= + drink
var url = recipephp + qry
xmlhttpopen(GET url true)
xmlhttponreadystatechange = printRecipe
xmlhttpsend(null)
if (evnt ampamp evntpreventDefault( ))
evntpreventDefault( )
35
return false
E zamans z ileti imde kullan c ayn zaman diliminde birden fazla i lem yapabilir
Oumlrne in Web sayfas nda bir form dolduruldu unda formdaki bilgiler AJAX ile goumlnderilirken
i lemin bitmesini beklemek gerekmemektedir O zaman diliminde Web sayfas n n ba ka bir
yerinde bulunan anket cevapland r labilir Ccediluumlnkuuml e zamanl
ccedilal l rken bloke edilen JavaScript
motoru e zamans z ccedilal rken serbesttir ve ba ka isteklerin goumlnderilmesine muumlsaade eder Yani
ayn zaman dilimi iccedilerisinde birden fazla iste i kabul edebilir [52]
ekil 314 E zamanl olmayan ileti im modeli
ekil 314 te goumlruumllduuml uuml gibi ayn zaman dilimi iccedilerisinde 4 adet istek yap lm t r
Kullan c bu isteklerin tamamlanmas n beklemek zorunda de ildir Bu sebeple istemci ve
sunucu aras ndaki t kla-bekle-t kla-bekle etkile imi ortadan kalkmaktad r
362 E zamanl leti im
Senkron isteklerde taray c cevap iccedilin beklerken kilitlenir
var state = documentforms[0]elements[0]value
var url = ajaxphpstate= + state
xmlhttpopen(GET url false)
xmlhttpsend(null)
alert(xmlhttpgetAllResponseHeaders( ))
Yukar daki kod dizesiyle bir form alan na Web servisi uumlzerindeki HTTP GET istek
yap s kullan larak eri ilir Uumlccediluumlncuuml sat rdaki open youmlnteminin uumlccediluumlncuuml parametresinin false
olmas n n anlam iste in e zamanl (senkron) oldu unu goumlsterir Herhangi bir parametre
almadan null de erli istek goumlnderilir stek goumlnderildikten hemen sonra uyar mesaj kutusu
36
accedil larak cevap ba l yaz l r [51] Kullan lan Web servisi h zl ysa cevap hemen gelir E er
servis yava sa istek bitinceye kadar di er sayfa aktiviteleri gerccedilekle emez [51]
E zamanl
ileti imde ayn zaman diliminde yaln zca bir i lem yap labilinir Web
taray c m zdan uzaktaki Web sunucusuna goumlnderilen istek Web sunucusunda i lenir ve tekrar
geldi i yoldan Web taray c s na geri doumlner Bu i lem belli bir zaman al r E zamanl
ccedilal rken
bu zaman diliminde ba ka bir istek goumlnderilemez [52]
E zamanl
ccedilal ma oumlzellikle Web sunucusu ayn bilgisayarda ise veya yak n olan bir
LAN uumlzerindeyse sa l kl ccedilal abilir Fakat Web sunucusu a r bir yuumlk alt ndaysa veya Web
taray c s Web sunucusuyla yava bir ba lant uumlzerinden etkile ime geccediltiyse koumltuuml bir
performans verecektir Ccediluumlnkuuml Web taray c s iccedilindeki JavaScript motoru goumlnderdi i istek
tamamlan ncaya kadar bloke edilir ve Web taray c s donmu bir ekilde iste in
tamamlanmas n bekler Bu zaman diliminde kullan c goumlnderilen iste i iptal de edemez Bu
yuumlzden Web sayfas ndaki ba ka bir noktaya t klayamaz veya ba ka bir sekmeye geccedili yapamaz
[52]
ekil 315 E zamanl
ileti im modeli
ekil 315 de goumlruumllduuml uuml gibi Web taray c s ndan goumlnderilen 1 nolu istek Web
sunucusuna iletilmektedir Al nan istek i lendikten sonra Web taray c s na geri
goumlnderilmektedir Bu zaman diliminde ba ka bir istek yap lamaz
363 Javascript
1995 y l nda Brendan Eich ad ndaki yaz l m geli tiricisi taraf ndan Netscape Navigator
20 ile birlikte geli tirilen JavaScript dili istemci tarafl
(client-side) bir betik (script) dilidir
Web sayfalar nda dinamik iccedilerik sa lamak ya da kullan c yla ileti im kurmak iccedilin kullan l r [53]
Bu ileti imin sa lanabilmesi iccedilin ortak kurallar duumlnyada uluslararas standart kurumu olan
Avrupa Bilgisayar Uumlreticileri Birli i (European Computer Manufacturers Association-ECMA)
taraf ndan belirlenir Temel kurallar ECMA Script (ECMA-262) ad verilen bir standartta
toplanm t r [54]
37
Javascript in soumlz dizim kurallar C diline benzerlik goumlsterir Derleme i lemi yap lmayan
ayr t rmal (parsed language) bir dildir Nesne youmlnelimli programlama (Object Oriented
Programming - OOP) yetene ine sahiptir [55]
AJAX n JavaScript le olan ili kisi k saca u ekilde oumlzetlenir Herkes taraf ndan
bilinen goumlnder (submit)-cevap(response) doumlnguumlsuumlnuumln oumlnuumlne geccedilerek kullan c lar n Web
sunucusuyla direk etkile im iccedilinde bulunmas n sa lar [56] AJAX goumlnder duuml mesi olmaks z n
sunucu etkile imini sa lar Veriye ihtiyaccedil duyuldu unda Web sayfas iccedilindeki Javascript kodlar
ile bir istek yapar Sunucu cevab tam bir HTML sayfas olarak de il veri olarak geri doumlnduumlruumlr
ve istemciyi cevaplar Cevab n bu ekilde olu turulmas Web uygulamalar n n masauumlstuuml
uygulamalar gibi ccedilal abilmesini sa lar [56]
Sonuccedil olarak Javascript HTML kodlar aras na goumlmuumllebilen kod parccedilalar d r Bunun
yan s ra tek ba na js uzant l JavaScript kodlar da yaz labilir Bu kodlar Internet Explorer
Firefox Opera vb tuumlm taray c lar taraf ndan desteklendi i iccedilin sorunsuz ccedilal r [57]
3631 JavaScript Ccedilal ma Prensibi
JavaScript kodlar
iccedilin herhangi bir metin editoumlruuml kullan labilir ya da Notepad gibi bir
duumlz yaz program yla da kodlar olu turulabilir Taray c lar n yorumlayabilmesi iccedilin ltSCRIPTgt
etiketiyle ba layan ltSCRIPTgt etiket ile biten JavaScript kodlar HTML belgelerinin ccedile itli
yerlerine eklenebilir Eklenen kodlar kullan c lar n HTML belgesindeki bir ba lant ya t klamas
veya klavyede bir tu a basmas yla tetiklenir ya da HTML sayfas kullan c
Browser nda
goumlruumlntuumllendi i anda otomatik olarak ccedilal maya ba lar Otomatik ccedilal an Javascript kodu ise iki
ayr youmlntemle ccedilal t r labilir lk youmlntem HTML kodlar i letilmeden oumlnce (yani Web sayfas
kullan c n n Web Browser nda goumlruumlntuumllenmeden oumlnce) ccedilal mas ikinci youmlntem sayfa
goumlruumlntuumllendikten sonra script kodlar n n ccedilal mas d r [58] Bu youmlntemler a a da s ras yla
accedil klanmaktad r
HEAD boumlluumlmuumlnde
BODY boumlluumlmuumlnde
HEAD Boumlluumlmuumlndeki Scriptler HEAD etiketleri iccediline ltSCRIPTgt ltSCRIPTgt etiketi
kullanarak istenilen JavaScript kodlar
eklenebilir Bu kodlar HTML sayfas n n BODY boumlluumlmuuml
yuumlklenmeden i lenir
38
ltHTMLgt
ltHEADgt
ltSCRIPT LANGUAGE=Javascript12gt
alert(Merhaba Duumlnya) ltSCRIPTgt
ltHEADgt
ltBODYgt
ltBgtDeneme Sayfas na Ho geldinizltBgtltbrgt
ltBODYgt
ltHTMLgt
Yukar daki oumlrnekte kaynak kodlar yukar dan a a ya do ru i letilirken sayfada ilk
goumlruumlntuumllenecek olan alert( ) komutuyla ekrana yaz lan Merhaba Duumlnya
ileti im kutusu
olacakt r Gelen ileti im kutusunda Tamam butonuna bas ld nda body boumlluumlmuumlndeki
kodlar n i lenmesine s ra gelecektir Ekrana Deneme Sayfas na Ho geldiniz mesaj
yazacakt r
BODY Boumlluumlmuumlndeki Scriptler HTML belgesinin BODY boumlluumlmuumlnde JavaScript
kullanmak iccedilin iki yol vard r
Do rudan ccedilal acak kodlar ve kullan c taraf ndan ccedilal acak kodlar
Do rudan ccedilal acak JavaScript kodlar
ltBODYgtltBODYgt etiketleri aras na
ltSCRIPTgt etiketi kullan larak HTML belgesinin istenilen yerine yaz l r Bu cuumlmleler taray c
taraf ndan okundu u anda yerine getirilir
ltHTMLgt
ltHEADgt
kinci Ornek
ltHEADgt
ltBODYgt
ltSCRIPT LANGUAGE=Javascript12gt
alert(Javascript duumlnyas na ho geldiniz)
ltSCRIPTgt
ltBODYgt
ltHTMLgt
Yukar daki oumlrnekte ise kod i leme s ras na uygun olarak i letilerek oumlnce HEAD
etiketleri yorumlanarak ekrana kinci Ornek yaz p hemen ard ndan ileti im kutusu ccedil karak
39
Javascript duumlnyas na ho geldiniz yazacakt r Kullan lan di er bir youmlntem ise kullan c
taraf ndan bir olay n ba lat lmas yla bir JavaScript kodunun ccedilal t r lmas d r
ltHTMLgt
ltHEADgt
ltSCRIPT LANGUAGE=Javascript12gt
genel de i ken tan mlar
var n = Merhaba Duumlnya
bu fonksiyon uyar kutusu accedilar
function merhaba()
alert(n)
ltSCRIPTgt
ltHEADgt
ltBODYgt
ltbrgtltbrgtltbrgtltbrgtltBgtButona T klad n zda Merhaba Duumlnya yazan ileti im kutusu ekrana
gelecektirltBgtltbrgtltbrgt
ltFORMgt
ltINPUT TYPE=SUBMIT NAME=dugme1 VALUE=TIKLAYINIZ
onclick=merhaba()gt
ltFORMgt
ltBODYgt
ltHTMLgt
Yukar daki oumlrnekte ise HEAD etiketleri aras nda de i ken tan mlama ve fonksiyon
olu turma i lemleri yap lm t r BODY komutu i letildikten sonra FORM ouml esiyle olu turulan
duuml me kullan c taraf ndan t kland nda script kodu tetiklenerek fonksiyon ccedila r l r ve mesaj
kutusu ekrana gelir
Ayr ca ltBODYgt iccedilinde URL kullan larak da a a daki oumlrnek kodla goumlsterildi i gibi
JavaScript kodu ccedila r labilmek muumlmkuumlnduumlr
ltA HREF=javascript alert(Ccedil kmak istedi inizden emin misiniz)gtSiteden Ccedil kltAgt
40
3632 Javascript Dilinin Oumlzellikleri
JavaScript dilinin temel soumlz dizim yap s na a a da incelenecektir
36321 De i kenler
Bir de eri iccedileren bellek adlar n ifade ederler De i kenler verileri saklar ve onlara
eri imi sa larlar De i kenlerin bir ad olur bir de de eri olur Program boyunca de i kenin ad
de i mez fakat iccedileri i de i ebilir
Bir JavaScript de i keni belli kurallara uymak zorundad r
a) De i kenler harfle ya da alt ccedilizgi (_) ile ba lamal d r Rakam veya di er
i aretler birinci karakter olarak kullan lamaz fakat de i ken ad n n di er
karakterlerinde kullan labilir
b) Javascript buumlyuumlk kuumlccediluumlk harfe kar duyarl d r (case-sensitive oumlzellli i) Ayn
kelimenin buumlyuumlk harfle yaz lmas ile kuumlccediluumlk harfle yaz lmas farkl isimler
olarak alg lanmas na neden olur
c) De i ken isimleri iccedilinde bo luk olmamal d r
d) Kullan c lar n bilgisayar nda kullan lan dil setinin ayarlar her bir kullan c iccedilin
farkl l k goumlsterebilece i iccedilin ngilizce alfabede bulunmayan Tuumlrkccedile ve di er
dillerdeki high-ASCII karakterleri ( ile uuml Uuml ouml Ouml ccedil ve Ccedil)
kullanmamakta fayda vard r [58]
36322 Kapsam
Bir de i kene bir de er atand nda bu de erin geccedilerli olaca suumlreyi belirlemek iccedilin
kapsam (scope) kavram kullan l r Bir de i kenin kapsam
global ya da lokal olabilir Bir
global de i kene sayfa uumlzerinde herhangi bir JavaScript ten eri ilebilir Lokal de i ken ise
de erin atand yordam iccedilinde geccedilerlidir
A a daki oumlrnekte bir de i kenin kendisine atama yaparak de er verilir
adi= Zeynep
Bir fonksiyon yaz l rken yerel bir de i ken olu turmak iccedilin a a daki oumlrnekte oldu u
gibi var kelimesiyle tan mlama yap l r
41
function toplama()
var sayi=1
toplam=0
deyimler
Yukar daki oumlrnekte sayi adl de i ken toplama fonksiyonu iccedilin yerel toplam de i keni
ise tuumlm sayfa iccedilin genel (global) de i ken olacakt r De i kenlere atanan de erler Tablo
33 deki de i ken tuumlrlerinden herhangi biri olabilir Verinin tuumlruumlne ba l olarak de er uumlzerinde
belirli i lemler yap labilir ya da yap lamaz Oumlrne in iki string de er uumlzerinde aritmetik i lem
yap lamaz
Tablo 33 De i ken tuumlrleri
De i ken Tuumlrleri
Numbers Tam ve ondal kl
say lar iccedilerir Pozitif 0 ya da negatif olabilir
Booleans Mant ksal veri tuumlruumlduumlr True (Do ru) ya da False (Yanl ) de erini al r Sorgulama
sonunda geriye True iccedilin 1 False iccedilin 0 de erini doumlnduumlruumlr
Strings Karakter bilgi iccedileren bir de i kendir T rnak iccedilinde yaz lan ifadeler de i kene
atan r
Objects Taray c ya ait nesnelerdir nesne= new Object() eklinde kodlamada kullan labilir
Null Oumlzel bir de i kendir ccedili bo ya da de ersiz olarak ifade edilir
Undefined
Bir de i ken yarat ld ktan sonra iccedilerdi i tan ms z de eri simgeler
36323 leccediller (Operators)
leccediller iki ya da daha fazla de er uumlzerinde i lem yap lmas n sa lar De erler ya da
de i kenler aras nda toplama ccedil karma mod gibi i lemler yap labilir
Tablo 34 leccediller ve goumlrevleri
leccediller ve Goumlrevleri
+ Toplama
- Ccedil karma
Ccedilarpma
Boumllme
42
MOD Boumllmede kalan verir (10 3 i lemi 1 de erini verir )
++
Tek art r m De er 1 art r l r
-- Tekli azaltma
- Negatifle tirme lenenin negatif de erini doumlnduumlruumlr
36324 kili leccediller
kili i leccediller birden ccedilok kar la t rma i lemini tek bir ko ul ifadesi olarak birle tirirler
Oumlrne in
sayi =1 AND dongu gt 1000 ise gibi
Tablo 35 kili i leccediller
kili i leccediller
ampamp
Mant ksal Ve And ki ifade de do ruysa True de erini doumlnduumlruumlr
|| Mant ksal Veya Or fadelerden birisi do ruysa True de erini doumlnduumlruumlr
Mant ksal De il Not Negatifle tirme i lemi do ruysa True de erini doumlnduumlruumlr
36325 Atama Deyimi
Atama deyimi (=) bir de i kene sa dan bir de erin atanmas n sa lar De i kenlere
tuumlrlerine ve tan mlamalar na uygun olan herhangi bir de er atanabilir
Oumlrnek sayi=100
Oumlrnek toplam=(fiyat+kdv)
Sa daki de eri soldaki de i kene atayan += -= = = ifadeleri de kullan labilir
Oumlrne in toplam+=fiyat (di er bir de i kenden gelen fiyat de erini toplam de erine
ekler ve sonucu toplam de i kenine atar)
36326 fadeler
De i kenlerin i leccedillerin ve deyimlerin bir araya gelerek olu turduklar yap lar
ifade
eder
Oumlrne in toplam = sayi 1 sayi2 formuumlluuml bir ifadedir
43
36327 Deyimler
Deyimler belli bir komut ya da soumlz dizimi bile enlerine verilen add r Oumlrne in bir komut
ya da bir IF yap s deyim olabilir
Oumlrnek if (basari_notugt50) deyimler else deyimler
36328 Nesneler
Kendi de erleri oumlzellikleri ve i lemleri olan bile enlere nesne (object) denir JavaScript
dilinde ccedilok say da yerle ik nesne vard r
JavaScript buumltuumln Web sayfas n ve taray c y nesneler toplulu u olarak goumlruumlr Bu
sisteme DOM (Document Object Model) denir [59]
JavaScript kullanarak dinamik ve etkile imli goumlruumlnuumlmler elde edilir DOM a JavaScript
ve JScript gibi ECMAScript olan kullan c taraf ndaki bir scripting dili yard m yla eri ilebilinir
DOM la veri al -veri i yeni bir sayfada kullan c ekran na yans t lmaz Parccedilal guumlncelleme
olay n n buumlyuumlk k sm bu modelle gerccedilekle tirilir
Ba lang ccedilta Javascript geli tiricileri kullan c lar na daha zengin uygulama deneyimleri
ya atabilmek ve sayfalardaki etiketlerde dinamik de i imler sa lanabilmesi iccedilin ccedilaba sarf
ediyordu Bu durum sayfalar n bir nesne gibi i lenebilmesini gerekli k ld Boumlylece DOM ortaya
ccedil km t r lk oumlnceleri Javascript ve DOM s k bir ili ki iccedilindeydi sonuccedilta ise iccedilerik ayr larak
geli tirilmi tir DOM sayfalar n JavaScript veya VBScript gibi bir betik dili ile de i tirilebilir
sayfalar n tamamen nesne youmlnelimli goumlsterimidir [60]
DOM ekil 316 da goumlsterilen JavaScript iccedilindeki buumltuumln nesneleri ifade etmektedir
Hiyerar ik olarak ccedilok say da nesneyi iccedilerir NetScape ve Microsoft taray c lar iccedilin DOM
nesneleri farkl oldu u iccedilin yaz lan kodlar uyumlu de ildir [59]
44
ekil 316 Javascript nesneleri [59]
Window nesnesi taray c n n kendisidir Window nesnesi birccedilok youmlnteme oumlzelli e ve
olaya sahiptir Form nesnesi DOM nesnesinin ana nesnesidir Form uumlzerindeki alanlar bu nesne
arac l yla kullan l r [59]
Verilerin yuumlklenmesinde kullan lan XML ile uumlretilen Javascript istemci kodlar ve veri
sunucu uumlzerindeki kodlar aras ndan ayr larak goumlsterilir Bu istemcinin etkilenmeksizin sunucu
uumlzerinde de i iklik yap lmas n sa lar Benzer API iccedileren di er istemciler iccedilin bilgileri accedil a
ccedil kar r [41]
363281 DOM (Document Object Model)
Document Object Model (DOM) XML ve HTMLXHTML iccedilin World Wide Web
Consortium (W3C) taraf ndan geli tirilen bir belgenin a accedil yap s n (tree-based) temsil eden bir
standartt r DOM bir tak m nesneler iccedilin belgenin yap s n temsil etmesinin yan s ra bu
nesnelere eri im iccedilin youmlntemler de sa lar [44]
DOM bir belgenin stilini kaynak dosyas n yap s n ve iccedileri ini guumlnceller ve program
ile scriptlerin belgeye eri imine izin veren bir platformdur Ayn zamanda bir API (application
programming interface) dir [62]
Nesneleri iccedileren belgeler iccedilin standart model olarak DOM uumlccedil boumlluumlme ayr lm t r
Core DOM
XML
HTMLXML DOM - XML
45
HTML DOM
HTML
DOM da her internet sayfas bir belge ve bu belge iccedilerisinde bulunan tuumlm elemanlar ise
nesne olarak kabul edilir DOM sayfa uumlzerindeki her bir XML eleman
iccedilin nesnelerin a accedil
yap s n n resmini goumlrselle tirmenin kolay bir yoludur A a daki oumlrnek basit bir XML
belgesinin doumlrt duuml uumlmden olu an DOM u goumlstermektedir Koumlk Dokuumlman duuml uumlmuuml koumlk etiketi
iccedilin bir Element duuml uumlmuuml alt etiketler iccedilin bir Element duuml uumlmuuml ve alt etiketin sahip olaca
herhangi bir bilgi girilebilen bir metin duuml uumlmuumlduumlr [41]
ltrootTaggt
ltchildTaggtSome TextltchildTaggt
ltrootTaggt
Bir a accedil yap s n n goumlrsel bir temsili a a da goumlsterilmektedir
Dokuumlman
Element (koumlkEtiket)
Element (altEtiket)
Metin
A a daki kod kuumlmesinin [63] DOM goumlsterimi ekil 317 deki gibidir
ltTABLE border=1gt
ltTBODYgt
ltTRgt
ltTDgtOumlgr NoltTDgt
ltTDgtAd Soyad ltTDgt
ltTRgt
ltTRgt
ltTDgt900ltTDgt
ltTDgtZeynep OumlZERltTDgt
ltTRgt
ltTBODYgt
ltTABLEgt
46
ekil 317 DOM a accedil yap s
[63]
Geccedilerli her HTML ve XML belgesindeki element nitelik metin duuml uumlmuuml (text node)
hatta bo luk ve sekme karakterleri(whitespace) bile W3C DOM taraf ndan duuml uumlm (node) olarak
kabul edilir ekil 317 deki gibi belgedeki duuml uumlmlerin kullan m hiyerar isine goumlre
s ralanmas na da duuml uumlm a ac (node tree) denir Belge nesnesi yeni duuml uumlmler olu turmak bu
duuml uumlmlerin oumlzeliklerini de i tirmek ve youmlnetmek iccedilin ccedilok say da youmlnteme sahiptir
363282 DOM Elementinin S k Kullan lan Genel Oumlzellikleri ve Youmlntemleri
A a da duuml uumlmlere eri mek ve youmlnetmek iccedilin s k kullan lan JavaScript youmlntemleri
vard r [64]
getElementById()
Soumlzdizimi
documentgetElementById(herhangiBirID)
Oumlrnek kullan m
element = documentgetElementById(kimlik)
getElementById() youmlntemi id oumlzelli i belirtilen elementlerin referans n n al nmas n
sa lar Ayn id kimli ine sahip ba ka bir element olmas durumunda sadece ilk elementi verir
Di erlerine eri im sa lamaz kimlik
dokuumlman uumlzerinde elementi bulmak iccedilin kullan lacak
e siz bir oumlzelli ini ifade eder
47
getElementsByTagName()
Soumlzdizimi
documentgetElementsByTagName(herhangiBirHTMLElementi)
Oumlrnek kullan m
documentgetElementsByTagName(etiketAdi)
Dokuumlman uumlzerinde belirtilen ayn etiket ismine ait buumltuumln elementlerin bir listesini verir
documentgetElementById(herhangiBirID)documentgetElementsByTagName()
parametresiyle id niteli inin de eri herhangiBirID olan elementin duuml uumlmleri
iccedilindeki tuumlm elementler listelenir
getElementsByName()
Soumlzdizimi
documentgetElementsByName(herhangiBirIsim)
Oumlrnek Kullan m
documentgetElementsByName(baslik)
Bu youmlntem dokuumlman uumlzerinde belirtilen name oumlzelli ine sahip elementlerin bir listesini
verir Oumlrnek kullan mda name niteli inin de eri baslik olan elementleri verir
firstChild
Bu oumlzellik elementin ilk alt elementini verir
Soumlzdizimi
documentgetElementById(herhangiBirID)firstChild
lastChild
Bu oumlzellik elementin son alt eleman n verir
Soumlzdizimi
documentgetElemementById( herhangiBirID )lastChild
48
nodeValue
nodeValue oumlzelli i text comment ve CDATA duuml uumlmlerinin iccedilerdikleri de eri verir
Soumlzdizimi
m= documentgetElemementById( herhangiBirID )lastChildnodeValue
m e er varsa duuml uumlmuumln iccedilerdi i de erin string olarak de eridir document nesnesinin
ve elementlerin nodeValue de eri null doumlner
removeAttribute()
removeAttribute fonksiyonu elementin belirtilen bir oumlzelli inin silinmesini sa lar
Soumlzdizimi
elementremoveAttribute(ozellik)
ozellik silinecek oumlzelli in ad d r
nodeName
Duuml uumlm bilgilerini almak iccedilin kullan l r Geccedilerli duuml uumlmuumln ad n doumlnduumlruumlr
Geccedilerli duuml uumlm element ise elementin tipini doumlnduumlruumlr Nitelik ise nitelik ad n doumlnduumlruumlr
nodeType
Geccedilerli duuml uumlmuumln tuumlruumlnuuml say sal olarak doumlnduumlruumlr
nextSibling
Duuml uumlmler aras gezinti yap labilmesiyi sa lar Geccedilerli duuml uumlmden bir sonrakine referans verir
previousSibling
Geccedilerli duuml uumlmuumln bir oumlncekine referans verir
setAttributeNode
Bir duuml uumlme nitelik atamada kullan l r
Soumlzdizimi
elementsetAttributeNode(nitelik)
49
36329 Fonksiyonlar
Fonksiyonlar birden fazla ad mdan olu an i lemlerin kolayca tek seferde yap lmas n
sa lar Fonksiyonlar bir dizi i lemi yerine getirir ve bir sonuccedil doumlnduumlruumlr Ayr ca fonksiyonlar
parametre olarak kabul edilen birccedilok de er al rlar
Fonksiyonlar n HTML dosyas n n HEAD boumlluumlmuumlne koyulmas yani gerekli buumltuumln
fonksiyonlar alt alta HTML in HEAD boumlluumlmuumlnde yer alacak bir SCRIPT etiketi iccedilinde
olu turulmas taray c n n Javascript yorumlay c s bak m ndan h z kazanmas n sa lar Sonra
ihtiyaccedil duyuldu unda yeni bir SCRIPT etiketi koyarak bu fonksiyon goumlreve ccedila r l r [58]
function fonksiyonun_ad (arguumlman1 arguumlman2 arguumlmanN)
i lemler
deyim 1
deyim 2
deyim N
363210 Accedil klamalar
Programlar n anla l r olmas n sa layan accedil klama sat rlar JavaScriptte bu lt- ve --gt
i aretlerinin aras nda ifade edilir [58]
lt- Accedil klama sat r d r --gt
37 Basit Bir AJAX Oumlrne i
Ekran ccedil kt s ekil 318 de goumlruumllen basit bir oumlrnek uumlzerinde i leyi anlat lacakt r
ekil 318 AJAX oumlrne i
50
indexhtml dosyas accedil ld nda Metnin AJAX la getirilmesi iccedilin tiklayiniz
ba lant s na t kland nda taray c kullan lan AJAX youmlntem sayesinde tuumlm sayfa yeniden
yuumlklenmeden iccedileri i sunucu da depolanan sonuchtm dosyas ndan alarak ekrana yans t r
Yukar daki indexhtml dosyas n n kodlar a a da goumlsterilmektedir
lthtmlgt
ltheadgt
lttitlegtAJAXla oumlrne ilttitlegt
ltscript language=JavaScript type=textjavascriptgt
function getXmlHttpRequestObject()
if (windowXMLHttpRequest)
return new XMLHttpRequest() IE olmayan
else if(windowActiveXObject)
return new ActiveXObject(MicrosoftXMLHTTP) IE
else
alert(Maalesef taray c n z XmlHttpRequest nesnesini desteklememektedir AJAX
destekleyen bir taray c da tekrar deneyiniz)
var receiveReq = getXmlHttpRequestObject()
function cevap()
if (receiveReqreadyState == 4 || receiveReqreadyState == 0)
receiveReqopen(GET sonuchtml true)
receiveReqonreadystatechange = handlecevap
receiveReqsend(null)
function handlecevap()
if (receiveReqreadyState == 4)
documentgetElementById(span_result)innerHTML = receiveReqresponseText
ltscriptgt
ltheadgt
lta href=javascriptcevap()gtMetnin AJAXla getirilmesi icin tiklayinizltagtltbr gt
51
ltspan id=span_resultgtltspangt
lthtmlgt
Oumlrnekte ilk olarak tuumlm taray c larda sorunsuz ccedilal abilmesi iccedilin ccedilapraz taray c deste i
sa lanm t r receiveReq de i keni getXmlHttpRequestObject() ile tan mlanm t r Daha
sonra cevap fonksiyonu olu turulmu tur Sunucudan gelen cevab n durumu ifelse yap s yla
kontrol edilmi tir Sunucudan gelen gelen cevaba goumlre doumlnduumlruumllen de erlerle sonuchtml sayfas
ccedila r larak uygulama sonlan r
AJAX youmlntemi ile ccedilekilen bilginin tutuldu u sonuchtml dosyas nda ise sadece ekil
319 de yazan veri bulunmaktad r
ekil 319 sonuchtml sayfas n n ekran ccedil kt s
38 XML
XML (eXtensible Markup Language) internet te teknik standartlar ve youmlnetim
konusunda yetkili organ olan W3C (World Wide Web Consortium) organizasyonu taraf ndan
geli tirilmi tir XML programc lar n kendi sistemlerini olu turabilecekleri kendi etiketlerini
tan mlayarak ccedilok daha rahat ve etkin programlama yapabilecekleri ve bu belirlenen etiketleri
kendi yap lar iccedilerisinde standartla t rabilece i esnek geli tirilebilir ve kolay uygulanabilir bir
meta-dil (bir dili tan mlamak iccedilin kullan lan soumlzcuumlkler dilbilim dili) dir [65]
XML ile ilgili ilk ve en oumlnemli nokta ba l ba na bir dil olmamas d r Daha ziyade
di er dilleri ya da bir dili olu turan soumlzcuumlkleri olu turmak (vocabularies) iccedilin kullan lan bir
meta-dildir XML bu soumlzluumlklerin olu turulmas iccedilin gerekli kurallar tan mlar [66]
XML bu kural yap s na uygun olarak etiketleri iccedilerik bilgisiyle tan mlayabilir XML nin
esnek yap s sayesinde a a daki oumlrnekte oldu u gibi kullan lan dilde ccedilok farkl tiplerde etiket
olu turulmas na muumlsaittir XML soumlzluuml uumlndeki tek k s tlamas etiketlerin iyi biccedilimlendirilmi
olmas gerekti idir [66]
52
ltnotgt
ltkimegt Melek lt kimegt
ltkimdengt Zeynep lt kimdengt
ltbaslikgt Hatirlatici ltbaslikgt
ltbodygt Bana proje teslim tarihini hatirlat lt bodygt
ltnotgt
Yukar daki not oumlrne i kendi kendini accedil klay c bir oumlrnektir Goumlnderici ve al c bilgisinin
yan nda mesaj metni ve ba l da mevcuttur XML nin HTML de oldu u gibi oumlnceden
tan mlanm etiketleri yoktur XML yazar kendi etiketlerini ve kendi belge yap s n oumlrnekteki
gibi olu turabilir
Her dil farkl d r ama hepsinde iccedileri i i aretlemek iccedilin etiketler kullan l r Etiket
adlar n n seccedilimi ve yap s esnektir ve genellikle gruplarda bilginin payla labilmesi iccedilin standart
XML soumlzluumlkleri kararla t r lm t r [66]
XML 1998 y l nda SGML alt yap s uumlzerine kurulmu tur SGML (Standard
Generalized Markup Language) bir etkinle tirme teknolojisidir HTML gibi uygulamalarda
kullan l r Geni letilebilir aretleme Dili (Extensible Markup Language-XML) nin oldukccedila
basit bir diyalektidir [66]
XML SGML ve HTML sistemlerinin her ikisinin de uygulanmas n kolayla t rmak iccedilin
tasarlanm t r XML ayn zamanda son derece popuumller bir veri format d r Ccediluumlnkuuml ccedilo u
programlama dili taraf ndan desteklenir Bu dil sayesinde geli iguumlzel veri tipleri tan mlamak
kolayd r Ccedilo u kez XML Uzak Yordam Ccedila r s - Remote Procedure Call (RPC) mekanizmas
sayesinde istemci-sunucu ileti imini kolayla t rmak iccedilin kullan lm t r [66] XML elde edilmek
istenen alan bilgileri konfiguumlrasyon parametreleri teknik ccedilizim hesap ccedilizelgesi (spreadsheet)
gibi ouml eleri iccedileren dosyalar n yaz l m nda kullan l r [67]
XML verileri goumlruumlntuumllemek iccedilin de il verilerin platformdan ba ms z bir ekilde
depolanmas ve transferi iccedilin tasarlanm t r XML tuumlm bilgiler duumlz metin format nda saklar Bu
da tuumlm platformlarda sorunsuz bir ekilde kullan labilir olmas n sa lar Bu dosyalar diskte duumlz
metin olarak tutman n bir avantaj
da olu turuldu u programda accedil lmas gerekli de ildir Bu
yaz dosyalar programc n n istedi i bir yaz i leme program nda accedil l p duumlzenlenebilir Ayr ca
XML veriyi duumlz metin (plain text) format nda saklamas ndan dolay veriyi payla t rma
konusunda hem yaz l m hem de donan mdan ba ms z hareket edebilme imkacircn n sunmu tur
53
381 Oumlrnek XML Belgesi Olu turma
XML belgelerinin yap s n n daha iyi kavranabilmesi iccedilin basit bir oumlrnekten yola ccedil k l r
Bir dizi karakter mant ksal bir yap ya ccedilevrilmelidir Bu ccedilevrim a accedil yap s kullan larak
yap labilir Oumlrnek belgede koumlk dizin ya da element ve alt boumlluumlmler iccedilin de dallar belirlenir
denemexml olarak kaydedilecek belgenin iccedileri inde sisteme kay tl kullan c lar n bilgileri
vard r
Haz rlanan denemexml belgesinin a accedil yap s a a daki gibi olu turulmu tur Koumlk
element ve alt dallar ve alt dala ait nitelik belirtilmi tir
ekil 320 denemexml dosyas n n a accedil yap s
A accedil yap s olu turulduktan sonra kodlama k sm na geccedililir XML de kod yaz m n
kolayla t rmak iccedilin Altova XMLSpy MoreMotion XML Editor XMLwriter XML Editor 26
gibi ccedile itli editoumlr programlar kullan labilir Bu tez ccedilal mas nda oldukccedila i levsel oumlzelliklere
sahip Altova XMLSpy yaz l m kullan lm t r Editoumlr kullanarak dokuumlmandaki metinlerin
yap sal elemanlar yaz oumlzellikleri (renk stil biccedilim vb ) belirginle tirilir mlerin otomatik
soyadi
adi
soyadi
eposta
adi
soyadi
eposta
Kullanicilar Kullanici Kullanici_id= 2
Kullanici Kullanici_id= 3
Kullanici Kullanici_id= 1
adi
eposta
54
olarak kapanmas sa lanabilir Olu turulan yap lar n do rulu u ve geccedilerlili i kolayca kontrol
edilebilir Altova XMLSpy editoumlruumlyle olu turulan belge a a daki kodlardan olu maktad r
ltxml version=10 encoding=UTF-8gt lt--Bu XML belgesi kullan c bilgilerini tan mlar --gt ltKullanicilargt
ltKullanici kullanici_id=1gt
ltadigtZeynepltadigt
ltsoyadigtOZERltsoyadigt
ltepostagtz_ozerhotmailcomltepostagt
ltKullanicigt
ltKullanici kullanici_id=2gt
ltadigtYagmurltadigt
ltsoyadigtOZERltsoyadigt
ltepostagty_ozeryahoocomltepostagt
ltKullanicigt
ltKullanici kullanici_id=3gt
ltadigtFatihltadigt
ltsoyadigtAYDOGMUSltsoyadigt
ltepostagtf_aydogmusgmailcomltepostagt
ltKullanicigt ltKullanicilargt
Haz rlanan dokuumlman iyi biccedilimlendirilmi (well-formed) bir yap ya sahiptir ekil 321
de Altova XMLSpy editoumlruumlyle olu turulan belgenin ekran goumlruumlntuumlsuumlnde denemexml
goumlruumllmektedir
55
ekil 321 XML belgesi
382 XML Dokuumlman n n Yap s
XML ile veriler yap bak m ndan moduumllerlik kazanmaktad r Bu sayede verilerin iccedilerik
yap ve sunum k s mlar ayr moduumlller halinde farkl XML dokuumlmanlar nda tutulmaktad r
Her XML belgesini olu turan moduumlller iki boumlluumlmde incelenecektir Bu moduumlller giri
boumlluumlmuuml (prolog) ve belge ya da koumlk duuml uumlm (document node) olarak ayr lm t r
Prolog XML belgesinin ba nda goumlruumlntuumllenir ve belge hakk nda iccedilerikle ilgili bilgiler
iccedilerir XML bildirimleri i lem accedil klamalar yorumlar ve DTD (Document Type
Definition)XML ema iccedilerebilir
yi duumlzenlenmi bir XML dokuumlman tek ve temel bir koumlk duuml uumlm uumlzerine kurulur
Elementler nitelikler metin CDATA (character data) varl k ve yorumlar iste e ba l olarak
eklenebilir
56
ekil 322 Oumlrnek bir XML dokuumlman yap s
[ 66]
3821 Giri Boumlluumlmuuml (Prolog)
Bu boumlluumlmde XML belgesinde bulunabilecek oumln tan mlama konular incelenecektir
3822 XML Bildirimleri
XML dokuumlmanlar genellikle a a daki bildirim sat r yla ba lar Bildirim sat r ndan
oumlnce ba ka komut sat r yaz lmamal d r Tersi bir durumda XML dokuumlman iccedileri i i leme
koyarken do ru bir ekilde okuyamaz ve hata mesaj uumlretir
ltxml version= 10 encoding= UTF-8
gt
Bu i lem sat r nda ba lang ccedil etiketi ve biti etiketi yoktur XML bildiriminin yap ld
ltxml ve gt i lem komut etiketleridir lem komutlar oumlrnekteki gibi biti ik yaz l r Bu oumlrnek
sat rda 2 tane oumlznitelik bar n r Birinci oumlznitelik xml dokuumlman n n hangi suumlruumlm oldu unu bildirir
ve yaz lmas zorunludur En yayg n kullan lan ve en guumlncel suumlruumlmuuml olan 10 yerine ba ka bir
57
de er yaz ld nda dosya i lenmeyebilir kinci oumlznitelik olan encoding belge i lenirken
kullan lacak dil seccediliminin belirtildi i aland r Oumlrnekteki kod birccedilok dili destekleyen UTF-8
karakter dil setini tan mlar
38221 lem Accedil klamalar (Processing Instructions)
Giri boumlluumlmuumlnde di er uygulamalara XML dokuumlman hakk nda bilgi veren i lem
accedil klamalar (Processing Instructions- PIs) dacirchil edilebilir lem accedil klamalar lt karakterleriyle
ba lar ve gt karakterleriyle biter PIs XML belgesinin di er boumlluumlmlerinde goumlruumllebilmesine
ra men genellikle giri boumlluumlmuumlnde goumlruumlluumlr
XML bildirimleri ltxml karakter grubuyla ba lar lem accedil klamalar yla benzerlik
goumlsterir Fakat aralar ndaki fark XML bildirimleri ltxml karakter grubuyla ba larken i lem
accedil klamalar ise lt karakterleriyle ba lar
Bir XSL stylesheet i referans goumlsteren PI goumlsterimi
ltxml-stylesheet type= textxsl
href= stylesheetxsl gt
PI nin ilk ouml esi bir isimdir PI hedefi olarak adland r l r Yukar da goumlsterilen PI xml-
stylesheet ismine sahiptir simler ltxml karakter grubundan - semboluumlyle ayr l r PI ler type=
textxsl href= stylesheetxsl metin karakter dizesine sahiptir Oumlrnek kod sat r nda stylesheet
ad nda metin iccedilerikli bir XSL dosyas referans goumlsterilmi tir
38222 Yorumlar (Comments)
Yorum sat rlar XML belgesinin hemen hemen her yerinde iste e ba l olarak
kullan labilir XML yorum sat rlar XHTML belgelerindeki yap yla ayn d r Ayn karakterlerle
ba larlar
lt--Bu alana yorumlar yaz labilir --gt
Yorum sat rlar XML belgesi i lenirken etkilenmezler Bu sat rlar programc lar n ya da
kullan c lar n program kodlar n kolayca anlayabilmeleri iccedilin yaz l r [68]
58
38223 Dokuumlman Tipi Tan mlama-The Document Type Definition (DTD) ve XML
emalar
XML belgesinin standartla t r lmas iccedilin kullan lan bir yap d r XML belgesinin hangi
elementleri iccedilerece ini ve bu elementlerin oumlzniteliklerinin ne olaca n elementlerin neleri
ta yaca n dokuumlman iccedilerisindeki tekrar eklini ve say s n kurallarla belirtir [69]
382231 DTD kullanman n Avantajlar
Veri depolama XML nin temel amaccedillar ndan birisidir Oumlrne in yaz l m geli tirecek bir
proje ekibi ccedilal rken ortak bir DTD nin olu turulmas yla geli iguumlzel yeni etiketler eklenmesinin
etiketlerle depolanan bilginin hatal s ralanmas n n etiketlere hatal nitelikler eklenmesinin
oumlnuumlne geccedililmi olur Ayr ca i lem yapan program n da bu belgeleri tan mas ve i lemesi kesinlik
kazan r [70] Belge i lenirken geccedilerlilik derleyicileri (validating parsers) XML belgesinin DTD
geccedilerlili i sa lanana kadar tekrar tekrar kontrol eder E er geccedilerlilik kontroluumlnden geccedilemezse
derleyici hata mesaj verir [66]
ccedileri in bir standarda oturtulmas yla AJAX ve dinamik DOM manipuumllasyonunda
istenmeyen gereksiz kod parccedilalar n n ve ccedilal mayan i aretlemelerin oumlnuumlne geccedililir Ayr ca daha
h zl HTML derleyicileri ve daha iyi ccedilapraz taray c performans iccedilin geli mi arama motoru
optimizasyonu sa lan r Bir DOCTYPE belirlemenin en oumlnemli etkisi HTML iccedileri inin nas l
ayr t r ld n ve yorumland n n Web taray c ya goumlsterilmesi gerekti ini belirtmesidir Ayr ca
DOCTYPE ba l olarak CSS yorumlanabilir ve HTML farkl ekilde goumlruumlntuumllenir [71]
Hangi i lem moduna dacirchil oldu u tespit edilerek Web taray c lar
DOCTYPE
doumlnuuml uumlmuumlnuuml destekler Web taray c lar bir Web sayfas n n nas l HTML ve CSS iccedileri ini
yorumlad n
ve de erlendirdi ini sayfalar n DOCTYPE bildirimlerine dayanarak de i tirir
[71]
382232 DTD tan mlama
DTD olu umu iki yolla yap labilir Birinci yol belge iccedilerisinde a a daki oumlrnekte oldu u
ilk standart sat rdan sonra ltDOCTYPE ile ba layan ve gt i areti ile biten aral kla DTD tan m
yap lmas d r DTD alan nda bir kok_element_adi etiketi tan mlanm t r [ ]
i aretleri aras nda
iccedilsel olarak tan mlanm t r Bu etiketin iccedilerisine element_icerigi olarak alt alanlar belirtilir
XML dokuumlman n n iccedilerik k sm na tan mlanan kok_element_adi etiketleri aras na istenilen metin
giri i yap l r
59
ltxml version= 10 encoding= UTF-8 gt
ltDOCTYPE kok_element_adi
[ltELEMENT kok_element_adi (element_icerigi) gt ]
gt
lt kok_element_adi gt Bu basit bir DTDli XML ornegidir lt kok_element_adi gt
kinci yol ise Web sayfalar n n iccedileri i bir geccedilerlilik servisi kullan larak onaylanmas d r
Do rulu u W3C1 taraf ndan garantiye al nan bir DTD ile geccedilerlilik kontroluuml sa lanabilir [71]
HTML XHTML SMIL MathMLvb Web dokuumlmanlar n n httpvalidatorw3org adresinden
URI adresi dosyalar upload edilerek ya da direk i aretleme giri i yap larak geccedilerlilik kontroluuml
yap labilir [72]
DTD tan m a a daki oumlrnekteki gibi HTML belgesine harici olarak
httpwwww3orgTRxhtml1DTDxhtml1-strictdtd adresindeki haz r kural yap s
dacirchil edilir
Kural ak bu adresten sa lan r [72] A a daki kod sat r nda XML veri tan mlamas na goumlre
ltcodegtltcodegt etiketleri olu turulmu tur
ltDOCTYPE html
PUBLIC -W3CDTD XHTML 10 StrictEN
httpwwww3orgTRxhtml1DTDxhtml1-strictdtdgt
lthtmlgt
ltbodygt
ltpgt Bu alana serbest metin giri i yap labilir
ltcodegt
Bu alanda ise XML veri tan mlamas DTD tan m na goumlre yap lm t r
ltcodegt
ltpgt
ltbodygt
lthtmlgt
Programc lar n en ccedilok ihtiyaccedil duyabilece i 6 tane oumlncelikli DOCTYPE belgelerinin
listesi a a da verilmi tir [72]
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401EN
httpwwww3orgTRhtml4strictdtdgt
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN
httpwwww3orgTRhtml4loosedtdgt
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 FramesetEN
60
httpwwww3orgTRhtml4framesetdtdgt
ltDOCTYPE html PUBLIC -W3CDTD XHTML 10 StrictEN
httpwwww3orgTRxhtml1DTDxhtml1-strictdtdgt
ltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalEN
httpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgt
ltDOCTYPE html PUBLIC -W3CDTD XHTML 10 FramesetEN
httpwwww3orgTRxhtml1DTDxhtml1-framesetdtdgt
382233 DTD ccedilinde Element Tipi Bildirimleri
Elementler hakk nda bilgi veren kodlard r Kullan lan yap ELEMENT ile ba lar
element ad ve element iccedileri inin eklenmesiyle sonlan r
ltELEMENT elementName (elementContents)gt
Element iccedileri i a a daki gibi bo olarak ta tan mlanabilir
ltELEMENT elementName (EMPTY)gt
Element iccedileri inde alt dallar-duuml uumlmler olu turulacaksa a a daki oumlrnekte oldu u gibi
DVD koumlk duuml uumlmuumlne le ayr larak s ras yla baslik format tarz element isimleri yaz l r
Belirlenen s ralama XML belgesi iccedilinde goumlruumlnecek s ralamay da olu turur
ltELEMENT DVD (baslik format tarz)gt
Parsed Character Data (PCDATA) veri tuumlruuml element iccedileri inin metinsel ifade olaca n
bildirir XML ayr t r c s bu metindeki karakter ve varl k referanslar n ccediloumlzuumlmler A a da
ltbaslikgt ltformatgt lttarzgt bildirimlerinin iccedilerik tuumlruuml PCDATA olarak tan mlan r
ltELEMENT baslik (PCDATA)gt
ltELEMENT format (PCDATA)gt
ltELEMENT tarz (PCDATA)gt
61
XML belgelerinde tan mlanan bir element herhangi bir veri kombinasyonunu iccedilerebilir
Bu durumda iccedilerik tuumlruuml ANY olarak tan mlan r En serbest iccedilerik tan m d r Oumlrnek kullan m
a a da goumlsterilmektedir
ltELEMENT KATALOG ANYgt
Elementlerin alabilecekleri nitelikler DTD iccedilerisinde tan mlan r Element iccedilerikleri
hakk nda daha detayl bilgiye ula lmas n sa lar Tablo 36 da kullan labilecek niteleyiciler
goumlsterilmektedir
Tablo 36 DTD karakterleri ve accedil klamalar
Karakter Accedil klama
Elemandan s f r veya daha ccedilok bulunabilir
Alt elemanlar s rayla belirler
| Bir grup element aras nda seccedilim yap lmas na izin verir
+ Elemandan bir veya daha ccedilok bulunabilir
Elemandan s f r veya 1 tane bulunabilir
Sembol olmamas o elementin bir kez goumlruumlnmesi gerekti ini bildirir
Oumlrnek goumlsterimde KULLANICI elementine ait alt element olan AD ouml esi birden fazla
de er alabilece ini goumlsterir TEL bildirimi ile kullan c ya ait di er bilgiler girilirken telefon
numaras
giri i eksik olarak kalabilece ini ve sonradan eklendi inde ise yeni kural
tan mlamas na gerek kalmadan etiket tan mlamas n n yap labilece ini bildirir
ltELEMENT KULLANICI (ADI+ TEL)gt
382234 DTD ccedilinde Nitelik Liste Bildirimleri
Nitelik bildirimleri element bildirimlerinden sonra goumlruumlnuumlr ve biraz daha karma k bir
yap ya sahiptir Bir elementin sahip oldu u oumlzellikler bir liste halinde belirtilebilir
Nitelik liste bildirimi a a daki yap yla goumlsterilir
ltATTLIST Element_adi Nitelik_adi Nitelik_tipi varsayilan_degergt
ltATTLIST DVD id CDATA REQUIREDgt
62
Kod parccedilas nda yaz lan varsayilan_deger niteli in gerekli olup olmad n belirtir
Nitelik tipleri Tablo 37 deki de erleri alabilir
Tablo 37 DTD ccedilindeki niteliklerin de er ve accedil klamalar
[73]
De er Accedil klamas
CDATA De er karakter verisi olmal
(en1|en2|) De er parantez iccedilindeki de erlerden birisi olmal
ID a unique identifier- benzersiz bir tan mlay c -kimlik
IDREF De er ba ka bir eleman n ID si olmal
IDREFS De er ba ka ID lerin listesi olmal
NMTOKEN De er geccedilerli XML ad olmal
NMTOKENS De er geccedilerli XML ad listesi olmal
ENTITY De er bir varl k olmal
ENTITIES De er bir varl k listesi olmal
NOTATION De er bir notasyon olmal
xml De er oumlnceden tan mlam bir XML de eri olmal
Varsay lan de er ise Tablo 38 deki de erleri alabilir
Tablo 38 Varsay lan de erler ve accedil klamalar
De er Accedil klama
deger Niteli in Default de eri
REQUIRED Nitelik de eri Eleman iccedilinde geccedilmek zorundad r
IMPLIED Nitelik de eri Eleman iccedilinde geccedilmek zorunda de ildir
FIXED value Nitelik de eri sabittir E er nitelik de eri belirtilirse default de eri
yazmak zorunludur
A a daki oumlrnekte URUN elementinin RENK niteli i seccedilimli olarak k rm z ye il ya da
mavi olas de erleri tan mlanm t r Varsay lan de eri ise k rm z olarak belirtilmi tir [73]
ltATTLIST URUN RENK (red|green|blue) redgt
63
382235 DTD ccedilinde Varl k (Entity) Bildirimleri
Varl k bildirimleri XML belgesinde kullan lan de i ik tuumlr ve biccedilimlerdeki verilerin
XML belgesine aktar lmas n sa lar Di er programlama dillerinde kullan lan moduumll ya da
makrolar gibi s kl kla kullan lan metin bloklar
varl k olarak tan mlanarak sayfan n istenilen
yerine kolayca eklenebilir Eklenen metin uumlzerindeki de i iklikler varl k bildirimiyle
duumlzenlenebilir [73]
Ayr ca d ar dan bir dosyay
varl k olarak tan mlayarak iccedilindeki veri XML belgesinde
kullan labilinir Bu veri metin olmak zorunda de ildir DTD bir varl k olarak tan mlamak iccedilin
a a daki sat r n kullan lmas
gerekmektedir [73]
ltENTITY varl k_ad varl k_degerigt
ltENTITY copyright Copyright 2009 Yayinevigt
Harici bir dosyadan al nacak bir varl k iccedilin soumlz dizimi ise a a daki gibidir
ltENTITY varl k_ad SYSTEM URIURLgt
ltENTITY tableOfContents SYSTEM entitiesdenemexmlgt
(Not URL = Uniform Resource Locator URI = Uniform Resource Identifier )
38224 XML emas
XML emas DTD lere benzer ekilde XML belgesinin yap s n ve bulundurabilece i
verilerin tuumlruumlnuuml tan mlamakta kullan l r XML emalar
xsd dosya uzant l d r ema XML
belgesinde kullan labilecek ouml eleri nitelikleri ve veri tuumlrlerinin yan s ra XML belgesinin soumlz
konusu XML emas iccedilin geccedilerli olmas n sa lamak amac yla uyulmas gereken yap y da
tan mlar [74]
XML emalar DTD yap lar na goumlre daha guumlccedilluuml bir yap ya sahiptir DTD iccedilerisinde
eleman iccedileri i string ve di er birkaccedil veri tipi ile s n rl d r XML ema integer floating point
say lar date time gibi daha geni bir veri tipi deste i sa lamaktad r XML ema ayr ca accedil k
iccedilerik modeli (open content model) ve isim uzay
(namespace integration) gibi ek oumlzellikler de
sunmaktad r XML ema belgeleri olu turulmas s ras nda XML soumlzdizimi kullan l r Bu DTD
lere goumlre ccedilok belirgin bir uumlstuumlnluumlk sa lar Ccediluumlnkuuml yeni bir soumlz dizimi ouml renilmesi yerine
XML in XML emaya oumlzel komutlar n n ouml renilmesi yeterli olur [75]
64
A a daki oumlrnek ema tan mlamas nda xs schema elementi ile ba layan bir koumlk ouml e
vard r
ltxml version=10 encoding=UTF-8gt
ltxsschema
xmlnsxs=httpwwww3org2001XMLSchemagt
ltxsschemagt
ema elementi iki tane oumlzelli e sahiptir
name
xmlns
ema iccedilin bir isim tan mlamas name oumlzelli i ile sa lan r xmlns oumlzelli inin ise oldukccedila
oumlnemli bir goumlrevi vard r Bu oumlzellik sayesinde oumlrne in Microsoft un schema belirtimlerini
kullanabilmesi iccedilin urnschemas-microsoft-comxml-data de erine ayarlanmas gerekir
A a daki oumlrnekte XML ema belgesi iccedilin name ve xmlns niteliklerinin basit kullan m
goumlsterilmektedir [66 75]
ltschema name=kutuphane xmlns= urnschemas-microsoft-comxml-datagt
lt - - ema iccedileri i buraya yaz l r- -gt
ltschemagt
Oumlrnek XML belgesi olu turma ba l alt nda verilen oumlrne in ema dosyas olan
denemexsd nin kodlar ve ekran goumlruumlntuumlsuuml ekil 323 deki gibidir
ltxml version=10 encoding=UTF-8gt ltxsschema xmlnsxs=httpwwww3org2001XMLSchemagt
ltxselement name=Kullanicilargt
ltxscomplexTypegt
ltxssequencegt
ltxselement ref=Kullanici minOccurs=0 maxOccurs=unboundedgt
ltxssequencegt
ltxscomplexTypegt
ltxselementgt
ltxselement name=Kullanicigt
ltxscomplexTypegt
ltxssequencegt
ltxselement name=adi type=xsstringgt
ltxselement name=soyadi type=xsstringgt
ltxselement name=eposta type=xsstringgt
ltxssequencegt
ltxsattribute name=id type=xsinteger use=requiredgt
65
ltxscomplexTypegt
ltxselementgt
ltxsschemagt
ekil 323 denemexsd nin ekran goumlruumlntuumlsuuml
3823 Belge Duuml uumlmleri
XML dokuumlman nlar ndaki belge duuml uumlmleri a a da incelenecektir
38231 Elementler
XML dokuumlmanlar ndan bahsederken etiket ve element terimleri kullan lmaktad r lk
ba ta birbirinin yerine kullan labilir gibi goumlruumlnse de asl nda farkl iki terimdir Element terimi
herhangi bir iccedilerikle birlikte etiketlerin accedil l p kapanmas olarak tan mlanabilir Etiket elementin
bir parccedilas d r Etiketler de kouml eli parantez accedil larak ba lan r ve sonunda kapat larak bitirilir
A a daki oumlrnek sat rda ltxyztgt etiketlerini iccedileren tam bir element goumlruumllmektedir
Accedil l etiketi Kapan etiketi
ltxyztgtXML de etiket ve element fark ltxyztgt
ccedilerik
Element
66
38232 Nitelikler
Her XML belgesi karakter verisi ve biccedilimlendirmeden olu ur Genellikle karakter verisi
ba lang ccedil ve biti etiketleri aras nda metinsel bilgi iccedilerir
XML etiketlerine bir ya da daha fazla nitelik tan mlanabilir
ccedilerik ya da
Nitelik ba ka etiketler
ltKullanici kullanici_id= 1 gt ltKullanicigt
Etiket sim De er
Accedil l etiketi Kapan etiketi
Element
38233 Metin
Accedil lan ve kapat lan tuumlm etiketlerin iccedileri ini olu turur CDATA gibi metin i aretlemesi
yap lmad kccedila tuumlm metin XML kural yap s na goumlre i lenecektir [66]
38234 CDATA Boumlluumlmuuml
CDATA XML yap s iccedilerisinde i lenmeyecek metinleri bloklar halinde i aretlemeye
yarar XML derleyici bu boumlluumlmde metin iccedilerisinde yer alan i aretleme ay raccedillar n ve etiketlerini
normal karakterler olarak alg lar CDATA yap s ltCDATA[ ile ba lar ve]] kouml eli parantezlerin
kapanmas yla sona erer
ltbaslikgtltCDATA[
]]ltbaslikgt
CDATA boumlluumlmleri Javascript gibi goumlmuumlluuml kodlar XML belgelerinde kullanabilir ve bu
boumlluumlmlere i leme ihtiyaccedil duyulmayan iccedilerik eklenebilir Oumlrne in bir uygulamada veritaban ndan
veri okumas ve i aretlemesi buumltuumln iccedileri in XML belgesine goumlmme bilgisini vermede
karakterler i lenirken accedil kccedila ayr lmas n n oumlnuumlne geccedilebilmek iccedilin CDATA boumlluumlmleri kullan l r
[66]
67
38235 Varl klar
Bir karakteri temsil eden sembol grubuna varl k denir Oumlrne in Ampersand i areti
yerine yani ve yerine kullan lan ampamp ya da bir karakterlik bo luk b rakmak iccedilin
nonbreaking space yerine ampnbsp semboluuml kullan l r
ltmatematikgt18 lt 36ltmatematikgt
Yukar daki kod sat r nda bu element i lenmeye ccedilal ld nda hata iletisi verecektir
Ccediluumlnkuuml 36 de erinin oumlnuumlndeki etiket accedilma i areti olarak alg lanacak ve kod sat r n n i leme
al nmas nda yanl l a neden olacakt r Bu hatay duumlzeltmek iccedilin kod sat r n n a a daki gibi
yaz lmas yeterli olacakt r
ltmatemetikgt18 amplt 36ltmatemetikgt
Tablo 39 da s k kullan lan karakterlerin varl k sembolleri goumlsterilmektedir
Tablo 39 XML Belgelerinde kullan lan varl k bildirimleri
Karakter Varl k
amp ampamp
ampapos
gt ampgt
lt amplt
ampquot
383 XML nin Soumlz Dizim Kurallar
XML iccedileri in i aretlenmesi iccedilin etiketleme dili kullan l r Bu etiketlemeler yap l rken
baz kurallar goumlz oumlnuumlnde bulundurulur imdi bu kurallar incelenecektir
1) XML dili buumlyuumlk kuumlccediluumlk harfe kar duyarl d r XML de kuumlccediluumlk harf kullan m esast r
Oumlrnek yaz m a a daki gibidir [76]
lttable WIDTH= 100 gt kullan m yanl t r
lttable width= 100 gt kullan m do rudur
68
2) Her etiket kapat lmal d r Oumlrne in ltkelimegt etiketini takip eden sat r sonuna ltkelimegt
etiketi de eklenmelidir
3) Dokuumlmanda buumltuumln elementleri iccedileren bir koumlk eleman olmas gerekir Oumlrnek yaz mda
oldu u gibi alt ouml eler duumlzenli bir yap da yaz lmal d r [76]
ltrootgt
ltchildgt lt childgt
ltsubchildgt lt subchildgt
lt rootgt
4) Etiketler belirlenirken bir element ba ka elementleri iccediline alacak ekilde tasarlanabilir
ccedilten d a do ru etiketlerin hepsi kapat lmal d r
ltbgtltigtBu metin koyu ve e ikltbgtltigt yanl kullan m
ltbgt ltigt Bu metin koyu ve e ik lt igt lt bgt do ru kullan m
5) XML elementleri oumlzel karakter verileri bo elementler CDATA ya da yorumlar
bar nd rabilir
6) Oumlznitelik de erleri t rnak iccediline al nm olmal d r Tek t rnak ya da ccedilift t rnak olabilir
lttable width=100gt kullan m yanl t r
lttable width= 100 gt kullan m do rudur
7) Element adlar harfler rakamlar tire alt ccedilizgi iki nokta i aretlerini ve noktalar
iccedilerebilir ki nokta i areti sadece namespace kullan m iccedilindir xml ile ba layan eleman
isimleri oumlnceden tan mlanm oumlzel isimlerdir [86]
ltkullanilabilirIsimlergt
ltisimgt
ltxslcopy-ofgt
ltUzun_bir_isimgt
ltNoktalarlaayrilmisbirisimgt
lth823323123-231-231gt
lt_23gt
ltkullanilabilirIsimlergt
8) Etiketleme yap l rken rakamla ba lamamas na dikkat edilmelidir Bo luk yer
almamal d r
69
384 XML Dokuumlmanlar n n leyi i ve Sunumu
XML i lemleri a accedil tabanl ve olay tabanl olmak uumlzere iki kategoriye ayr l r Verilerin
i lenmesinde XML parser yani ayr t r c kullan l r XML i lemciler genellikle XML ayr t r c
olarak da adland r l r A accedil tabanl ayr t r c lar DOM (Document Object Model) yakla m na
goumlre olay tabanl ayr t r c lar ise SAX (Simple API for XML) yakla m na goumlre veriyi ema
yap s ile birlikte XMLye oumlzguuml hiyerar ik yap da i ler lenen veriler uygulama ve
sorgulamalara haz r hale getirir [66 76]
Genellikle bir XML dokuumlman n XML formatl veri iccedilerik dosyas XSD (DTD yerine)
formatl ema dosyas ve XSL (CSS yerine) formatl stylesheet dosyas olmak uumlzere 3 dosyayla
tan mlanabilir Bu uumlccedil dosya tipi de XML destekli tuumlm sunucu ve veri tabanlar nda ccedilal t r labilir
Verinin yal n (native) olarak sakland veritaban youmlnetim sistemleri di er veritabanlar nda
kar la lan harici veri tipleri veya farkl format doumlnuuml uumlmlerine gerek duymad ndan sorgu
transfer ve entegrasyon i lemlerinin performanslar
oldukccedila yuumlksektir Ayr ca XML veritaban
youmlnetim sistemlerinde verinin yal n biccedilimde kendi iccedil format nda tutuluyor olmas n n bir
avantaj da eri imi kolayla t rmas d r Ba ka veritaban youmlnetim sistemi yakla mlar nda buna
benzer bir arama iccedilin karma k ccediloklu tablolar ara t r l r ve daha sonra XML verisine
doumlnuuml tuumlruumlluumlr Bu da i lem performans n n duuml mesine ve maliyet art r c ek uygulamalar
eklenmesine neden olur [66 76]
39 AJAX Prensipleri
AJAX yeni bir teknoloji olmas itibariyle henuumlz emekleme doumlnemindedir Bununla
birlikte birkaccedil Web tasar mc s bu yenili i ba a ccedil k lmas gereken bir sorun gibi alg lamaktad r
Bu sorun iyi bir AJAX Web uygulamas yapabilmek iccedilin s radan ya da koumltuuml bir uygulamaya
kar ne yap lmas gerekti i olarak tan mlanabilir Michael Mahemoff (wwwmahemoffcom)
bir yaz l m geli tirici ve kullan labilirlik uzman iyi Ajax uygulamalar iccedili birkaccedil temel ilke
belirlemi tir [37]
Minimal Trafik nternet trafi i internet uumlzerindeki veri ak d r Goumlnderilen ve al nan
mesajlar n miktar youmlnuuml web sitesine giren ziyaretccedililerin say s ziyaret ettikleri
sayfalar ccedilevrimiccedili trafi i olu turmaktad r AJAX uygulamalar nda amaccedil bu internet
trafi ini en alt seviyede tutmak iccedilin sunucudan muumlmkuumln olabildi i kadar az bilgi
goumlnderip almakt r Ayr ca bilgi ak nda gereksiz bilgilerin her seferinde goumlnderilip
al nmas n n oumlnuumlne geccedililmesiyle uygulamaya sa laml k kat l r
70
Kullan c etkile imli model Genellikle AJAX uygulamalar geleneksel Web
uygulamalar ndan farkl olarak de i ik kullan c etkile imli modeller sunar Web
standartlar ndaki t kla-bekle anlay na kar AJAX uygulamalar nda an nda suumlruumlkle
b rak ya da ccedilift t klamayla yak nla t rma gibi di er kullan c arayuumlz paradigmalar
vard r E er kullan c
etkile imli modeller seccedililirse kullan c
ne yapaca n bilir
Sade arayuumlz Yan p soumlnen sayfa boumlluumlmuuml ya da suumlrekli doumlnen animasyonlar gibi dikkat
da t c ve gereksiz sayfa elementlerinden kaccedil n l r Kullan c lar goumlze hitabeden
uyumlu ve sade sayfalar tercih etmektedir
Eri ilebilirlik nsanlar n ba lant h zlar ndan fiziksel engellerine ya ad uumllkenin
toplumsal yap s ndan ya l l a kadar birccedilok youmlnden eri ilebilirlik standartlar
incelenebilir Birincil ve ikincil kullan c lar n beklentilerine en uygun olacak AJAX
uygulamalar na eri im seccedilenekleri goumlz oumlnuumlnde bulundurulmal d r Oumlzel yaz l mlarla m
yoksa kullan lacak taray c oumlzellikleriyle mi adaptasyonun sa lanaca belirlenmelidir
Boumlylece yeni hedef kitleler de tamamen d ar da b rak lm olmayacakt r
Sayfan n tamam n indirilmesinden kaccedil nma Tetikleyici sayfa indirildikten sonra
tuumlm sunucu ileti imi AJAX motoru taraf ndan youmlnetilmektedir Boumlylece kuumlccediluumlk bilgi
al -veri leri iccedilin tuumlm sayfan n tekrar yuumlklenmesinin oumlnuumlne geccedililmi olur
lk kullan c AJAX uygulamalar nda tasar m kullan c lar n daha oumlnce
kar la mad klar bir biccedilimdedir Etkileyici efektler ve s k c olmayan bilgilendirici
reklamlarla genel kullan m durumlar n kolayca ba armaktad r
Buumltuumln bu ilkelerde bulunan ortak nokta kullan labilirliktir AJAX oumlncelikle kullan c lar
iccedilin web deneyimini geli tirmeye ccedilal rken arkas ndaki teknoloji sadece bunun iccedilin bir araccedilt r
Yukar daki ilkelere sad k kalarak AJAX uygulamalar oldukccedila faydal ve kullan l olacakt r
[37]
310 AJAX Kuumltuumlphaneleri ve Araccedillar
Kuumltuumlphaneler haz r fonksiyonlara kolayca eri im sa lar Ayr ca s k kullan lan var olan
kodlar tekrar yazarak zaman kaybedilmemesini sa lar A a da en ccedilok kullan lan AJAX
kuumltuumlphanelerine oumlrnekler verilmi tir
3101 Prototype
Prototype dinamik web uygulamalar yaratmak iccedilin kullanabilecek geli mi bir
kuumltuumlphanedir Accedil k kaynakl ve nesne tabanl kod kuumltuumlphanesidir Ajax iccedilin yaz lan
71
kuumltuumlphanelerin ilk oumlrneklerindendir ve di er haz r kuumltuumlphanelerin bir k sm prototypejs
kullanmaktad r [78]
3102 AJAX Gear Toolkit
AJAX olarak bilinen istemci tarafl tekni in buumltuumln avantajlar ndan faydalanmay
muumlmkuumln k lan bir araccedilt r XMLHttpRequest nesnelerini kullanarak internet taray c s n n
asenkron ccedila r yapmas n sa lar [78]
3103 AspNet Ajax
ASPNET AJAX ASPNET ile yap lan ve tuumlm nternet taray c lar nda ccedilal abilen
uygulamalar iccedilin Microsoft taraf ndan geli tirilen bir kuumltuumlphanedir Oumlnce Atlas daha sonra
ASPNET Ajax ad n alm t r ASPNET 20 ile kolay entegrasyon ASPNET 35 ile tam
entegrasyon sa lar Yeni nesil etkile imli arayuumlzler olu turmak iccedilin kullan l r [78]
3104 Dojo Toolkit
Accedil k kaynak kodlu bir javascript toolkit olup dhtml sorunlar n buumlyuumlk oumllccediluumlde ccediloumlzmuuml tuumlr
Arayuumlz programlama karma k kodlar n basite indirgenmesi toolkitin sa lad avantajlard r
Ayr ca dinamik web sitesi ya da ba ka ortamlar haz rlamay kolayla t ran ve sitenin daha
kullan l olmas n sa layan iccedilerikler sunar [78]
3105 MochiKit
Dreamweaver web uygulamalar iccedilin kullan lan ajax kuumltuumlphanelerinden birisidir E
zamanl olmayan davran lar iccedilin erteleme uygulamas n kulland ndan sunucuyla etkile im
halinde olan web sayfalar n n geli tirilmesinde tercih edilir [78]
3106 PHPLiveX
PHP ile yap lan uygulamalar iccedilin kullan lan bir kuumltuumlphanedir Versiyon 25 ile gelen
yenilikler ve optimizasyonlar kuumltuumlphanenin potansiyelini ciddi biccedilimde artt rm t r Di er php
tabanl kuumltuumlphaneler gibi php fonksiyonlar n javascript koduyla ccedila r r fakat di erlerine goumlre
daha az kodla kullan m sa lar [78]
72
3107 Sardalya (Sarmal Dinamik Altyap s )
Sardalya Dinamik AJAX Kuumltuumlphanesi DOM deste i olan tuumlm guumlncel taray c larda
ccedilal mak iccedilin tasarlanm bir AJAX Kuumltuumlphanesi dir Linux windows freebsd osx sun gibi
platformlarda ccedilal abilir Tuumlm taray c lardan ba ms z olarak ccedilal r ve kullan m s ras nda az
yer kaplar [78]
3108 Sajax
Sajax n accedil l m Simple Ajax Toolkit tir ASP ve PHP tabanl programlarda AJAX
uygulamalar geli tirmek iccedilin kullan lan bir kuumltuumlphanedir Buumltuumln sunucu tarafl platformlara
ccedila r goumlnderebilme yetene ine sahiptir [78]
3109 Solvent
AJAX uygulamalar n moduumller bir yap da gerccedilekle tiren farkl bir kuumltuumlphanedir
JavaScript ile yaz lm t r ve tuumlm taray c lardan ba ms z olarak ccedilal an bir AJAX uygulamas d r
Web uygulamalar n kuvvetlendirmek ve uygulamalar n geli tirme suumlrecini h zland rmak iccedilin
kullan l r [78]
31010 AjaxAC
AjaxAC accedil k kaynak kodlu php tabanl bir kuumltuumlphanedir AjaxAC ile varolan PHP
s n flar na ve MySQL veritaban na ek istek verilerini doumlnduumlrmek iccedilin geccedili oldukccedila kolayd r
[78]
31011 Xajax
Xajax Php JavaScript HTML XMLHttp ve XML kullanarak taray c ve sunucu
aras ndaki al veri i ve verileri goumlstermeyi gerccedilekle tirir Xajax ile geli tirilmi
uygulamalar sunucudaki php fonksiyonlar n ccedila rabilir ve sayfay yeniden yuumlklemeden
iccedileri ini guumlncelle tirebilir [78]
73
31012 Scriptaculous
Prototype tabanl bir js framework tuumlr Yap lan AJAX i lemleri prototype iccedilerisinde
bulunan nesneler ve fonksiyonlar ile yap l r [78]
311 AJAX Uygulamalar nda Kullan lan Di er Teknolojiler
AJAX istemci ile sunucu aras nda e zamanl olmayan ileti im sa layan bir teknolojiler
buumltuumlnuumlduumlr
3111 HTMLXHTML
stemci tarafl (client side) bir metin i aretleme dili olan XHTML (Extensible
HyperText Markup Language- Geli tirilebilir Metin aretleme Dili) dili XML soumlz dizimi ile
olu turulmu tur XHTML standart etiket ayarlar n tan mlarken spesifik bir yol kullan lmal d r
World Wide Web Consortium (W3C) duumlnyadaki Web geli tiriciler iccedilin olu turulmu ayn
standartla t r lm yakla m benimserler [66]
3112 CSS
XHTML de stil biccedilimlendirmesini sa lar Yuumlzlerce sayfan n tek merkezden
youmlnetilmesini sa lar Geleneksel youmlntemlerde her sayfan n biccedilimlendirme ayarlar birccedilok kod
sat r aras ndan stillerle ilgili olanlar n seccedililip duumlzeltilmesiyle yap l r CSS kullan lan
youmlntemlerde a a daki gibi bir kod parccedilas
tuumlm sayfalardaki stil ayarlar n n yap lmas n tek
merkeze ba lam t r
kabuk
width760px
background-colorEE7700
spot
colorEE7700
font-familyVerdana Comic Sans MS Helvetica sans-serif
74
AJAX ve CSS birlikte kullan larak masauumlstuuml ccedilal t r labilir EXE yaz l mlar ile ayn
h zda ve performansta ccedilal an web uygulamalar geli tirmek muumlmkuumln hale gelmi tir Google
belgelerinde Gmail bunun en buumlyuumlk oumlrne idir
Web sayfalar ndaki tuumlm iccedilerik biccedilimlendirmeler resimler vb istemciye
HTMLXHTML kodlar halinde goumlnderilir Bu kodlar sade ve basittir Bu da oldukccedila fazla
kullan c ya hitap edebilen web siteleri iccedilin oumlnemlidir Ccediluumlnkuuml internete ba land nda k s tl bir
bant geni li ine sahip kullan c lar daha az say da karakter iccedileren sayfalar daha k sa suumlrede
indirebilecektir Boumlylece kullan c lar toplam suumlrede daha fazla sayfa ziyaret edecektir
Sayfalar n h zl yuumlklenmesi kullan c lar n o siteler hakk ndaki memnuniyetini art racakt r
Ayr ca bu durum yaz c dostu sayfalar n olu turulmas nda etkilidir [79]
3113 XSLT
XSLT (Extensible Stylesheet Language Transformations Geni letilebilir
Biccedilimlendirme Dili Doumlnuuml uumlmleri) XML tabanl doumlkuumlmanlar n orijinal halini de i tirmeden
yeni bir dokuumlman olu turmak iccedilin kullan lan bir dildir [80] Oumlrne in bir XML doumlkuumlman n
XHTML ye doumlnuuml tuumlrmek iccedilin XSL doumlnuuml uumlmuuml (transformation) kullan labilir XMLnin iccedilindeki
hangi data nas l doumlnuuml tuumlruumllecek sorular ndan hangi sorusunun cevab XPath ile belirtilirken
nas l sorusunun cevab ise yine XML ile belirtilir [81]
75
4 FLEX
Flex MXML ActionScript 30 ve Flex s n f kuumltuumlphanelerinin birle iminden olu an
sunucu-istemci tabanl yeni bir teknolojidir Ayr ca Flex Flash uygulamalar ile derlenebilen
XML tabanl bir dil olarakta tan mlanabilir [84] Flex in ccedilal ma sistemati inin i lem ak
emas ekil 41 de goumlsterilmektedir
ekil 41 Flex uygulamalar n n i lem ak emas
ekil 41 de sol alt kouml eden sa uumlst kouml eye do ru i lem ak emas takip edildi inde
Flex Builder 3 ile geli tirlen appmxml uygulamas MXML derleyicide ccedilal t r ld nda bir swf
dosyas uumlretmektedir Ayr ca uumlretilen swf dosyas n n sunucu uumlzerinde test edilebilmesi iccedilin
birde html uzant l dosya olu turulur Flex in en oumlnemli oumlzelli i uumlretilen son uumlruumlnuumln swf
format nda olmas d r Ayr ca olay tutucu komut dizelerinin kolay kullan m
yaz l m n
olu turulmas nda Flex program n tercih nedeni olmas n sa lam t r
Adobereg Flexreg 3 yayg n olarak kullan lan taray c lar masauumlstleri ve i letim
sistemlerinde kolayl kla etkileyici web uygulamalar olu turmaya ve bak mlar n yapmaya
youmlnelik verimlili i yuumlksek bir programd r Accedil k kaynak (open source) altyap s na sahiptir
Eclipse tabanl bir plugin kuumlmesidir
Adobe firmas taraf ndan Flex Builder 3 Pro lisans
herhangi bir e itim kurumuna
ouml renci e itmen ya da ccedilal an olarak ba l olduklar n belgeleyenlere tamamen uumlcretsiz olarak
verilmektedir Kurulum tamamland ktan sonra ilk accedil l ekran ekil 42 de goumlsterildi i gibidir
[83]
76
ekil 42 Flex arayuumlzuuml
41 Adobereg Flexreg 3 Kurulumu ccedilin Gereken Minimum Sistem Gereksinimleri
Uygulama gerccedilekle tirmek iccedilin farkl i letim sistemleri iccedilin gerekli sistem
gereksinimleri a a da belirtilmi tir
411 Windows ccedilin Flex Builder 3 (Standart ve Profesyonel)
Flex in Windows kurulumu iccedilin gerekli minimum sistem gereksinimleri a a da
goumlsterilmektedir [83]
Intelreg Pentiumreg 4 i lemci
Microsoftreg Windowsreg XP Service Pack 2 veya Windows Vistareg Home (Premium
veya Basic) Business veya Ultimate
1 GB RAM (2 GB oumlnerilir)
500 MB kullan labilir sabit disk alan (eklenti yap land rmas iccedilin ek 500 MB gerekir)
Java Virtual Machine Sun JRE 142 Sun JRE 15 (dacirchildir) IBMreg JRE 15 veya
Sun JRE 16
Eklenti yap land rmas iccedilin Eclipse 322 33 ve 34 (Eclipse 33 Windows Vista iccedilin
oumlnerilir)
Adobe Flashreg Player 9 yaz l m
BEA Workshop 101
77
IBM Rational Software Architect 7003 (Yaln zca Eclipse 33 eklenti yap land rmas )
412 Macintosh ccedilin Flex Bu lder 3 (Standart ve Profesyonel)
Macintosh bilgisayarlar iccedilin gerekli minimum sistem gereksinimleridir [83]
PowerPCreg G4 125 GHz veya Intel i lemci
Mac OS X v1047 10410 veya 105
1 GB RAM (2 GB oumlnerilir)
500 MB kullan labilir sabit disk alan
Java Virtual Machine Appledan JRE 15 veya JRE 16
Eclipse 322 33 ve 34 (eklenti yap land rmas iccedilin)
Adobe Flash Player 9 yaz l m
78
5 CcedilEVR M Ccedil KATALOG TASARIMI F rat Uumlniversitesi Oumlrne i
AJAX teknolojisi AdobeMacromedia firmas n n geli tirdi i Flex program
ve
bile enleri kullan larak F rat Uumlniversitesinin 2009 ccedilevrimiccedili katalog ccedilal mas
herhangi bir
teknik bilgi gerektirmeden guumlncellenebilen alt yap s yla gerccedilekle tirilmi tir Kullan c arayuumlzuuml
olu turulurken XML tabanl bir gramer yap s
ve Flex program
kullan lm t r Bu tez
ccedilal mas nda sunucu olarak WampServer 20 kullan lm t r Katalog uygulamas n n kaynak
kodlar na ek boumlluumlmuumlnden bak labilir
AJAX teknolojisiyle ortaya ccedil kmaya ba layan ccedilevrimiccedili bro uumlrler ve kataloglar
internetteki Web uygulamalar uumlzerinde ccedilevrimiccedili hedeflerin oumlnemli bir boumlluumlmuumlne hacirckim
olmaktad r [37] Bu tez ccedilal mas da buna oumlrnek te kil etmektedir
Ccedilal man n olu um haritas na literatuumlr taramas yla ba lanm t r Bir sonraki ad mda
haz rlanacak olan program n oumlzellikleri belirlendi Bu a amadan sonra yaz l m iccedilin kullan lacak
program n seccedilimi yap ld Yaz l m algoritmas planlan p ekil 51 deki kodlama algoritmas
olu turulmu tur Yaz l m test edildi inde olu an hatalar giderilmi tir Ccedilal man n sayfa tasar m
yap larak son ekli verilmi tir
79
ekil 51 Kodlama algoritmas
Ba la
Harici verilerin XML dosyas ndan okunmas iccedilin HttpService s n f tan mland
De i ken tan mlamalar
Flex s n flar eklendi
Uygulamada kullan lacak resim boyutland rmas iccedilin maskeleme yap ld
Sunucu ile taray c ileti iminde AJAX scriptler kullan ld
Tuumlm sayfalar ekran goumlruumlntuumlsuuml iccedilin uygulama boyutland rmas yap ld
Zoom oumlzelli i iccedilin etiket tan mlamas ve buumlyuumltuumllmuuml sayfa goumlruumlntuumlsuuml iccedilin goumlruumlnuumlm
ayarlar fonksiyonu yaz ld
Navigasyon duuml meleri olu turuldu
XML format na uygun duuml uumlmler olu turuldu
Sayfa tasar m yap ld
Dur
A a daki kod sat rlar yla katalog ccedilal mas n n uygulama dosyas olan catamxml
dosyas na Flex iccedilinde ccedilal ma youmlntemlerini belirleyen faydal
s n flar dacirchil edilmi tir
lt[CDATA[
import mxutilsStringUtil
import mxrpcsoapLoadEvent
import mxcontrolsAlert
import mxrpceventsFaultEvent
import qscontrolsFlexBook
import qscontrolsflexBookClassesFlexBookPage
import qscontrolsflexBookClassesFlexBookEvent
import qscontrolsflexBookClassesWBookPageImpl
import qscachingContentCache
import mxrpceventsResultEvent
import mxrpchttpHTTPService
import mxcoreUIComponent
import mxmanagersPopUpManager
import compResimSec
import Kullan
import mxcoreScrollPolicy
import mxcollectionsArrayCollection
XML tan mlamalar diziler sunucu ba lant lar ve zoom i lemleri iccedilin gerekli de i ken
tan mlamalar a a daki kod sat rlar yla yap lm t r
private var aXML
[Bindable]
private var resimlerArrayCollection
private var dataSetHTTPService
private var resimdiziArray=new Array()
private var zoomYapBoolean=false
Katalo un local sunucu uumlzerinde ccedilal t r labilmesi iccedilin kaynak dosyas
Wamp kurulumu
sonras nda olu an www klasoumlruuml iccediline yerle tirilir E-katalog resimleri dinamik olarak data
dizinindeki imagesxml dosyas nda ccedilekilmektedir Katalog resimlerini de i tirmek iccedilin bu
dosyadaki xml duuml uumlmlerinin de i tirilmesi yeterlidir De i iklik yap lacak duuml uumlm oumlrne i
a a da goumlsterilmektedir
81
ltimage source=images2jpg thumb=images2jpg zoom=images2jpggt
Yukardaki sat rdaki duuml uumlmleri accedil klamak gerekirse source duuml uumlmuumlnde katalogda
goumlruumlnecek resim thumb duuml uumlmuumlnde e er as l resim (source) resmi yuumlklenene kadar ba ka bir
resim goumlruumlnmesi isteniyorsa o resmin kayna goumlsterilir Zoom duuml uumlmuuml ise sayfaya zoom
yap lmas esnas nda goumlruumlnecek resmin kayna n goumlsterir
Yukardaki 3 duuml uumlmden thumb duuml uumlmuuml iste e ba l olarak kullan l r Zoom
duuml uumlmuumlndeki resim as l resmin 100 buumlyuumlk hali olmal d r
ekil 52 Katalo un ilk sayfas n n ekran goumlruumlntuumlsuuml
E-katalog sayfalar n boyutunu kataloghtmlde tan ml olan object nesnesinin geni lik ve
yuumlkseklik oumlzelliklerinden almaktad r ekil 52 nin kaynak kodu a a da verilmi tir
ltscript src=ScriptsAC_RunActiveContentjs type=textjavascriptgtltscriptgt
ltscript type=textjavascriptgt
AC_FL_RunContent( idkatalogwidth894height653codebasehttpfpdownloadm
acromediacomgetflashplayercurrentswflashcabmoviekatalogqualityhighbgcolor
000000allowscriptaccesssameDomain ) end AC code
ltscriptgtltnoscriptgtltobject classid=clsidD27CDB6E-AE6D-11cf-96B8-444553540000
id=katalog width=894 height=653
82
codebase=httpfpdownloadmacromediacomgetflashplayercurrentswflashcabgt
ltparam name=movie value=katalogswf gt
ltparam name=quality value=high gt
ltparam name=bgcolor value=000000 gt
ltparam name=allowScriptAccess value=sameDomain gt
ltembed src=katalogswf quality=high bgcolor=000000
width=984 height=653 name=katalog align=middle
play=true
loop=false
quality=high
allowScriptAccess=sameDomain
type=applicationx-shockwave-flash
pluginspage=httpwwwadobecomgogetflashplayergt
ltembedgt
ltobjectgtltnoscriptgt
ekil 53 Katalo un 23 sayfa goumlruumlntuumlsuuml
Oumlrne in ekil 53 te kullan lan resimlerin width=447 height=613 boyutunda ise
resimlerin sayfada goumlruumlnmesi iccedilin html etiketindeki width oumlzelli ini 447x2=984 ve height
83
oumlzelli ini 613+40=653 eklinde duumlzenlenmesi gereklidir Yani width=resim geni li i X 2 ve
height=resim yuumlksekli i + 40 olmal d r
ekil 54 Katalo un sayfa ccedilevirme efektli goumlruumlntuumlsuuml
ekil 54 te goumlruumllen e-katalogun sayfay ccedilevirme oumlzelli i ile h z gibi i lemleri stylecss
dosyas nda tutulmaktad r Gerekli olmad kccedila bu dosya uumlzerinde de i iklik yap lmamas tavsiye
edilir Olu turulan stylecss dosyas n n kodlar a a da goumlsterilmi tir
FlexBook
color 000000
textRollOverColor 000000
border-thickness 0
border-style none
page-slope06
active-grab-area page
page-shadow-strength 1
curve-shadow-strength 1
auto-turn-duration 1500
Application
color F1F1CC
textRollOverColor FFFFFF
84
backgroundGradientColors FFFFFF FFFFFF
backgroundColor FFFFFF
SuperImage
border-thickness 0
border-style none
ekil 55 de goumlruumllen navigasyon ccedilubu unda 1 numara ile goumlsterilen alan istenilen
sayfaya konumland rma yap labilmesi iccedilin sayfa numaras n n girildi i kutudur 2 numara ile
goumlsterilen alan Sayfaya Git duuml mesine t kland nda istenilen sayfan n accedil lmas n sa layan
duuml medir 3 ve 4 numara ile goumlsterilen duuml meler Geri leri duuml meleridir Fare kontroluuml
olmadan da sayfalar aras nda gezinti yap labilmesini sa lar 5 numara ile goumlsterilen alan Tuumlm
Sayfalar duuml mesidir
ekil 55 Katalo un navigasyon ccedilubu u
Tuumlm sayfalar n accedil l r pencere iccedilerisinde goumlruumlntuumllenmesini sa layan fonksiyon a a daki
gibidir Kullanmxml sayfas nda ccedilekilen resimler pencerede goumlster komutuyla geni lik ve
yuumlksekli i ayarlan r Seccedililen nesneler customMoveend() komutuyla ekrana ta n r
private function tumsayfalar()void
Kullanshow_window(thisfalseapplicationwidth-10(applicationheight-60)2)
customMoveend()
customMoveplay()
ekil 56 da goumlruumllduuml uuml uumlzere ccedilevrimiccedili katalogdaki yuumlkluuml olan tuumlm sayfalar yukar dan
accedil lan bir pencere yard m yla goumlsterilir Tuumlm sayfalar
goumlster duuml mesi t kland nda goumlruumlnecek
resimler ile ilgi ayarlar ise data klasoumlruumlndeki onizlexml dosyas ndan ayarlanabilir Xml nin
esnek etiketleme yap s sayesinde onizlexml dosyas nda olu turulan ltsayfalargt etiketi aras na
a a daki kod sat rlar ccedilo alt larak olu turulmu tur
85
ltsayfagt
ltresim1gtimages2jpgltresim1gt
ltresim2gtimages3jpgltresim2gt
ltgitgt2ltgitgt
ltpagesgt23ltpagesgt
ltsayfagt
ekil 56 Tuumlm Sayfalar duuml mesi t kland ndaki ekran goumlruumlntuumlsuuml
Son olarak 6 numaral duuml me t kland nda + ve - konumlar n alarak buumlyuumlteccedil
oumlzelli i kullan l r ekil 57 de goumlsterildi i gibi imleccedil sayfa uumlzerinde gezdirilirken bu alan
uumlzerinde zoom yap larak yan sayfada buumlyuumltuumllmuuml goumlruumlntuuml sa lan r
86
ekil 57 Zoom oumlzelli i
Zoom oumlzelli inde resimler uumlzerindeki geni lik ve yuumlkseklik de erleri iccedilin if else blok
yap s kullan larak maskeleme fonksiyonu yaz lm t r Maskeleme fonksiyonu a a daki kod
sat rlar nda goumlsterilmektedir Fare nin x-y koordinatlar nda alaca de erlere goumlre fare nin
buumlyuumltuumllecek alan uumlzerinde gezinmesiyle yan sayfada buumlyuumltuumllmuuml goumlruumlntuuml elde edilmi tir
private function maskele(eMouseEvent)void if(zoomYap) if((mouseXgt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) )
maskex=0
img2visible=false img1visible=true img1x=(applicationwidth2)-mouseX img1y=-1mouseY else if((mouseXlt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) ) maskex=applicationwidth2 img1visible=false img2visible=true img2x=-1mouseX img2y=-1mouseY
Sayfa goumlruumlntuumllerinin maskelenmesinden sonra resimlerin kaynak dosyadan ccedilekilerek
ekrana buumlyuumltuumllmuuml hallerinin yans t lmas iccedilin a a daki fonksiyon olu turulmu tur
87
private function zoom()void
if(zoomerlabel==+) zoomerlabel=- if(img2source=aimage[bookcurrentPageIndex2]zoom) yuklemevisible=true
img2addEventListener(EventCOMPLETEbuyuk2_yuklendi) img2source=aimage[bookcurrentPageIndex2]zoom
if(aimagelength()gtbookcurrentPageIndex2+1) img1addEventListener(EventCOMPLETEbuyuk1_yuklendi)
img1source=aimage[bookcurrentPageIndex2+1]zoom
zoomYap=true else if(zoomerlabel==-)
zoomerlabel=+
setGorunum()
private function setGorunum()void zoomYap=false zoomerlabel=+ img1visible=false img2visible=false
88
6 SONUCcedil
Web 20 ak m ve zengin internet uygulamalar guumlnuumlmuumlz popuumller konular ndand r Bu
nedenle tez ccedilal mas
bu amaca youmlnelik olarak son teknolojiler kullan larak geli tirilmi tir
AJAX teknolojisi kullan larak kullan c n n istekleriyle sayfan n tamamen yenilenmeden
ilgili i lemin yuumlruumltuumllebilmesi sa lanmaktad r Geli tirilen sistem ccedilapraz taray c deste ine sahip
esnek ve kolay kullan labilir bir yap ya sahip oldu undan herhangi bir programlama bilgisine
sahip olmadan ki ilerin istenilen de i iklikleri yap labilece i bir alt yap ya sahiptir Bu ccedilal ma
nda en yenilikccedili internet yaz l mlar konusunda uygulama yapmak isteyen yaz l m
uzmanlar na kaynak te kil edecek bir ccedilal ma gerccedilekle tirilmi tir Yaz l m geli tiricileri ve
yaz l m mimarlar AJAX Flash Flex Appletler ve di er teknolojileri uygulamalar na kolayca
entegre edebilirler
Bu tez ccedilal mas kapsam nda Web de Ajax Tekni inin Bant Geni lik Optimizasyonuna
Etkisi ba l kl bir makale haz rlanm t r [85] Bu makalede Web Performance Suite 355941
program yla AJAX n performans testi yap lm t r Bu oumllccediluumlmler sonucunda elde edilen de erler
goumlstermi tir ki bir ebeke uumlzerinden goumlnderilecek sinyalin en duuml uumlk ve en yuumlksek frekanslar
aras nda gereksiz yere kullan lan aral n optime edilmesinde AJAX etkili bir youmlntemdir
AJAX n ccedilal ma prensibi sayesinde uygulamalar en iyi performansla gerccedilekle tirilir
AJAX teknolojisinin hala geli imi devam etmekte oldu undan baz eksik yanlar da
bulunmaktad r Oumlrne in taray c
uumlzerindeki Geri
fonksiyonu bazen beklendi i gibi
ccedilal mayabilir Dinamik olarak olu turulan sayfalar taray c n n oumlnceden i ledi i sayfalar
youmlneten mekanizmalar na kendini otomatik olarak kaydetmez bu yuumlzden taray c n n Geri
tu una bas ld nda istenen sayfa elde edilemeyebilir [86] Ba ka bir dezavantaj ise AJAX ile
olu turulan iccedileri in kodlar kaynak kodlar k sm nda goumlruumllememektedir Ayn zamanda Google
ve Yahoo gibi arama motorlar n n Web sayfalar na goumlnderdi i robot yaz l mlar da bu kodlar
goumlrememektedir Dolay s yla tamamen AJAX ile olu turulan iccedilerik arama motorlar n n sonuccedil
sayfalar nda listelenmezler Guumlnuumlmuumlzde yap lan Web sayfas n n arama motorlar nda
goumlruumlntuumllenmesi oldukccedila oumlnemlidir Fakat bir Web uygulamas ziyaretccedililer hakk nda oumlnemli
ki isel bilgilere sahipse bu bilgilerin arama motorlar nda herkes taraf ndan goumlruumlntuumllenmesini
sa lamas bir avantaja doumlnuuml uumlr [87] AJAX yerinde ve do ru bir ekilde kullan ld nda
uygulamalarda performans art n sa lar
Bu tez ccedilal mas nda Web 20 ak m n n ortaya ccedil k nedenleri ve RIA konseptine
duyulan ihtiyac n temeli irdelenmi tir Web 20 ak m nda oumlne ccedil kan uygulamalar ve ccedilal ma
sistematikleri incelenmi tir Oumlne ccedil kan bu uygulamalar n site tasar m nda dikkat ccedileken
89
oumlzelliklerine de inilmi tir AJAX teknolojisini olu turan bile enler incelenmi tir Bu inceleme
ve ara t rma sonucunda zengin internet uygulamalar na oumlrnek te kil edecek Web 20 ak m n n
ccedilekirde i olan AJAX teknolojisi kullan larak F rat Uumlniversitesi iccedilin ccedilevrimiccedili bir katalog
tasarlanm t r Bu tasar mda flexBook flexbookpage landscape wrapper zoomer gibi ek
bile enler kullan lm t r Navigasyon paneli tasarlanm t r Olu turulan tasar mda yerli ve
yabanc literatuumlr taramas yap larak emsallerindeki kullan l oumlzellikler projeye dahil edilmi tir
Projenin geli tirilmesi s ras nda izlenen ad mlar resimlenerek ortaya bir yol haritas ccedil kar lm t r
61 Oumlneriler
Bu tez ccedilal mas esas al narak ileride bu uygulamalar mobil cihazlar arac l yla
kullan labilirli i uumlzerine ara t rmalar suumlrduumlruumllebilir AJAX n uumlstuumln oumlzellikleri sayesinde Web
uumlzerinden yay nc l k ve mobil ileti im alanlar farkl bir boyut kazanm t r Birccedilok irket art k
ta nabilir cihazlar iccedilin Web 20 uygulamalar n AJAX la optimize etmeye ba lam t r Yeni bir
teknoloji olan AJAX la ta nabilir cihazlardaki performans bellek youmlnetimi s n rl tu giri i
gibi sorunlar n uumlstesinden gelinmesi hedeflenmelidir
AJAX kullan larak IDE (Integrated Development Environment) entegrasyonu Eclipse
iccedilin ba lant lar yaz labilir veya yap m servisi arac l yla do rudan IDE den yap m paketleri
geli tirilebilir Guumlnuumlmuumlzde oldukccedila popuumller olan accedil k kaynak kodlu yaz l m geli tirme
ortamlar nda entegre uygulamalar geli tirilebilir
Kullan c Arabirimi aretleme Beti i (User Interface Markup Language) s n f na dacirchil
edilecek gelece in en popuumller web tabanl teknolojilerinden biridir Flex geli tiricileri Adobe
Flex Builder - IDE ortam nda LiveCycle Data Services Java Coldfusion ASPNET JSP PHP
gibi popuumller web programlama dilleri yard m yla etkile imli ve guumlvenli web tabanl projeler
geli tirilebilir [82]
90
KAYNAKLAR
1 nternet Web 20 httptrwikipediaorgwikiWeb_20 Eri im tarihi 03092008
2 Oumlzer Z Web Teknolojileri ve AJAX Seminer Ccedilal mas Fen Bilimleri Enstituumlsuuml sf2
2007
3 nternet Web 20 Nedir wwworeillynetcompubaoreillytimnews20050930what-is-
web-20html Eri im tarihi 04102008
4 nternet httpravenyoungspaceslivecomblogcns17376F4C11A91E0E3717entry
Eri im tarihi 03092008
5 Mcluhan M Povers B R Ccedileviren Bahar Oumlcal Duumlzgoumlren Global Koumly 21 Yuumlzy lda
Yeryuumlzuuml Ya am nda ve Medyada Meydana Gelecek Doumlnuuml uumlmler Scala Yay nc l k 2001
6 nternet RIA konsepti httpwwwademaktepecomGunlukDetayaspxId=122 Eri im
Tarihi 26062008
7 Onat F A man Ouml K l ccedil A Sosyal A Sitelerinin Reklam Ve Halkla li kiler Ortamlar
Olarak De erlendirilmesi Sayfalar 3-6 2008
8 nternet httpi8tinypiccom6kymb0kgif Eri im tarihi 11072008
9 nternet DFA httpwwwdoubleclickcomproductsdfaindexaspx Eri im tarihi
14022009
10 nternet Adsensecom
httpswwwgooglecomadsensesupportbinanswerpyanswer=9712amptopic=13488 Eri im
tarihi 15112008
11 nternet DoubleClickcom wwwdoubleclickcom Eri im 13102008
12 nternet Adsense ho geldiniz wwwgooglecomadsense Eri im 18112008
13 nternet Flicker Tan m httptrwikipediaorgwikiFlickr Eri im tarihi 09032009
14 nternet Flicker Foto raf Payla m Sitesi httpwwwflickrcom Eri im 18022009
15 nternet BitTorent httptrwikipediaorgwikiBitTorrent Eri im tarihi 05012009
16 nternet Bittorent kulan m rehberi httpwwwbittorrentcombtusersguidesbeginners-
guide Eri im tarihi 05012009
17 nternet Bittorent kullan m k lavuzu httpwwwshukkocombittorrent_kilavuzu Eri im
tarihi 05012009
18 nternet Bittorent ccedilal ma mant httpwwwforumelbizbittorent-nedirgne-ise-
yarargresimli-detayli-super-anlatim-
t12836htmls=17f7b3147d97799d31c32b09e87d43e4ampamp Eri im tarihi 05012009
19 nternet Soumlzluumlk
91
httpwwwparliamentvicgovauSARCE-DemocracyFinal_ReportGlossaryhtm Eri im
tarihi 05012009
20 FU F LIU L WANG L Empirical Analysis of Online Social Networks in the Age of
Web 20 2007 Physica A Statistical Mechanics and its Applications Volume 387 Issues 2-3
Sayfalar 675-684
21 nternet Facebook httptrwikipediaorgwikiFacebook Eri im tarihi 06012009
22 nternet Facebook makale httpturkinternetcomhaberyazigosterphp3yaziid=22787
Eri im tarihi 06012009
23 nternet Facebook istatistiksel bilgiler
httpwwwinsidefacebookcom20090107facebook-growth-continuing-surpasses-150-
million-monthly-active-users Eri im tarihi 06012009
24 nternet Peter Thiel Facebook haberleri
httpwwwbusinessweekcomtechnologycontentmar2009tc2009031_743025htm Eri im
tarihi 06012009
25 nternet Blog httptrwikipediaorgwikiBlog Eri im tarihi 13022009
26 nternet Technorati httptechnoratimediacom Eri im tarihi 13022009
27 nternet Blog ara t rmas httpwwwmmistanbulcommakaletitlebloglarin-satin-alma-
kararlarina-etkisi-uzerine-bir-arastirma Eri im tarihi 13022009
28 nternet Wiki nedir httpyunushacettepeedutr~b0343579baglantilerwikinedirhtm
Eri im tarihi 13022009
29 nternet nternette wikinin yeri
httpogrencihacettepeedutr~besstindexphp20080603internette-wikinin-yeri Eri im
tarihi 14022009
30 Bergstedt S Wiegreffe S Wittmann J Moller D Content Management Systems and e-
Learning-Systems
A Symbiosis Proceedings of the The 3rd IEEE International Conference
on Advanced Learning Technologies (ICALT 03)
31 nternet ccedilerik Youmlnetim Sistemleri
httptrwikipediaorgwikiC4B0C3A7erik_yC3B6netim_sistemi Eri im tarihi
17022009
32 nternet ccedilerik Youmlnetim Sistemleri httpwwwmsxlabsorgforuminternet-bilgisayar-
dunyasi22262-icerik-yonetim-sistemi-cms-content-management-systemhtml Eri im tarihi
17022009
33 nternet Web 20 Tasar m Araccedillar httpwwweburhancomhazir-web-20-tasarim-
araclari Eri im tarihi 06022009
92
34 nternet Tasar m rehberi httpwwwhasanyalcincomweb-20-tasarim-rehberi-yansima-
ikon-ve-flaslarref=GuzelsTV Eri im tarihi 06022009
35 nternet AJAX kaynak makalesi
httpadaptivepathcompublicationsessaysarchives000385php Eri im tarihi 06022009
36 Keith J Bulletproof Ajax New Riders yay nc l k Sayfa 3 2007
37 Zakas N C McPeak J Fawcett J Professional Ajax 2nd Edition Wiley Publishing Inc
Sayfalar 5-18 2007
38 Gehtland J Galbraith B Almaer D Pragmatic Ajax A Web 20 Primer The Pragmatic
Programmers LLC sf1 2005
39 Babin L Beginning Ajax with PHP From Novice to Professional Apress Yay nc l k
Sayfa 6 2007
40 Crane D B beault B Sonneveld J Goddard T Gray C Venkataraman R Ve Walker J
Ajax in Practice Manning Publications Co Sayfalar 56 2007
41 Eichorn J Understanding AJAX Using JavaScript to Create Rich Internet Applications
August 11 2006 Sayfalar5-50
42 Ballard P SAMS Teach Yourself Ajax in 10 Minutes Sayfalar 6-78 28 Nisan 2006
43 nternet httpwwwipucuwebtraspders17php Eri im tarihi
44 Ullman C Dykes L Beginnig AJAX Wiley Publishing Inc Sayfa 44-100 2007
45 Zakas N C McPeak J Fawcett J Professional Ajax Wrox Press Chapter 2 Ajax
Basics Ajax Communication Techniques 2006
46 nternet Cross-Browser (Ccedilapraz Taray c Deste i) httpblogceyhunaksancomcross-
browser-capraz-tarayici-destegi Eri im 11032009
47 nternet
httpwwwyazgelistirnetviewtopicphpp=160ampsid=a49d3c26dd8e14e02e65bb222d6bcc39
Eri im 31032009
48 Jacobi J Fallows J R Pro JSF and Ajax Building Rich Internet Components Apress
Sayfa 175 2006
49 Schutta N T Asleson R Pro Ajax and Java Apress Sayfa 10 2006
50 Lauriat S M Ajax Architecture and Best Practices Pearson Education Inc Sayfa 25
2008
51 Powers S Adding Ajax OReilly yay nc l k June 01 2007
52 nternet Asenkron ve Senkron Meselesi httpAJAX-trcomasenkron-ve-senkron-meselesi
Eri im tarihi 02112008
53 Holzner S Ajax For Dummies Wiley Publishing Inc sf 40 2006
93
54 nternet httpwwwecma-internationalorgpublicationsfilesECMA-STEcma-262pdf
Eri im tarihi 06032009
55 Darie C Brinzarea B Chereche -To a F Bucica M AJAX and PHP Building
Responsive Web Applications Packt Publishing Sayfa42 2006
56 Olson S D Ajax on Java OReilly Yay nc l k Chapter 2 February 23 2007
57 nternet httpiibferciyesedutrggwebjavascriptpdf Eri im tarihi 06032009
58 nternet httpwwwmutasyonnetkitaplarasp hakk oumlcal javascript ders notu sf8 Eri im
tarihi 06032009
59 nternet httpwwwbilgisayarogrencomjava5doc Eri im tarihi 06032009
60 Asleson R Schutta N T Foundations of Ajax 2006 sf29
61 Wells C Securing Ajax Applications O Reilly Media Inc sf86 July 2006
62 nternet httpwwww3schoolscomdomdom_introasp Eri im tarihi 19032009
63 nternet httpwwww3orgTRREC-DOM-Level-1introductionhtml Eri im tarihi
19032009
64 nternet httpwwwberkerpeksagcomblogdom-document-object-model-belge-nesne-
modeli Eri im tarihi 19032009
65 nternet httpwwwrssnedircomxml_nedirphp Eri im tarihi 19032009
66 Jacobs S Beginning XML with DOM and Ajax From Novice to Professional Apress
Yay nc l k sf2631 2006
67 nternet
httpwwwcclubmetuedutrnenedirXML+(Extensible+Markup+Language)+Nedir3F
Eri im tarihi 20032009
68 nternet httpbelgelerorgelkitabixmldoc-howto_structhtml Eri im tarihi 20032009
69 nternet httpwwwverivizyoncomdetailaspcid=149 Eri im tarihi 20032009
70 nternet httpwwwbilgisayardershanesicomxml1htm Eri im tarihi 21032009
71 Johnson D White A Charland A ENTERPRISE AJAX Strategies for Building High
Performance Web Applications Prentice Hall Yay nc l k Sayfa 108 2008
72 nternet httpwwww3orgTRxhtml1dtds Eri im tarihi 01042009
73 nternet httpwwwcsharpnedircommakalegosteraspMId=51 52 Eri im tarihi
01042009
74 nternet httpofficemicrosoftcomtr-trinfopathHP010967301055aspx Eri im tarihi
01042009
75 nternet
httpwwwkodpaylascomviewtopicphpt=959ampsid=e5167bdea935943ed9bbdc91ee218c53
Eri im tarihi 01042009
94
76 nternet httpwwww3schoolscomXhtml Eri im tarihi 02042009
77 nternet httpwwwzvonorgxxlXMLTutorialOutput_turexample6html Eri im tarihi
02042009
78 nternet httpwwwbidbituedutrd=837 Eri im tarihi 03042009
79 nternet httpwwwcssnedircom Eri im tarihi 03042009
80 nternet httptrwikipediaorgwikiXSLT Eri im tarihi 03042009
81 nternet httpwwwbilisim-kulubucomsozluksozlukphpe=XSLT Eri im tarihi
08042009
82 nternet httpwwwsanalkursnetadobe-flex-nedir--1081html Eri im tarihi 10042009
83 nternet httpwwwadobecomtrproductsflex Eri im tarihi 11042009
84 nternet httpwwwtrflexcomp=4 Eri im tarihi 11042009
85 Oumlzer Z Varol A Web de Ajax Tekni inin Bant Geni lik Optimizasyonuna Etkisi
Bilimde Modern Youmlntemler Sempozyumu 2008
86 nternet httptrwikipediaorgwikiAJAX(programlama) Eri im tarihi 01062009
87 nternet httpajax-trcomajaxi-anlamak Eri im tarihi 01062009
95
OumlZGECcedilM
Zeynep OumlZER AYDO MU
zeynep_ozermsncom
F rat Uumlniversitesi Teknik E itim Fakuumlltesi
Elektronik Bilgisayar E itimi Boumlluumlmuuml
ELAZI
1983 y l nda Elaz da do du lk orta ve lise ouml renimini Elaz da tamamlad ktan
sonra 2002 y l nda F rat Uumlniversitesi Teknik E itim Fakuumlltesi Elektronik Bilgisayar E itimi
Bilgisayar Ouml retmenli i Boumlluumlmuuml nuuml kazand 2006 y l nda bu boumlluumlmden mezun oldu 2006
y l nda F rat Uumlniversitesi Fen Bilimleri Enstituumlsuuml Elektronik Bilgisayar E itimi Ana Bilim Dal
Bilgisayar Sistemleri Bilim Dal nda yuumlksek lisans e itimine ba lad 2007 y l ubat ay nda
Elaz n Karakoccedilan ilccedilesinin Yenice koumlyuumlnde h J Kd Uumlt m Mahir Oumlzdemir lkouml retim
Okulu nda Bilgisayar Ouml retmeni olarak goumlreve ba lad uan Elaz Korgeneral Hulusi Say n
Lisesi nde Bilgisayar Ouml retmeni olarak goumlrevini suumlrduumlrmektedir Yabanc dili ngilizce dir
Fatih AYDO MU ile evlidir
96
EK
Katalog ccedilal mas n n uygulama dosyas olan catamxml kullanmxml ve
imagepagemxml dosyalar n n kaynak kodlar a a daki gibidir
Catamxml
ltxml version=10 encoding=utf-8gt
ltmxApplication xmlnsmx=httpwwwadobecom2006mxml
layout=absolute
xmlnscontrols=qscontrols
backgroundColor=FFFFFF
creationComplete=init() color=FFFFFF xmlnslocal= xmlnscomp=comp
horizontalScrollPolicy=off verticalScrollPolicy=off borderColor=050505 borderStyle=solid
borderThickness=2gt
ltmxStyle source=stylecss gt
ltmxScriptgt
lt[CDATA[
import mxutilsStringUtil
import mxrpcsoapLoadEvent
import mxcontrolsAlert
import mxrpceventsFaultEvent
import qscontrolsFlexBook
import qscontrolsflexBookClassesFlexBookPage
import qscontrolsflexBookClassesFlexBookEvent
import qscontrolsflexBookClassesWBookPageImpl
import qscachingContentCache
import mxrpceventsResultEvent
import mxrpchttpHTTPService
import mxcoreUIComponent
import mxmanagersPopUpManager
import compResimSec
import Kullan
import mxcoreScrollPolicy
import mxcollectionsArrayCollection
private var aXML
[Bindable]
private var resimlerArrayCollectioncomboresim
97
private var dataSetHTTPService
private var resimdiziArray=new Array()
private var zoomYapBoolean=false
private function init()void
maskex=0
maskey=0
maskewidth=applicationwidth2
maskeheight=applicationheight-40
addEventListener(MouseEventMOUSE_MOVEmaskele)
addEventListener(tamam sayfa_secildi)
dataSet = new HTTPService()
dataSeturl = (dataimagesxml)
dataSetresultFormat = e4x
dataSetsend()
dataSetaddEventListener(FaultEventFAULT onFault)
dataSetaddEventListener(ResultEventRESULT onResult)
var wNumber=new Number
var hNumber=new Number
w=Applicationapplicationwidth
h=Applicationapplicationheight
bookwidth=w
bookheight=h-40
yuklemevisible=false
yuklemesource=assetsloadinggif
yuklemeaddEventListener(EventCOMPLETEyukleme_yuklendi)
private function yukleme_yuklendi(eventEvent)void
yuklemex=(applicationwidth2)-100
yuklemey=(applicationheight-40)2
private function maskele(eMouseEvent)void
if(zoomYap)
98
if((mouseXgt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) )
maskex=0
img2visible=false
img1visible=true
img1x=(applicationwidth2)-mouseX
img1y=-1mouseY
else if((mouseXlt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) )
maskex=applicationwidth2
img1visible=false
img2visible=true
img2x=-1mouseX
img2y=-1mouseY
maskex=mouseX
maskey=mouseY
private function onFault(eEvent)void
trace(e)
private function onResult(eResultEvent)void
a=new XML(eresult)
bookcontent = dataSetlastResultimage
bookaddEventListener(FlexBookEventTURN_STARTloadContent)
bookaddEventListener(FlexBookEventTURN_ENDloadContent)
private function sayfa_secildi(eventResimSec)void
99
sayfatext=eventyeniResim
git()
mxcontrolsAlertshow(sseventyeniResim)
private function loadContent(eventFlexBookEvent)void
setGorunum()
var pageImagePage = ImagePage(eventrenderer)
pageload()
sayfatext=(bookcurrentPageIndex2)toString()
resimdizi[bookcurrentPageIndex]=pagethumbsource
mxcontrolsAlertshow(bookcurrentPageIndextoString())
private function buyuk1_yuklendi(eventEvent)void
yuklemevisible=false
img1width=applicationwidth
img1height=(applicationheight-40)2
img1x=0
img1y=0
private function buyuk2_yuklendi(eventEvent)void
yuklemevisible=false
img2width=applicationwidth
img2height=(applicationheight-40)2
img2x=0
img2y=0
private function tumsayfalar()void
Kullanshow_window(thisfalseapplicationwidth-10(applicationheight-60)2)
customMoveend()
customMoveplay()
private function zoom()void
if(zoomerlabel==+)
zoomerlabel=-
if(img2source=aimage[bookcurrentPageIndex2]zoom)
yuklemevisible=true
img2addEventListener(EventCOMPLETEbuyuk2_yuklendi)
100
img2source=aimage[bookcurrentPageIndex2]zoom
if(aimagelength()gtbookcurrentPageIndex2+1)
img1addEventListener(EventCOMPLETEbuyuk1_yuklendi)
img1source=aimage[bookcurrentPageIndex2+1]zoom
zoomYap=true
else if(zoomerlabel==-)
zoomerlabel=+
setGorunum()
private function setGorunum()void
zoomYap=false
zoomerlabel=+
img1visible=false
img2visible=false
private function next()void
mxcontrolsAlertshow(bookcurrentPageIndextoString() bookpageCounttoString())
if(bookcurrentPageIndex+1 lt bookpageCount)
mxcontrolsAlertshow(--resimdizi[bookcurrentPageIndex])
setGorunum()
bookturnToPage(bookcurrentPageIndex + 1)
private function previous()void
if(bookcurrentPageIndex gt 0)
setGorunum()
bookturnToPage(bookcurrentPageIndex -1)
private function git()void
var s_nouint = new uint
s_no=Mathfloor(uint(sayfatext)2)
101
if(s_nogt0 ampamp s_noltbookpageCount)
bookturnToPage(s_no)
setGorunum()
]]gt
ltmxScriptgt
lt-- 614x453 --gt
ltmxParallel id=customMove target=Kullangt
ltmxMove duration=2000 xTo=(100) 2 yTo=(200) 2 gt
ltmxWipeRight duration=2000 gt
ltmxParallelgt
ltmxVBoxgt
ltmxHBoxgt
ltcontrolsFlexBook id=book width=100 height=100 x=0 y=0 horizontalCenter=0
verticalCenter=0
animateCurrentPageIndex=true
showCornerTease=false
edgeAndCornerSize=150
itemRenderer=ImagePage
animatePagesOnTurn=true
itemSize=halfPage cornerRadius=0 themeColor=1D99E8
backgroundAlpha=10 alpha=10gt
ltcontrolsFlexBookgt
ltmxHBoxgt
ltmxHBox height=30 width=100 verticalAlign=middle
horizontalAlign=center color=B65F5F backgroundColor=121313gt
ltmxSpacer width=10gt
ltmxSpacergt
ltmxTextInput borderColor=FFFFFF width=34 height=24 id=sayfa
color=FFFFFF fontSize=11 text=0 alpha=001gt
ltmxButton click=git() color=ffffff fontWeight=bold fontSize=11
width=114 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label=Sayfaya Git themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxSpacer width=60gt
102
ltmxSpacergt
ltmxButton click=previous() color=ffffff fontWeight=bold fontSize=11
width=70 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label=Geri themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxButton click=next() color=ffffff fontWeight=bold fontSize=11
width=70 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label= leri themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxButton click=tumsayfalar() color=ffffff fontWeight=bold fontSize=11
width=134 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label=Tuumlm Sayfalar themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxButton id=zoomer click=zoom() color=ffffff fontWeight=bold
fontSize=14 width=44 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00
00] label=+ themeColor=EDF2F5 textRollOverColor=EDD617 fontFamily=Arialgt
ltmxSpacer width=5gt
ltmxHBoxgt
ltmxSpacer height=10gt
ltmxVBoxgt
ltmxCanvas id=maske x=224 y=168 width=200 height=168
verticalScrollPolicy=off horizontalScrollPolicy=off borderThickness=0 borderColor=000000
borderStyle=solidgt
ltmxImage id=img1 x=0 y=0gt
ltmxImage id=img2 x=40 y=0gt
ltmxCanvasgt
ltmxImage x=10 y=144 id=yuklemegt
ltmxApplicationgt
103
Kullanmxml
ltxml version=10 encoding=utf-8gt
ltmxTitleWindow xmlns= xmlnsmx=httpwwwadobecom2006mxml
creationComplete=on_creation_complete()
styleName=popupWindow showCloseButton=true
paddingBottom=0 paddingTop=0 paddingLeft=0 paddingRight=0
height=200 width=100 alpha=09 borderAlpha=1gt
ltmxScriptgt
lt[CDATA[
import mxcontrolsAlert
import mxcollectionsArrayCollection
import mxrpceventsResultEvent
[Bindable]
private var sayfalarArrayCollection
[Bindable]
private var introString =
import mxeventsCloseEvent
import mxmanagersPopUpManager
import mxcoreApplication
import mxeventsDragEvent
import mxmanagersDragManager
import mxcoreDragSource
import compResimSec
import koraxcontrolsColorPickerResimSecEvent
private var m_parentDisplayObject = null
private function myResult(eventResultEvent)void
sayfalar = eventresultsayfalarsayfa
private function sayfaac(eventEvent)void
wndwith_last_preved()
mxcontrolsAlertshow(myTileselectedItemgittoString())
uyeler = eventresultsayfalarsayfa
104
private function on_creation_complete()void
myHTTPsend()
private static var wndKullan = null
public static function show_window(parentDisplayObject
modalBooleanwNumberhNumber)void
if (wnd == null)
wnd = new Kullan()
wndaddEventListener(mxeventsCloseEventCLOSE on_close_event)
wndm_parent = parent
if (wndisPopUp)
PopUpManageraddPopUp(wnd DisplayObject(Applicationapplication) modal)
PopUpManagercenterPopUp(wnd)
else
PopUpManagerbringToFront(wnd)
wndstart_init()
wndx=0
wndy=0
wndwidth=w
wndheight=h
wndmyTilewidth=w-20
wndmyTileheight=h-40
private function with_last_preved()void
if (m_parent = null) m_parentdispatchEvent(new ResimSec(tamam
myTileselectedItemgit))
private static function on_close_event(eventCloseEvent)void
if (wnd == null) return
PopUpManagerremovePopUp(wnd)
wnd = null
105
private function yardim()void
Kullanshow_window(thisfalse)
]]gt
ltmxScriptgt
ltmxHTTPService id=myHTTP url=dataonizlexml
result=myResult(event) showBusyCursor=truegt
ltmxTileList id=myTile dataProvider=sayfalar change=sayfaac(event)
itemRenderer=compUyeSayfasi width=100 height=147 rowHeight=110 columnWidth=120
rowCount=2gt
ltmxTitleWindowgt
106
ImagePagemxml
ltxml version=10 encoding=utf-8gt
ltmxCanvas xmlnsmx=httpwwwadobecom2006mxml width=600 height=400
xmlnscontrols=qscontrols
backgroundColor=FFFFFF horizontalScrollPolicy=off verticalScrollPolicy=offgt
ltmxstatesgt
ltmxState name=loadingStategt
ltmxAddChild position=lastChildgt
ltmxImage id=loadingContent horizontalCenter=0 verticalCenter=-6
source=assetsloadinggif gt
ltmxAddChildgt
ltmxStategt
ltmxstatesgt
ltmxtransitionsgt
ltmxTransition fromState= toState=loadingStategt
ltmxFade alphaTo=1 target=loadingContent duration=1000gt
ltmxTransitiongt
ltmxTransition toState= fromState=loadingStategt
ltmxSequencegt
ltmxFade alphaTo=0 target=loadingContent duration=1000gt
ltmxRemoveChildAction target=loadingContent gt
ltmxSequencegt
ltmxTransitiongt
ltmxtransitionsgt
ltmxScriptgt
lt[CDATA[
import mxcontrolsAlert
private var _loadedBoolean = false
public function load()void
if(_loaded)
return
_loaded = true
fullsource = datasourcetoString()
mxcontrolsAlertshow (fullsource)
107
currentState = loadingState
]]gt
ltmxScriptgt
ltcontrolsSuperImage left=0 right=0 top=0 bottom=0 id=thumb
source=datathumbtoString() gt
ltcontrolsSuperImage left=0 right=0 top=0 bottom=0 id=full complete=currentState = gt
ltmxCanvasgt
This document was created with Win2PDF available at httpwwwwin2pdfcomThe unregistered version of Win2PDF is for evaluation or non-commercial use onlyThis page will not be added after purchasing Win2PDF
I
Ccedil NDEK LER
TE EKKUumlR
Ccedil NDEK LER I
EK LLER L STES
IV
TABLO L STES
VI
KISALTMALAR L STES
VII
OumlZET IX
ABSTRACT X
1 G R
1
11 Tez Ccedilal mas n n Amac
1
12 Tez Ccedilal mas n n Kapsam
1
2 WEB 20 AKIMI 2
21 Web 20 Platformunda Oumlne Ccedil kan Popuumller Uygulamalar 4
211 Double Click - Google AdSense 4
212 Flickr 5
213 BitTorrent 5
214 Sosyal A Siteleri 8
2141 Facebook 8
215 Web Guumlnluumlkler 11
216 Wiki 11
217 ccedilerik Youmlnetim Sistemleri 13
218 Etiketleme (Folksonomi) 14
22 Web 20 da Site Tasar m nda Dikkat Ccedileken Oumlzellikler 14
221 Logolar 14
222 Butonlar 15
223 Arka Planlar 15
224 Ccedilerccedileveler 16
225 Menuumller 16
3 AJAX 17
31 Google Suggest 18
32 Google Maps 18
33 Neden AJAX 19
34 AJAX Metodolojisi 23
341 HTTP Requests Nesnesi 24
II
342 HTTP Request Nesnesinin Oumlzellikleri ve Youmlntemleri 25
343 HTTP Response Nesnesi 26
35 AJAX leti im Teknikleri 27
351 XMLHttp Requests (XHR) Nesnesi 27
36 AJAX Olu turan Bile enler 34
361 E zamanl Olmayan leti im 34
362 E zamanl leti im 35
363 Javascript 36
37 Basit Bir AJAX Oumlrne i 49
38 XML 51
381 Oumlrnek XML Belgesi Olu turma 53
382 XML Dokuumlman n n Yap s
55
383 XML nin Soumlz Dizim Kurallar
67
384 XML Dokuumlmanlar n n leyi i ve Sunumu 69
39 AJAX Prensipleri 69
310 AJAX Kuumltuumlphaneleri ve Araccedillar
70
3101 Prototype 70
3102 AJAX Gear Toolkit 71
3103 AspNet Ajax 71
3104 Dojo Toolkit 71
3105 MochiKit 71
3106 PHPLiveX 71
3107 Sardalya (Sarmal Dinamik Altyap s ) 72
3108 Sajax 72
3109 Solvent 72
31010 AjaxAC 72
31011 Xajax 72
31012 Scriptaculous 73
311 AJAX Uygulamalar nda Kullan lan Di er Teknolojiler 73
3111 HTMLXHTML 73
3112 CSS 73
3113 XSLT 74
4 FLEX 75
41 Adobereg Flexreg 3 Kurulumu ccedilin Gereken Minimum Sistem Gereksinimleri 76
411 Windows ccedilin Flex Builder 3 (Standart ve Profesyonel) 76
III
412 Macintosh ccedilin Flex Bu lder 3 (Standart ve Profesyonel) 77
5 CcedilEVR M Ccedil KATALOG TASARIMI F rat Uumlniversitesi Oumlrne i 78
6 SONUCcedil 88
61 Oumlneriler 89
KAYNAKLAR 90
OumlZGECcedilM
95
EK 96
IV
EK LLER L STES
Sayfa
ekil 21 Web 20 kavram
2
ekil 22 Web 20 ak m nda oumlne ccedil kan uygulamalar 3
ekil 23 Doubleclick ve Google Adsense sitelerinin logolar 4
ekil 24 Flickr sitesinin logosu 5
ekil 25 ccedilerik da t m sitelerinde bittorrent site logosu 5
ekil 26 Torrent program n n anasayfas
6
ekil 27 Torrent program n n arayuumlzuuml 7
ekil 28 Facebook kullan c say s n n aylara goumlre da l m grafi i 9
ekil 29 Aylara goumlre facebook ve myspace site analizi 10
ekil 210 Vikipedi oumlzguumlr ansiklopedi sitesinin logosu 12
ekil 211 Oumlrnek etiket bulutu 14
ekil 212 Yans mal logo oumlrne i 15
ekil 213 Web 20 da buton oumlrnekleri 15
ekil 214 Web 20 da arka plan oumlrnekleri 15
ekil 215 Web 20 da ccedilerccedileve yap s na oumlrnek 16
ekil 216 Web 20 da menuuml oumlrne i 16
ekil 31 Jesse James Garrett in makale goumlruumlntuumlsuuml 17
ekil 32 Google Suggest ekran goumlruumlntuumlsuuml 18
ekil 33 Google Maps ekran goumlruumlntuumlsuuml 18
ekil 34 Geleneksel sunucularda istekcevap modeli 20
ekil 35 AJAX n asenkron istekcevap modeli 20
ekil 36 Klasik Web uygulamalar nda t kla-bekle doumlnguumlsuuml 21
ekil 37 T kla-T kla interaktif AJAX uygulamas
21
ekil 38 Geleneksel Web ileti im modeli ile AJAX ileti im modeli 21
ekil 39 Web uygulamas ndaki cevap ak
22
ekil 310 AJAX uygulamalar ndaki istek ak
22
ekil 311 Normal Web ile AJAX uygulamalar n n kar la t rmas
23
ekil 312 Geleneksel istekcevap (requestresponse) youmlntemi 23
ekil 313 Standart AJAX etkile imi 32
ekil 314 E zamanl olmayan ileti im modeli 35
ekil 315 E zamanl ileti im modeli 36
ekil 316 Javascript nesneleri 44
V
ekil 317 DOM a accedil yap s
46
ekil 318 AJAX oumlrne i 49
ekil 319 sonuchtml sayfas n n ekran ccedil kt s
51
ekil 320 denemexml dosyas n n a accedil yap s
53
ekil 321 XML belgesi 55
ekil 322 Oumlrnek bir XML dokuumlman yap s
56
ekil 323 denemexsd nin ekran goumlruumlntuumlsuuml 65
ekil 41 Flex uygulamalar n n i lem ak emas
75
ekil 42 Flex arayuumlzuuml 76
ekil 51 Kodlama algoritmas
79
ekil 52 Katalo un ilk sayfas n n ekran goumlruumlntuumlsuuml 81
ekil 53 Katalo un 23 sayfa goumlruumlntuumlsuuml 82
ekil 54 Katalo un sayfa ccedilevirme efektli goumlruumlntuumlsuuml 83
ekil 55 Katalo un navigasyon ccedilubu u 84
ekil 56 Tuumlm Sayfalar duuml mesi t kland ndaki ekran goumlruumlntuumlsuuml 85
ekil 57 Zoom oumlzelli i 86
VI
TABLO L STES
Tablo 21 Facebook ve myspace in buumlyuumlme tablosu 10
Tablo 31 Standart XHR nesnesinin oumlzellikleri 30
Tablo 32 Standart XHR nesnesinin fonksiyonlar
31
Tablo 33 De i ken tuumlrleri 41
Tablo 34 leccediller ve goumlrevleri 41
Tablo 35 kili i leccediller 42
Tablo 36 DTD karakterleri ve accedil klamalar
61
Tablo 37 DTD ccedilindeki niteliklerin de er ve accedil klamalar
62
Tablo 38 Varsay lan de erler ve accedil klamalar
62
Tablo 39 XML Belgelerinde kullan lan varl k bildirimleri 67
VII
KISALTMALAR L STES
AJAX Asenkron JavaScript ve XML
API Application Programming Interface (Uygulama Program Arayuumlzuuml)
ASP Active Server Pages (Aktif Sunucu Sayfalar )
CDNs Content Distributed Networks ( ccedilerik Da t c A lar)
CMS Content Management System ( ccedilerik Youmlnetim Sistemi)
CGI Common Gateway Interface (Genel Geccedili Arayuumlzuuml)
CSS Cascading Style Sheets (Basamakl Stil Sayfalar )
DFA DART for Advertisers
DOM Document Object Model (Doumlkuumlman Nesne Modeli)
DTD The Document Type Definition (Dokuumlman Tipi Tan mlama)
DWR Direct Web Remoting ( Direkt Web Eri imi)
ECMA European Computer Manufacturers Association (Avrupa Bilgisayar
Uumlreticileri Birli i)
GOumlBL GNU Oumlzguumlr Belgeleme Lisans
HTML Hyper Text Markup Language (Yard ml Metin aretleme Dili)
HTTP Hypertext Transfer Protocol (Yard ml Metin Aktar m Protokoluuml)
IDE Integrated Development Environment (Tuumlmle ik Geli tirme Ortam )
JSP Java Server Pages (Java sunucu Sayfalar)
LAN Local Area Network (Yerel Alan A )
MIYS E-ticaret ve Muuml teri li kileri Youmlnetim Sistemleri
MSN Microsoft Network
OOP Object Oriented Programming (Nesne Youmlnelimli Programlama)
PHP Hypertext Preprocessor (Yard ml Metin Oumlni leme)
PIs Processing Instructions ( lem Accedil klamalar )
RIA Rich Internet Applications (Zengin nternet Uygulamalar )
VIII
RPC Remote Procedure Call (Uzaktan Yordam Ccedila rma)
SAX Simple API for XML (XML iccedilin Basit API)
WIKI What I Know is (Ne Biliyorsam)
W3C World Wide Web Consortium (Duumlnya Ccedilap nda A Birli i)
XML eXtensible Markup Language (Geli tirilebilir aretleme Dili)
XHR XMLHttpRequest
XHTML Extensible HyperText Markup Language (Geli tirilebilir Yard ml Metin
aretleme Dili)
XSD eXtensible Schema Document(Geni letilebilir ema Dokuumlman )
XSL Extensible Stylesheet Language (Geli tirilebilir Biccedilimlendirme Dili)
XSLT Extensible Stylesheet Language Transformations (Geli tirilebilir
Biccedilimlendirme Dil Doumlnuuml uumlmleri)
IX
OumlZET
Yuumlksek Lisans Tezi
AJAX TEKNOLOJ S KULLANARAK CcedilEVR M Ccedil
KATALOG TASARIMI
Zeynep OumlZER AYDO MU
F rat Uumlniversitesi
Fen Bilimleri Enstituumlsuuml
Elektronik-Bilgisayar E itimi Anabilim Dal
2009 Sayfa 107
Gerccedilekle tirilmi olan bu uygulama kapsam nda Flex program ve Web 20 n
ccedilekirde ini olu turan AJAX (Asynchronous JavaScript and XML) teknolojisi kullan larak F rat
Uumlniversitesini tan tan kolayl kla guumlncellenebilen Zengin nternet Uygulamalar na (RIA- Rich
Internet Applications) oumlrnek bir ccedilevrimiccedili katalog tasar m ve gerccedilekle tirimi yap lm t r
Projenin gerccedilekle tirim a amalar nda kullan lan teknolojilerin ve izlenen youmlntemlerin
anlat mlar n iccedileren bir yol haritas olu turulmu tur
Anahtar soumlzcuumlkler AJAX RIA Web 20 ccedilevrimiccedili katalog e-dergi
X
ABSTRACT
Master Thes s
ONLINE CATALOG DESIGN USING AJAX TECHNOLOGY
Zeynep OumlZER AYDO MU
F rat University
Graduate School of Natural and Applied Sciences
Department of Electronic and Computer Education
2009 Page 107
Embracing in this comparison F rat University is introduced by using Flex program and
AJAX (Asynchronous JavaScript and XML) technology which forms Web 20 Also RIA (Rich
Internet Applications) is easily renowated which is instance for online catalog design A road
map including realization of the project and tracing methods are illustrated
Keywords AJAX RIA Web 20 online catalog e-journal
1
1 G R
Web in geli im suumlrecinde ccedile itli youmlntemler kullan l r Bu youmlntemlerin farkl amaccedillara
hizmet etmeye ba lamas yla Web te ak mlar meydana gelmi tir Bu ak mlardan ilki Web 10
ak m olarak adland r l r Bu ak mda kullan c lar bilgilendirmeye youmlnelik iccedilerik sunumu
yap lmaktad r [1]
Web 20 ak m ise internet sitelerinin bilgi bar na olmas ndan i leyen platformlara
ta nmas
olarak tan mlanabilir Web 20 RIA (Rich Internet Applications- Zengin nternet
Uygulamalar ) i lemleri internet sunucu mimarisi temeline dayanmaktad r RIA da beraberinde
kulland AJAX Flex gibi teknolojiler uumlzerine kuruludur [1]
Baz yeni teknolojilerle de i en World Wide Web duumlnyas Web 20 RIA AJAX
(Asynchronous JavaScript and XML- E zamanl olmayan JavaScript ve XML) terimleriyle izah
edilmektedir
11 Tez Ccedilal mas n n Amac
Bu tez ccedilal mas yla Web 20 n ccedilekirde ini olu turan AJAX (Asynchronous JavaScript
and XML) teknolojisi ve Flex program kullan larak F rat Uumlniversitesini tan tan kolayl kla
guumlncellenebilen Zengin nternet Uygulamalar na (RIA-Rich Internet Applications) oumlrnek bir
ccedilevrimiccedili (online) katalog tasar m yap lmas hedeflenmi tir Projenin gerccedilekle tirim
a amalar nda kullan lan teknolojilerin ve izlenen youmlntemlerin anlat mlar n iccedileren bir yol
haritas olu turulmas amaccedillanm t r Bu tez ccedilal mas sonucunda geli tirilen yaz l mla kolay
guumlncellenebilen katalog haz rlanmas na katk sa lanmas amaccedillanm t r
12 Tez Ccedilal mas n n Kapsam
Bu tez ccedilal mas 6 boumlluumlmden olu mu tur 1 Boumlluumlm giri i olu turmaktad r 2Boumlluumlmde
Web 20 ak m incelenecektir 3 Boumlluumlmde AJAX teknolojisi accedil klanacakt r 4 Boumlluumlmde
yaz l m gerccedilekle tirme arac olarak kullan lan Flex tan t lacakt r 5 Boumlluumlmde gerccedilekle tirilmi
ccedilevrimiccedili katalog hakk nda bilgi verilecektir 6 Boumlluumlmde ccedilal man n sonuccedillar
ve gelece e
youmlnelik oumlneriler bulunmaktad r
2
2 WEB 20 AKIMI
Ccedilo u teknolojilerde oldu u gibi yenilik aray ihtiyaccediltan do ar Yeni Web ak mlar n n
do u u da 2001 y l ndaki tuumlm duumlnyay etkileyen kriz sonras nda iflas eden irketlerin yeniden
aya a kalkma ccedilabalar n n bir sonucu olarak ortaya ccedil km t r [2 3] Web 20 ak m 2005 te ilk
kez OReilly ve MediaLive International aras nda gerccedilekle en bir beyin f rt nas s ras nda
uumlretilmi bir kavramd r [3] Web 20 kavram World Wide Web teknolojisinde kullan lan
de i en ve geli en e ilimlere verilen bir ad olarak da tan mlanabilmektedir
ekil 21 Web 20 kavram
[4]
Web 20 kavram ekil 21 de goumlsterildi i uumlzere Web bir uygulama platformu ve sosyal
etkile imli olma oumlzelliklerini bar nd r r Ccedilevrimiccedili hayat n ba lang c ve devam n temsil eder
Say sal ortamda kendini ifade etme imkacircn sunar Kullan c lar (oku-yaz oumlzelli i ile) Web te
kat l mc kimlik kazan r
Asl nda Web 20 ortam n 1964 y l nda McLuhan Global Koumly terimini kullanarak
ortaya atm t r McLuhan Global Koumlyuuml gelecekte ileri teknolojiye geccedililmesiyle ve toplumlar
aras nda s n rlar n kalkmas yla duumlnyan n her kouml esinde teknolojiyi kullanan herkesin co rafi
s n rlar ve s n rlamalar olmaks z n diledikleri ki iyle ileti im kurabilecekleri
haberle ebilecekleri ve payla mda bulunabilecekleri bir ortam olarak tan mlam t r [5]
Mc Luhan n n tan m ndan guumlnuumlmuumlze kadar geccedilen suumlreccedil iccedilinde kullan c ihtiyaccedillar
da
de i im ve geli im goumlstermi tir Bu ihtiyaccedillar kar lamak iccedilin genel olarak internet
uygulamalar n n daha zengin bir arayuumlz ile sunulmas n sa layan uygulamalar Zengin nternet
Uygulamalar ad alt nda k sa zaman oumlnce hayat m za girmi tir
RIA uygulamalar s radan HTML web uygulamalar ile standart masauumlstuuml uygulamalar
aras ndaki bo lu u dolduran bir geli tirme platformudur Web arayuumlzuumlnde basit HTML ile
3
s n rl kalmadan masauumlstuumlndeki zengin goumlrsel ouml eleri program niteli inde kullanabilecek her
tuumlrluuml araccedil RIA konseptini uygulamaktad r [6]
Kullan c lar art k iccedilerik uumlreticilerin s n rlar n kald rarak kullan c n n yan s ra kat l mc
olarak ta nitelendirilerek etkile imli bir rol uumlstlenmi lerdir nternetin bu yeni gereksinimlere
cevap vermesiyle ortaya ccedil kan Web 20 doumlnuuml uumlmuuml hem kullan c say s nda art a neden
olmu tur hem de kullan c lar n iccedilerikleri yani mesajlar olu turdu u ve payla t buumlyuumlk bir
guumlce doumlnuuml muuml tuumlr Bu guumlcuumln oumlnemini ccedilabuk anlayan kurulu lar mimarilerine AJAX da dacirchil
ederek oumlnce arama motorlar n Google Yahoo yu daha sonra MSN yi Hotmail i bloglar
(Myspace Bloggercom Blogcucom gibi) Youtube u Wikileri ve sosyal a sitelerini
(Facebook Twitter Orkut vb) ke fetmi lerdir Bu ke iflerin sonucunda McLuhan n Global
Koumly uumlnuumln 21 Yuumlzy lda tam olarak gerccedilekle ti i soumlylenebilir Bu interaktif siteler sayesinde
ayn anda milyarlarca ki inin rk dil din ya am tarz e itim ya cinsiyet statuuml goumlzetmeksizin
e zamanl payla mda bulunup kendi ccedilevreleri ve ba ka ccedilevrelerle ileti ime geccedilebilmektedirler
ekil22 de goumlsterilen irketler Web 20 ak m nda oumlne ccedil kan sitelerin oumlzellikle ccedilevrimiccedili
faaliyet goumlsteren reklacircm irketleri pazarlama ve ticari irketler perspektifinden bak ld nda da
oumlnemli bir potansiyele sahip kitle ileti im araccedillar olarak goumlruumlluumlr [7]
ekil 22 Web 20 ak m nda oumlne ccedil kan uygulamalar [8]
Kitle ileti im arac olarak kullan labilen bu uygulamalar iccedilin birccedilok geli tirme ortam
mevcuttur Adobe Flex AJAX Java Applet Adobe Flash ve Microsoft Silverlight uygulamalar
en ccedilok bilinen RIA uygulamalar d r A a da da bu uygulamalarla olu turulmu Web 20
platformunda oumlne ccedil kan popuumller uygulama oumlrnekleri incelenecektir [7]
4
21 Web 20 Platformunda Oumlne Ccedil kan Popuumller Uygulamalar
kinci nesil internet hizmeti olarak literatuumlre giren Web 20 ak m yla internet sitelerinin
ccedilehresi de i mi tir nternet siteleri art k masauumlstuuml uygulamalar ile internet uygulamalar
aras nda bir koumlpruuml goumlrevi uumlstlenmi tir A a da bu ak m n popuumller uygulamalar ndan oumlrnekler
bulunmaktad r
211 Double Click - Google AdSense
Google firmas na ait iki uygulama da reklacircm verenlerin ve yay nc lar n web uumlzerinden
reklacircm hizmeti sunmas n sa layan sitelerdir Her reklacircmc n n hedefi tuumlketicilerin isteklerine
uygun ccediloumlzuumlmler sunmakt r Bu ccediloumlzuumlm ise Web 20 la reklacircmlar n profilini de i tirmi tir Art k
istenmeyen kendili inden accedil lan reklacircm pencerelerinin yerini kullan c n n bilgisayar na
yerle tirilmi ccedilerezlerden ccedilekti i bilgilere dayanarak kullan c n n ilgisini ccedilekebilece ini tahmin
etti i rahats z edici olmayan metin ya da resim tabanl
reklacircmlar alm t r
DoubleClick in di er reklacircm firmalar ndan ayr lan youmlnuuml reklacircmc lar iccedilin DART
oumlnerisiyle k saca DFA (DART for Advertisers) ile reklacircm youmlnetimi ve servis ccediloumlzuumlmlerinde
kullan c lar na dijital pazarlama programlar n n tuumlmuumlnuuml kapsayan youmlnetimi kolay daha iyi bir
arayuumlze sahip h zl geni bir arama sistemine sahip de eri artan sitelerin trafik ak n
belirleyen bir ccediloumlzuumlm olmu tur DoubleClick daha ccedilok grafiksel reklacircmlar yay nlamaktad r
Oumlnceleri Web 10 uygulamalar aras nda say lan bu site Web 20 doumlnuuml uumlmuumlnuuml ba ar yla
gerccedilekle tirmi tir [9]
Google AdSense ise web sitesi yay nc lar n n site iccedileri iyle alakal dinamik ve goumlze
batmayan Google reklacircmlar n
web sitelerinde goumlstererek kullan c lar n bu reklacircmlara
t klamalar yla para kazanmalar n sa laman n h zl ve kolay bir yoludur Uumlcretsiz olan bu
program sayesinde her t klama ve goumlsterim iccedilin site sahiplerine oumldeme yap l r [10] Bu
uygulamalar sayesinde Web de daha ak ll bir sisteme do ru youmlnelim ba lam t r
ekil 23 Doubleclick ve Google Adsense sitelerinin logolar [11 12]
5
212 Flickr
Yahoo nun sundu u bir hizmet olan uumlcretsiz foto raf arama ve payla m sitesi Flickr
ayn zamanda web servisi ve ccedilevrimiccedili topluluk platformudur Web 20 n ilk uygulamalar ndan
biridir Foto raf payla m nda en popuumller sitelerin ba nda gelmektedir ccedileri inde yakla k
olarak 3 milyar
a an foto raf bulunmaktad r Yenilikccedili ccedilevrimiccedili topluluk araccedillar foto raflar
etiketlemeye ve s n fland rmaya yard mc olur Bu da popuumllaritesindeki ciddi art n
nedenlerinden biridir
Flickr a imaj yuumlkleyebilmek iccedilin Yahoo dan bir e-mail adresiyle sisteme giri
yap lmal d r Payla lmak istenen foto raflar uumlcretli uumlyelik olmadan her imaj iccedilin 5 Mb l k
s n rlamayla ayda toplam 100 Mb a kadar yuumlkleme yap labilir Sadece foto raf eklemenin
d nda imajlar uumlzerinde duumlzenlemeler yap labilir Belirlenen alanlara notlar eklenebilir
Be enilen foto raflara yorumlar eklenebilir Ccedile itli gruplara uumlye olunup ileti im kurulabilir
Ayr ca API leri sayesinde XML-RPC (Remote Procedure Call- Uzaktan Yordam Ccedila rma)
arabirimi kullanarak flickr sitesindeki foto raflarla ilgili bilgileri proseduumlrler sayesinde XML
format nda al p ayr t rarak ba ka bir programda kullan labilinir Flickr daki blog grup ve
etiketleme alt yap s bu API lere dayanmaktad r [13]
ekil 24 Flickr sitesinin logosu [14]
213 BitTorrent
BitTorrent internet uumlzerinden yuumlksek h zlarla iccedileri in da t ld duumlnya ccedilap nda bir
standartt r Ayr ca 150 milyondan fazla kullan c ya sahip en son p2p (peer to peer) dosya
payla m youmlntemlerinden biridir Di er p2p payla m programlar ndan fark sabit olmayan
ba ms z sunucu tan mlama dosyalar sayesinde sabit bir sunucuya ihtiyaccedil olmaks z n belirli bir
protokol ccedilerccedilevesinde indirme (download) yaparken yuumlkleme (upload) yap lmas na da izin
vererek payla ma devam edebilmesidir [15]
Python programlama diliyle yaz lm bir uygulamad r [15]
ekil 25 ccedilerik da t m sitelerinde bittorrent site logosu [16]
6
Bit Seli olarak da ccedilevirebilece imiz ccedilok h zl bir sistemdir BitTorrent sayesinde
oldukccedila buumlyuumlk boyutlu videolara ses ya da yaz l m dosyalar na daha h zl daha ucuz ve daha
kolay bir ekilde ula labilmeyi sa lar
Guumlnuumlmuumlzde ccedilerik Da t c A lar (Content Distributed Networks-CDNs) guumln geccediltikccedile
popuumllaritesini art rmaktad r Bittorent kullan m n n 2004 te internet te teknik standartlar ve
youmlnetim konusunda yetkili organ olan W3C (World Wide Web Consortium - Duumlnya Ccedilap nda
A Birli i) taraf ndan yap lan bir ccedilal maya goumlre P2P ba lant lar n toplamda 60 n tuumlm
internet trafi inin ise 30 unu a aca tahmin edilmektedir
BitTorrent le dosya transferi yap l rken oumlncelikle bilgisayarda BitTorrent stemci
(Client) yuumlkluuml olmal d r stemci yaz l mlara oumlrnek Flashget Azureus BitTorrent Torrent
ABC LimeWire vb yaz l mlar olabilir ekil 26 ve ekil 27 de en popuumller uygulamalardan
Torrent yaz l m n n kurulum ve arayuumlz oumlrne i goumlruumllmektedir
ekil 26 Torrent program n n anasayfas
7
ekil 27 Torrent program n n arayuumlzuuml
BitTorrent istemciler BitTorrent Protokol uygulamalar n yapar Her istemci bu
protokoluuml kullanarak dosyalar n kullan c lar n BitTorent in kulland protokole sahip
duumlnyadaki tuumlm iccedileriklere h zl ve guumlvenilir bir ekilde eri mesine izin verir stenilen iccedileri in
indirilebilmesi iccedilin gerekli tan mlama bilgilerinin bar nd
torrent uzant l bir dosyaya
ihtiyaccedil vard r Bu torrent dosyalar n ccedile itli duyuru sitelerinden ya da Web den temin edildikten
sonra istemciler yukar da bahsedilen herhangi bir torrent yaz l m kullanarak bu dosyay accedilarlar
ndirme ba lad anda indirilmek istenen dosyay payla an kullan c lar n olu turdu u kuumlccediluumlk
a a (swarm) dacirchil olurlar Bu kuumlccediluumlk a daki her kullan c dosyan n indirdi i boumlluumlmuumlnuuml di er
kullan c larla payla mas gerekir Tuumlm bu i lemleri de takipccedili (tracker) isimli bir sunucu kontrol
eder Yakla k olarak 256 Kb buumlyuumlkluuml uumlndeki bu kuumlccediluumlk boyutlu dosyalara indeksleyici
(indexer) de denmektedir Kuumlccediluumlk bir a
kurulmas iccedilin tuumlm dosyaya sahip en az bir da t c n n
(seeder) olmas gerekir Da t c lar herhangi bir dosyay yuumlkleyen kaynaklard r O dosyan n
tamam n
kendi bilgisayar na indiren her kullan c art k bir da t c
olur Fakat da t c olmak
kullan c lar n insiyatifindedir ndirme i lemi bittikten sonra o dosya payla ma accedil k tutulmazsa
di er kullan c lar da t c dan bu dosyay ccedilekerek indirme i lemini h zland ramazlar Da t c
say s
ne kadar artarsa indirme i lemi o kadar h zl olur ndirme yapan kullan c lara da grup
uumlyeleri (peers) denilmektedir Torrent dosyas n indiren kullan c lar izleyicilere (tracker) dosya
hakk nda bilgi goumlnderirler di er kullan c lar (peers) ise izleyicilere ba lanarak kimde hangi
dosyan n hangi parccedilalar n n oldu unu ouml renirler zleyiciler uumlzerinden kesinlikle dosya transferi
8
gerccedilekle mez sadece kaynak payla l r Hangi kullan c ne kadar dosya ccedilekti ve ne kadar
yuumlkledi gibi istatistiksel bilgileri de bar nd rabilir [16 17]
Sadece indirme i lemi yap p kaynak olmay istemeyen ki ilere leecher (suumlluumlk) denir Bu
anlay a sahip ki iler gruplar iccedilinde ho kar lanmazlar Bir torrent dosyas payla m nda
kaynak (seed) say s s f r ise yani dosyan n tamam na sahip ki iler payla mdan ccedilekilmi lerse
eksik dosyaya sahip buumltuumln uumlyeler (peer) birbirleri aras nda veri al veri i yaparak eksik
parccedilalar indirebilecekleri bir kaynak olmad ndan belli bir yuumlzdesi tamamlanm dosyaya
sahip olarak kal rlar Bu durumda daha oumlnce dosyay indirmi ve dosyan n tamam na sahip olan
bir kullan c
eksik parccedilalar goumlndermek iccedilin dosyay yeniden payla ma accedilabilir (seed eder) Bu
olaya reseed etme denir [18]
214 Sosyal A Siteleri
Sosyal a lar bireyler aras ndaki ki isel veya profesyonel ili kilerin olu turuldu u
duumlzenlendi i a d r [19] Son y llardaki bilgi teknolojilerindeki geli meler sosyal a lar n gerccedilek
ya amdakinden daha farkl bir ekilde yeniden yap lanmas n
sa lam t r Herhangi bir
irketteki yerel a iccedilinde personelin e-posta al p-goumlndermesiyle olu an etkinlik ve e-posta
gruplar ilk ccedilevrimiccedili sosyal a oumlrneklerinden say labilir Daha sonra h zla hayat m za giren
bloglar wikiler ve sosyal a siteleri gibi sosyal i birli i sa layan teknolojilerin geli mesi
insanlar n ileti im kurduklar bilgi resim muumlzik video payla t klar ve birbirleriyle suumlrekli
haberle tikleri ccedilevrimiccedili sanal topluluklar n olu mas n sa lam t r [20] Bu topluluklar n h zla
yay lmas n n temelinde kullan c lar n bireysel aktivitesine ba l olarak duygu ve duuml uumlncelerini
bilgiyi guumlncel haberleri tavsiyelerini be enilerini payla ma fikri vard r A a da sosyal a
sitelerinden en popuumller olanlar iccedilinde yer alan Facebook incelenecektir [7]
2141 Facebook
En yayg n sosyal a sitesi Facebook Amerika Birle ik Devletleri nde 4 ubat 2004
tarihinde Harvard Uumlniversitesinde ouml renci Mark Zuckerberg taraf ndan kurulmu tur Facebook
oumlncelikle Harvard ouml rencileri iccedilin kurulmu tu Daha sonra h zla tuumlm duumlnyaya yay lm t r
Kullan c lar siteyi uumlcretsiz uumlye olarak kullanabilmektedir Site gelirini banner reklamlar ndan ve
sponsor gruplar ndan almaktad r Duumlnyan n en popuumller Web 20 blogu TechCruncha goumlre
Amerika Birle ik Devletleri ndeki uumlniversitelerdeki ouml rencilerin 85inin facebookda bir
hesab bulunmakta ve bunlar n 60 her guumln ba lanmaktad r 85 her hafta 93 her ay
ba lananlar aras ndad r [21] Facebook sitesinden ba ms z Web 20 ak m n yak ndan takip
9
eden bir blog sitesi olan insidefacebook 2009 Ocak ay n n ba nda yay nlad habere goumlre
facebook kullan c say s a a daki grafikte goumlruumllduuml uuml gibi yakla k 140 milyonu bulmu tur
Milyonlar a k n aktif uumlye say s yla guumlnde ortalama 150 bin aktif kullan c yla sanal duumlnyan n en
popular sitesi olmu tur [22]
ekil 28 Facebook kullan c say s n n aylara goumlre da l m grafi i [23]
Aktif kullan c lar n iccedileri e katk s a a daki istatistik sonuccedillar n do urmu tur [22]
13 milyon kullan c durumlar n en az ndan guumlnde bir kez guumlncellenmektedir
25 milyon kullan c her guumln Sayfa hayran (fan of Pages) olmaktad r
Siteye her ay 700 milyon foto raf yuumlkleniyor ki toplam foto raf rakam yakla k 10
milyar bulmaktad r
Her ay 4 milyon video yuumlklenmektedir
Her ay 15 milyon iccedilerik parccedilas (web linki yeni hikacircyeler blog yaz lar notlar
foto raflar vb) payla ma sunulmaktad r
Her ay 2 milyon etkinlik olu turulmaktad r
Sitede 19 milyon adet aktif grup varl n suumlrduumlrmektedir
Yukar da belirtilen bu rakamlar sosyal ileti im a lar n n ne kadar ciddi boyutlarda bir
kapasiteye sahip oldu unu goumlstermektedir
10
ekil 29 Aylara goumlre facebook ve myspace site analizi [22]
Facebook ve ona en yak n rakibi sosyal ileti im web sitesi olan MySpace compete de
kar la t r ld nda yukar daki grafik elde edilmektedir
Tablo 21 Facebook ve myspace in buumlyuumlme tablosu
Tarih 032008 032009 Kullan c
Ayl k Y ll k
facebookcom
91054535 234
1951
myspacecom
55594761 48
-114
Tablo 21 de Mart 2008 ile Mart 2009 aras ndaki ayl k aktif ziyaretccedili say s n
goumlstermektedir Compete verilerine goumlre Aral k 2008 de facebook myspace in kullan c say s n
yakalam t r Tablo 21 deki verilere goumlre bir oumlnceki y la goumlre Facebook taki kullan c say s nda
ayl k 234 luumlk bir art varken MySpace 48 lik bir buumlyuumlmeye sahiptir Yakla k olarak
ayl k MySpace Facebook u 5 kat geriden takip etmektedir Facebook taki bir oumlnceki y la
goumlre 1951 lik buumlyuumlmeye kar n myspace de 114 luumlk kuumlccediluumllme goumlruumllmektedir Elde edilen
veriler ileriki y llarda bu rakamlar aras ndaki uccedilurumun artaca n i aret etmektedir
Facebooktaki bu h zl buumlyuumlme ekonomi ve ticari sektoumlruumlnuumln de ilgisini ccedilekmektedir Oumlnemli bir
yat r m alan olarak giri imcileri cezbetmektedir
Facebook youmlneticilerinden Peter Thiel ise Facebookun iccedil de erinin 8 Milyar dolar
oldu unu ve proje gelirlerinin 2015 y l iccedilin 1 milyar dolar oldu unu soumlylemektedir [24]
Duumlnyaca tan nm Microsoft irketi 24 Ekim 2007 de Facebooku 16l k hissesini 240 milyon
dolara sat n alm t r Google ve di er irketler de gittikccedile de er kazanan Facebook hisselerine
youmlnelmektedir [24]
11
215 Web Guumlnluumlkler
ngilizcedeki Web
ve log kelimelerinin birle iminden olu an Blog kelimesi internet
uumlzerinden ki ilerin istedikleri konu hakk nda fikir beyan edebilecekleri kendilerini kolayca
ifade etmelerini sa layacak bir ortamd r
Bloglar genellikle en yeni yorum ve yaz lardan eski tarihli yorum ve yaz lara do ru
s ralanm web tabanl yay nlar
belirtir Bloglar n iccedileri i suumlrekli guumlncellendi i iccedilin sadece
bloglar iccedilin kurulmu oumlzel indeksleme mekanizmalar ve arama motorlar bulunmaktad r [25]
Duumlnya ccedilap nda indeksleme mekanizmalar n n en oumlnde geleni Technorati firmas
milyonlarca blog okuyucusu iccedilin her geccedilen guumln 15 milyondan fazla yeni blogu
indekslemektedir [26] Forrester in ara t rma irketlerinden internet ile ilgili ciddi bir ara t rma
kurumu olan JupiterResearch uumln 2008 A ustos unda bloglar uumlzerine gerccedilekle tirdi i
ara t rmada internet kullan c lar na 40 soruluk kapal uccedillu soru youmlneltilmi tir Bu ara t rma
sonucunda geccedilti imiz doumlrt y l iccedilerisinde bloglar n okunma oranlar nda 300 oran nda bir art
oldu u ortaya ccedil km t r Belki ilgimi ccedilekecek bir bloga ula abilirim duuml uumlncesi ile kullan c lar
okuduklar bloga eklenmi
olan di er linkleri de takip edebiliyorlar S k blog okuruyum
diyenlerin 38 i yeni bir blogu okudu u blogun linklerinden ke fetti ini belirtmi tir
Ara t rmaya kat lan blog okurlar n n 34 uuml Web te dola rken yeni bir blogla tan t n 11 i
blog arama motorlar n kulland n
belirtmi [27]
Bloglar n bu kadar yayg nla mas n n nedenlerinde biri de internet gezginler sanal
acirclemdeki tek duumlze yorumsuz hatta bazen oldukccedila bilimsel bir dille yaz lm yaz lardan
s k ld klar iccedilin bloglar tercih etmektedir Bloglarda ki iler gittikleri bir seminer hakk ndaki
yorumlar n kulland klar bir uumlruumln hakk ndaki fikirlerini k saca hayata dair kendi yorumlar n
katarak ba ka ki ilerle payla abilmektedirler
216 Wiki
Bilgiye ula mak iccedilin eskiden oldu u gibi kitap ya da ansiklopediler kullan lmamaktad r
Guumlnuumlmuumlzde kuumlreselle menin ve geli en teknolojinin etkisiyle tuumlm kaynaklara bilgisayar
uumlzerinden ula lmas elde edilen bilgilerin k sa suumlrede derlenebilmesine imkacircn vermi tir
Wiki ler kullan c lar n uumlzerinde istedi i gibi duumlzenlemeler yapmas na izin veren bilgi
sayfalar toplulu udur ngilizce What I Know is soumlzcuumlklerinin k saltmas
olan Wiki
Bildi im kadar yla anlam na gelir [28]
12
Wikilerin ccedilal ma prensibi u ekilde accedil klanabilir Bir web program script ya da script
grubu sayesinde veritaban na yaz lm olan ya da sadece dosya halindeki verileri okur bu
verileri HTML kodlar ile de i tirir ve Web taray c s na yans t r
ekil 210 Vikipedi oumlzguumlr ansiklopedi sitesinin logosu
Wiki dilini kullanan ve internetin en geni iccedileri ine sahip ccedilevrimiccedili ansiklopedisi
Vikipedi 22 Ocak 2007de Alt n Oumlruumlmcek 2006 En yi ccedilerik oumlduumlluumlnuumln sahibi oldu
Wikipediaorg taraf ndan geni kitlelere tan t lan Wiki dili pek ccedilok farkl programlama
platformunda Javascript ASP PHP C++ vb kullan labilmektedir
2161 Wiki Kullanman n Avantajlar
Web proje gruplar
projeleri olu tururken ekiplere ayr ld iccedilin programc lar kendi
goumlrevi d ndaki ccedilal malarda neler yap ld n
tam olarak bilemez ccedileri in yap land r lmas nda
geli melerden sadece iccedilerik koordinatoumlrleri haberdard r An nda yap goumlster oumlzelli iyle Wikiler
bu sorun iccedilin pratik bir ccediloumlzuumlm te kil eder
ndekslenme yapan sitelerde bile arama yap l rken defalarca ayn siteye girilebilir yahut
aran lan bilgiyi bulmak ccedilok zaman alabilir Wiki gereksiz tekrarlardan kurtar r steyen herkes
wiki iccedileri indeki bilgileri eksik ya da hatal
ise de i tirilebilir veya kald rabilir Bu i lemleri
yapan wiki youmlneticilerine wikipedist denir Wikipedistler sayfa duumlzenlemelerine ve iccedilerik
zenginle tirmeye yard mc olurlar
Wiki de de i iklik yap ld nda de i iklik yapan ki inin bir hesab yoksa IP adresiyle
varsa kullan c ad yla kaydedilerek hemen sonuccedil goumlzlenebilir Yap lan iccedileriksel herhangi bir
hata ba kalar taraf ndan fark edildi inde duumlzeltilir Geccedilmi sekmesiyle duumlzeltilen sayfalar n
oumlnceki suumlruumlmleri kronolojik s ralamayla takip edilebilir hatta sayfalar aras nda kar la t rma
bile yap labilir Sayfa iccedilerikleri hakk nda Tart ma
sekmesiyle fikir beyan nda bulunulabilinir
Tart malara yorum eklenebilir Denetleme mekanizmas sayesinde telif haklar n n ihlali gibi
durumlarda ihlali yapan kullan c lar engellenebilmektedir
13
Wiki di er ansiklopedilerden farkl olarak Vikipedi GNU Oumlzguumlr Belgeleme Lisans
(GOumlBL) kullanmaktad r Kullan c lar na oumlzguumlr iccedilerik kat l m e it tarafs z ve uumlcretsiz kat l m
hakk verir Ayr ca diluumllkekonuya goumlre geli mi kategorilendirme sistemine sahiptir Diff
oumlzelli i sayesinde sayfalar aras ndaki fark izlenebilir [29]
217 ccedilerik Youmlnetim Sistemleri
ngilizce Content Management System ya da k saca CMS olarak tan nan ccedilerik
Youmlnetim Sistemleri - YS bilgiyi olu turmak ar ivlemek ara t rmak denetlemek ve
yay nlama olana sa layan buumlyuumlk bir veritaban na sahip moduumlllerden olu an buumltuumlnle ik bir
ortamd r YS lerde iccedilerik iki ayr boumlluumlmden olu ur Bunlardan birincisi uumlzerinde i lem
yap lmam olan ham bilgiyi bar nd ran veritaban
di eri ise bu bilginin yerle imini goumlsteren
ablondur ablonda bilginin goumlsterilece i sayfan n goumlrsel boumlluumlmuumlnuuml olu turan yaz tipleri
renkleri gibi tuumlm biccedilim bilgileri saklan r Genellikle PHP benzeri dillerle kodlan r Boumlylece daha
esnek hale gelebilirler [30]
ccedilerik Youmlnetim Sistemleri uluslararas platformda birccedilok organizasyon iccedilin zorunluluk
haline gelen modern bir veri youmlnetimi tekni idir Guumlnuumlmuumlzde iccedilerik youmlnetim sistemleri kendi
iccedilerisinde boumlluumlnmuuml bir yaz l m enduumlstrisi haline gelmi tir Kendi iccedilerisinde portal sistemleri
Wiki sistemleri web-based grupware vb alt dallara ayr lan enduumlstri guumlnuumlmuumlzde halen
geli imini suumlrduumlrmektedir [31]
Web yay nlama sistemi kullan c lar arad klar iccedileri e goumlre veritaban iccedilinde anahtar
kelimeler yazar olu turulma tarihi gibi ccedile itli oumllccediluumltlere goumlre arama yapabilirler Web iccedilerik
youmlnetim sistemleri bilgi portallar olu turmak iccedilin bilgi youmlnetimi hizmeti sunar YS buumlnyesinde
bar nd rd
yaz l m moduumllleri sayesinde herhangi bir kullan c n n web sitesi uumlzerindeki
i lemleri yapabilmesi iccedilin grafiksel kullan c arayuumlzuuml sunar
YSnin temeli iccedileri in olu turulmas ndan son hali olan yay nlanma evresine kadar tuumlm
evrelerde iccedileri i youmlnetme esas na dayan r Ayr ca YS nin iccedileri i E-ticaret ve Muuml teri li kileri
Youmlnetim Sistemleri (MIYS) (ing CRM - Customer Relationship Management System) ile de
payla labilir YS sayesinde iccedilerik yay n
teknik bilgisi olmayan kullan c lar taraf ndan bile
yap labilir Kullan c lar na sade basit ama guumlccedilluuml web taray c s destekli bir uygulama arayuumlzuuml
sunar [32]
14
218 Etiketleme (Folksonomi)
Web 20 sitelerinde goumlze ccedilarpan etiket bulutlar ile kullan c lara ilgilendikleri konulara
ili kin kolay ve h zl ba lant lar sa lanmaktad r Site iccedileri iyle ilgili konular ccedile itli etiketler ad
alt nda s n fland r l r Her etiket iccedilinde bar nd rd makale yaz ba l k ile farkl boyutlarda
olabilmektedir Yani etiketin yaz boyutu ne kadar buumlyuumlkse iccedilinde bar nd rd iccedilerik o kadar
fazlad r ekil 211 de bir etiket bulutu goumlruumllmektedir
ekil 211 Oumlrnek etiket bulutu
22 Web 20 da Site Tasar m nda Dikkat Ccedileken Oumlzellikler
Yukar daki popuumller uygulamalar olu turulurken dikkat ccedileken ortak oumlzellikler bu ba l k
alt nda incelenecektir Genel olarak Web sitelerindeki de i im ve geli im tasar m ve arayuumlz
accedil s ndan de erlendirilecektir
221 Logolar
Logolara daha parlak bir goumlruumlntuuml verilirken yans ma efekti bolca kullan lmaktad r
Yans ma efekti dinamik olmayan tuumlm objelere kullan larak siteye derinlik hareket ve modern
bir goumlruumlnuuml kazand r l r Kullan c lar n dikkatini ccedilekmek iccedilin ekil 212 de goumlruumllduuml uuml gibi
logolara rozet eklinde yenilik bildiren kelimeler eklenebilmektedir [33] Bu yenilik bildiren
kelimelerden Beta ifadesiyle s k s k kar la l r Bunun nedeni Web 20 ak m na goumlre
kullan c lar birer yard mc -geli tiriciler olarak benimsenir Sonuccedil olarak ortaya ccedil kan site suumlrekli
geli mekte ve de i mektedir Logolara yerle en Beta bu geli imin bir simgesi haline gelmi tir
[34]
15
ekil 212 Yans mal logo oumlrne i [34]
222 Butonlar
Butonlarda ise klasik butonlar yerine resim olarak haz rlanan butonlarda oumlzellikle cam
efekti ve renk geccedili (gradient) efekti hacirckimdir Gradient efekti butonlarda logolarda ya da arka
planlardaki renk geccedili lerini daha yumu at r Bir renkten farkl bir renge keskin geccedili lerin oumlnuumlne
geccedililmi olur [33] Ccedile itli buton oumlrnekleri ekil 213 de goumlruumllmektedir
ekil 213 Web 20 da buton oumlrnekleri
223 Arka Planlar
Web 20 ile sitelerde arka planlar olu turulurken yatay eritlerden ya da duumlz renk
geccedili lerinden faydalan labilinir Her iki ekilde de hedeflenen ortak amaccedil ekil 214 te oldu u
gibi goumlzuuml yormayan tasar mlar gerccedilekle tirmektir [33]
ekil 214 Web 20 da arka plan oumlrnekleri
16
224 Ccedilerccedileveler
Site iccedilinde goumlruumlnmez iframe ler yerine ekil 215 deki gibi ccedilerccedilevelerin yuvarlak kouml eli
kutular olarak tasarlanmas
oumln plana ccedil km t r Kouml eleri keskin duumlz kare veya dikdoumlrtgen
biccedilimde kutular art k kullan lmamaktad r Yuvarlak kouml eli kutu yap m iccedilin farkl tekniklerle
olu turulabilecek programlar mevcuttur Resim css ve html teknikleri kullan lacaksa Spiffy
Corners RoundedCornr ve CSS Rounded Box Generator gibi araccedillar kullan labilirken Nifty
Corners Cube ve curvyCorners gibi araccedillar da JavaScript tekni i ile kullan labilinir [33]
ekil 215 Web 20 da ccedilerccedileve yap s na oumlrnek
225 Menuumller
Site iccedileri inden etkin bir ekilde faydalanabilmek iccedilin menuuml ve sekmeler sade kolay
anla labilir olmal d r Hem goumlrsel hem kullan l menuumller CSS kodlarla olu turulabilir [33]
ekil 216 Web 20 da menuuml oumlrne i
Yukar da bahsedilen konu Web 20 platformunda olu turulan sitelerin genel oumlzellikleri
olarak alg lanabilir Bu oumlzellikler d nda da tasar mlar olabilmektedir
17
3 AJAX
AJAX kavram n n ilk ccedil k noktas
ubat 2005 de Jesse James Garrett taraf ndan the
Adaptive Path Web sitesinde Ajax A New Approach to Web Applications ba l yla
yay nlanan makaledir [35]
ekil 31 Jesse James Garrett in makale goumlruumlntuumlsuuml [36]
Bu makalede Web uygulamalar olu turulurken tasar mlardaki buumlyuumlleyici geli meler
yenilikccedili ccedilevrimiccedili projelerle desteklenirken bunun yan nda h zl cevap verebilir daha zengin
goumlrsellere sahip masauumlstuuml uygulamalar aras ndaki bo lu a dikkat ccedilekilmi tir Bu bo lu u
dolduran Google Suggest ve Google Maps uygulamalar Adaptive Path sitesinde AJAX olarak
adland r lan Web uygulamalar na yeni yakla m n en iyi oumlrnekleri oldu u belirtilmi tir Klasik
Web uygulamalar n n ccedilal ma modeliyle AJAX l uygulamalar n ccedilal ma modeli
kar la t r lm t r AJAX di er uygulama youmlntemlerinden ay ran oumlzellikleri belirtilmi tir
AJAX yakla m na buumlyuumlk yat r mlar yapan Google n neden AJAX tercih etti i accedil klanm t r
Google Groups Google Suggest Gmail Google Maps ve ard ndan Flickr Amazon nun
A9com servisleriyle kullan c lar n oda haline geldi ine de inilmi tir [35]
AJAX n ccedilekirde i olan XMLHttpRequest (XHR) nesnesi sayesinde de iyi haz rlanm
sa lam ve kolay anla labilir-kullan labilir sitelerin olu umuna dikkat ccedilekilmi tir [35] A a da
18
ise AJAX tekni i kullanan en populer servislerden Google Suggest ve Google Maps hakk nda
k sa bilgi verilecektir
31 Google Suggest
ekil 32 Google Suggest ekran goumlruumlntuumlsuuml
Google Suggest a httpwwwgooglecomigcomplete=1amphl=en
adresine girildi inde
ekil 32 de goumlruumlnen ana sayfaya ula lmaktad r Google Suggest servisinin oumlzelli i arama
motorunda aranacak kelimenin harfleri girilmeye ba land andan itibaren filtreleme yaparak
text alan n n alt na accedil lan boumllmede oumlneriler sunulmaktad r Sadece oumlneri sunmakla da kalmay p
oumlnerileri popuumllarite s ras na goumlre s ralar Kelime tamamlama oumlzelli i sayesinde aranan kelime
tam yaz lmadan gelen oumlnerilerden biri t klanarak istenen sonuca ula labilinir Ayr ca oumlnerilerin
yan nda o kelimeye ait kaccedil sonuccedil oldu u da belirtilir ve bu i lem sadece 1-2 sn iccedilinde
gerccedilekle ir
32 Google Maps
ekil 33 Google Maps ekran goumlruumlntuumlsuuml
19
Google Maps sitesine httpmapsgooglecom
adresinden ula labilinir Google n
etkile imli harita servisi ile arama motorunda goumlruumlntuumllenmek istenen konum yaz larak
Haritalarda Ara butonu ile o konuma odaklan l r Bir yerden bir yere gitmek iccedilin Yol
Tariflerini Al butonu kullan l r Konumun iste e goumlre uydu arazi ve sokak haritas
goumlruumlnuumlmlerine ula labilinir Daha fazla seccedilene i ile resim video ve wikipedia katmanlar da
goumlruumlntuumlye eklenir Hatta yurtd ndaki ba lant larda yoldaki trafik ak n n h z hakk nda bile
bilgi katman mevcuttur
Di er harita web uygulamalar ndan farkl olarak Google Maps te harita uumlzerinde ccedile itli
youmlnlere ula mak iccedilin suumlrekle b rak youmlntemi kullan l r Harita bir imaj serisi halinde ayr larak
boumlluumlnuumlr Biti ik imajlar n birlikte goumlruumlntuumlsuumlnuumln olu turulabilmesi iccedilin bu serilerden faydalan l r
Goumlruumlntuumllenen haritada kullan lan imaj say s s n rl d r Bu da her seferinde yeni imajlar n
olu turulmas gerekti ini goumlsterir Kullan c n n harita uumlzerindeki h zl hareketleri haf za
problemlerine yol accedilabilir Bunun yerine ayn imajlar haritan n farkl segmentlerinde tekrar
tekrar goumlruumlntuumllenir [37]
stemci-sunucu ileti imi gizli bir IFRAME uumlzerinden yap l r Bir arama yap ld nda
veya yeni bir yol soruldu unda bu bilgiler goumlnderilir ve IFRAME iccedilinde doumlnduumlruumlluumlr Veri XML
format nda ccedilevrilir ve bir Javascript fonksiyonunda (AJAX Motorunda) kullan lmak iccedilin
aktar l r Bu XML verisi sonra farkl ccedile itli ekillerde kullan l r Bazen hatas z harita imajlar n n
ccedila r lmas nda bazen de XML dokuumlmanlar n n XSLT (Extensible Stylesheet Language
Transformations Geni letilebilir Biccedilimlendirme Dili Doumlnuuml uumlmleri) sayesinde HTML kodlar na
doumlnuuml tuumlruumllerek ana pencerede goumlruumlntuumllenmesinde kullan l r [37]
Bunlar n d ndaki daha birccedilok accedil k kaynak projeler ve ticari uumlruumlnler bu yeni Web
uygulama modelinin avantajlar ndan faydalanarak geli tirilmeye ba lanm t r [37]
33 Neden AJAX
AJAX terimi oldukccedila guumlccedilluuml bir kelimedir Guumlcuumlnuuml daha zengin geni enduumlstri trendlerinin
olu umunda kullan labilmesinden ve oumlzguumlr Web uygulamalar n n kurulumunda odak noktas
olmas ndan al r Ayr ca programc lar yabanc olduklar yeni programlama dilleri ouml renmelerine
gerek kalmadan geli tirdikleri Web uygulamalar na istedikleri etkiyi katabilmektedirler Bunu
yaparken de sunucu tarafl teknolojileri kullan rken var olan yat r mlar n n d nda ba ka
masraflar olmaz AJAX guumlccedilluuml bir teknik olmas n n yan s ra di er teknolojilerle birlikte
kullan ld nda daha etkili sonuccedillar al nabilmektedir [38] AJAX Java 2 Enterprise Edition
(JAVA EE) Net PHP Flex CGI scriptler ve di er birccedilok uygulama geli tirme ortam nda
ccedilal abilir
20
AJAX uygulamalar n n gittikccedile yayg nla mas n n bir nedeni de geleneksel uygulamalara
goumlre istekcevap modelleri aras ndaki farkt r ekil 34 te goumlsterildi i uumlzere geleneksel Web
uygulamalar nda sunucuya yap lan her istekte olu turulan cevap Web sayfas n n tuumlmuumlnuuml
etkileyerek yeniden yuumlklenmesine neden olmaktad r
ekil 34 Geleneksel sunucularda istekcevap modeli [39]
AJAX n asenkron metodolojisiyle klasik Web mimarilerindeki gibi sunucuya gidip
parametreleri i lemek yerine ekil 35 te goumlruumllduuml uuml uumlzere birccedilok sunucu iste i tuumlm sayfan n
yenilenmesine ihtiyaccedil duymadan cevaplanabilmektedir
ekil 35 AJAX n asenkron istekcevap modeli [39]
Yukar da anlat lan durum kullan c lar ekil 36 da goumlruumllen t kla-bekle doumlnguumlsuumlnden
kurtar r AJAX kullan c lara ekil 37 deki gibi kesintisiz gezinti (soumlrf) imkacircn sunar
21
ekil 36 Klasik Web uygulamalar nda t kla-bekle doumlnguumlsuuml [40]
ekil 37 T kla-T kla interaktif AJAX uygulamas
[40]
stek i lem basamaklar ekil 38 te goumlsterildi i gibi AJAX motoru sayesinde JavaScript
kod betikleri kullan larak sunucuya HTTP tabanl ba lant sa lan r Bu ba lant
XMLHttpRequest protokoluumlnuuml kullanarak mesaj transferi yap lmas n sa lar Bu sayede hem h z
artar hem de bant geni li i verimli bir ekilde kullan lm olur
ekil 38 Geleneksel Web ileti im modeli ile AJAX ileti im modeli [37]
AJAX sunucuya kullan c n n Web taray c s uumlzerinden Javascript ortam nda ikinci bir
ileti im yoludur AJAX n kullan m normal Web uygulamalar nda goumlruumllen tipik sayfa ak nda
de i ikliklere neden olur AJAX ile istekler daha s k ve daha kuumlccediluumlk cevaplar halinde HTML
olmayan veri formunda cevaplan r Daha iyi anlayabilmek iccedilin normal bir Web uygulamas n n
ileti im ak ekil 39 da goumlruumllmektedir [41]
22
ekil 39 Web uygulamas ndaki cevap ak
Bir AJAX Web uygulamas bir Web uygulamas n n normal ileti im ak n al r ve yeni
bir istek tipi ekler Bu durum sunucuya normal sayfa iste i gibi goumlruumlnuumlr ama Web taray c iccedilin
farkl formatta bir giri i vard r Kullan c taraf ndan do rudan tetiklenmeyen ve sayfan n
tamam n n yeniden yuumlklenmesini gerektirmeyen bir istektir Ccedilo u durumda bu AJAX istekleri
baz verilerin oumln yuumlklenmesi ya da bir formdaki baz alanlar n do rulama istekleri gibi kuumlccediluumlk
de i iklikler olabilir Bazen de JavaScript ile bir form goumlnderimi veya HTML sayfalar n n bir
parccedilas uumlzerindeki iccedileri i de i tirmek iccedilin kullan l r Oumlrnek bir AJAX ileti im ak ekil
310 da goumlruumllmektedir AJAX uygulamalar ndaki istek biti zamanlar ve bunun normal Web
uygulamalar yla kar la t rmas ekil 311 de goumlruumllebilir Boumlylece ikisinin aras ndaki istek
frekanslar n n fark na var labilinir [41]
ekil 310 AJAX uygulamalar ndaki istek ak
23
ekil 311 Normal Web ile AJAX uygulamalar n n kar la t rmas
AJAX Web uygulamalar yla frekanstaki bu de i im hostlar iccedilin buumlyuumlk etki yapabilir
Boumlylece sunucular ayn kullan c say s yla yuumlksek h zlarda veri al -veri ini yapabilecek duruma
gelir Bu oumlzellikle daha fazla i lem gerektiren normal sayfa yuumlklemelerinde oldukccedila zor bir
i lemdi [41]
34 AJAX Metodolojisi
World Wide Web istemci-sunucu a mimarisine uygun ccedilal r [42] A aktiviteleri iki
tiptir Bunlardan birincisi kullan c taraf ndan tetiklenen HyperText Transfer Protocol (HTTP)
istekler (URL yazarak ya da bir link t klanarak olu turulur) di eri ise sunucu cevaplar d r
HTTP protokoluuml soru ve cevaplar serisinden olu an bir ileti im yoludur [41]
ekil 312 Geleneksel istekcevap (requestresponse) youmlntemi [39]
24
Web taray c dan bir istekte bulunuldu unda HTTP kullan larak cevap goumlnderilir Web
taray c bir istemci internet sayfas n n sunucusu ise HTTP sunucudur AJAX sunucu
cevaplar n HTTP kullanarak goumlnderir Sunucu taraf ndan geri doumlnduumlruumllen farkl tuumlrlerdeki
HTTP istek ve cevaplar n n tan nmas oumlnemlidir AJAX uygulamalar n sunucudan gelecek olan
HTTP cevaplar n iccedileri inin ne oldu u hakk nda karar verebilmesi iccedilin sunucunu
sorgulanmas nda HTTPRequest nesnesine ihtiyaccedil duyar [42]
341 HTTP Requests Nesnesi
HTTP request nesnesinin kullan m format a a daki ekildedir
ltrequest-linegt
ltheadersgt
ltblank linegt
[ltrequest-bodygt]
HTTP request nesnesinin ilk sat r genellikle iste in tipini belirten uumlccedil boumlluumlmden olu ur
Youmlntemin ad gerekli olan sunucu kayna n n yolu HTTP suumlruumlmuumlduumlr Birinci istek sat r (accedil l
sat r ) olmal d r kinci boumlluumlm sunucunun kullanabilece i ba l k sat r eklenebilen bilgilerin
goumlsterildi i boumlluumlmduumlr Son boumlluumlm olan bo sat r ise iste e ba l olarak BODY boumlluumlmuumlnden
ccedila r labilecek ek verilerin takip edilebilece i sat rd r
HTTP iccedilinde ccedile itli istek tuumlrlerinin tan mlanabilece i ccedilok say da youmlntem vard r Fakat
AJAX sadece GET ve POST youmlntemleriyle ilgilenir
3411 GET Youmlntemi
HTTP GET youmlntemi ccedila r lmak istenen URL adresi ard na eklenen anahtar-de er
ccediliftleri (key-value pair) ile ccedilal r Bir Web taray c dan talep edilen bir URL ccedila r s sunucuya
GET youmlnetemi ile bir istek goumlnderir Basitccedile sunucu kayna getirir ve taray c ya cevab
goumlnderir A a da Get youmlnetemi kullan larak F rat uumlniversitesinin Web sitesine yap lan bir ccedila r
sat r goumlsterilmektedir
GET HTTP11 ltrequest-linegt
Host wwwfiratedutr
User-Agent Mozilla50 (Windows U Windows NT 51 en-US rv176) ltheadersgt
Connection Keep-Alive
25
Oumlrnek kod parccedilas nda da goumlruumllduuml uuml uumlzere ilk sat r GET istek sat r d r Di er boumlluumlm ise
istek hakk nda bilgi goumlnderilen ba l k (header) k sm d r Bu boumlluumlme bir parametre ve her sat r
ba na bir de er ccedilifti gelebilir Host ba l iste in hedef sunucu adresini iccedilerir User-Agent
ba l eri ilebilir her iki sunucu ve istemci tarafl scriptler ve taray c lar n temel ta d r Bu
bilgi ile her istekte otomatik olarak goumlnderilir ve kullan lan taray c tan mlan r Connection
ba l ise taray c i lemleri iccedilin kullan lan tipik ba lant ayarlar nda kullan l r
3412 POST Youmlntemi
POST iste i ise sunucuya request body iccedilinde ek bilgi sa lar Genellikle ccedilevrimiccedili
formlarda doldurulmayan sat r bilgileri POST youmlntemi ile sunucuya bildirilir POST istekleri
a a daki yap dad r
POST HTTP11
Host wwwfiratedutr
User-Agent Mozilla50 (Windows U Windows NT 51 en-US rv176)
Content-Type applicationx-www-form-urlencoded
Content-Length 40
Connection Keep-Alive
Yukar daki kod parccedilas nda gri ile vurgulanan sat rlar GET youmlnteminden farkl olan
sat rlar goumlstermektedir lk sat rda kullan lan youmlntemin ad belirtilmi tir Content-Type sat r
request-body nin nas l kodland n goumlsterir Content-Length sat r nda request-body nin kaccedil
byte uzunlu unda oldu u goumlsterilir [37]
342 HTTP Request Nesnesinin Oumlzellikleri ve Youmlntemleri
Request nesnesi be tane temel fonksiyon bulundurmaktad r [43] Bunlar
Querystring URL iccedilersinde bulunan dosya ismi ile birlikte goumlnderilen bilginin veya
form iccedilerisinden GET
youmlntemi ile goumlnderilen bilgilerin al nmas nda kullan l r
Form POST
youmlntemi genellikle form iccedilerisinden bilgi al nmas iccedilin kullan l r
Servervariables Web sunucu request ile ilgili bilgilere (Http ServerVariables)
ula may sa layan bir youmlntemidir
Cookies(Ccedilerezler) Kullan c n n taray c s sunucudan gelen ccedilerezleri kabul ediyor ise
bu bilgilere ula lmas n sa lar
26
ClientCertificate Dijital bir sertifikad r Sunucu ve istemcinin birbirini tan mlamas
iccedilin kullan l r
343 HTTP Response Nesnesi
HTTP response nesnesi HTTP request nesnesine benzer ekilde goumlsterilir
ltstatus-linegt
ltheadersgt
ltblank linegt
[ltresponse-bodygt]
HTTP request nesnesinden tek fark ilk sat rda istek bilgisinin yerine iccedileri in durum
bilgisi vard r Durum sat r istek kayna
hakk nda temin edilen bir durum kodunu bildirir
A a da basit bir HTTP response kod parccedilas
goumlsterilmektedir
HTTP11 200 OK
Date Sat 31 March 2009 165959 GMT
Content-Type texthtmlcharset=ISO-8859-1
Content-Length 122
lthtmlgt
ltheadgt
lttitlegtFirat Universitesilttitlegt
ltheadgt
ltbodygt
lt-- body buraya gelir --gt
ltbodygt
lthtmlgt
Bu oumlrnekte durum sat r nda 200 eklinde bir HTTP durum kodu ve Tamam (OK)
diye bir mesaj verilmektedir Durum sat r her zaman durum kodu ve her hangi bir kar kl
oumlnlemek iccedilin k sa bir mesaj iccedilerir A a da en yayg n kullan lan durum kodlar verilmektedir
200 (OK) Sunucu ba ar l istekler iccedilin bu kodu kullan r
304 (NOT MODIFIED) Sunucu goumlnderilen istekle ilgili verilerin daha i lenmedi ini
istemciye bildirmek iccedilin bu kod kullan l r Taray c lar n oumln bellek mekanizmalar iccedilin en s k
kullan lan koddur
27
401 (UNAUTHORIZED) stemcinin kaynak eri im yetkisi yoktur
anlam nda
kullan l r Genellikle bu taray c n n sunucudan kullan c ad ve ifre gibi bilgi giri i istemesiyle
olu an hatalarda meydana gelir
403 (FORBIDDEN) Yetki elde etmek iccedilin istemci ba ar s z oldu
hata kodudur 401
hatas ndan sonra e er do ru bir kullan c ad ve ifre ile oturum accedil lmamas halinde genelde bu
hata kodu olu ur
404 (NOT FOUND) Kaynak belirtilen yerde bulunamad nda bu hata kodu uumlretilir
Kod parccedilas n n ikinci sat r nda uumlretilen cevab n tarihi ve saati Date ba l nda
sunucuya goumlnderilir Content-Type ve Content-Length ba l klar POST youmlnteminde oldu u gibi
kullan l r BODY cevab basitccedile istemci kayna (iccedilerik duumlz metin ikili veri ya da farkl
tuumlrden
bilgiler olabilir) HTML kayna n iccedilerir [42]
35 AJAX leti im Teknikleri
Web uygulamalar nda ccedilo unlukla kullan c istekleri bir form uumlzerinden yap l r ve
sunucu cevab h zl bir ekilde Java ya da Php gibi bir programlama dili ile olu turulur Normal
Web uygulama modelinde kullan c daima istek uumlretir boumlylece kullan c lar n h zl ca
t klamalar yla olu an yuumlksek h zlardaki sayfa istekleri genellikle rastgele aral klarla olu ur ve
her bir istek h z n n cevab duuml uumlktuumlr [41]
AJAX uygulamalar nda yukarda bahsedilen eksikli in oumlnuumlne geccedilebilmek iccedilin ccedile itli
ileti im teknikleri geli tirilmi tir Bu teknikler
Gizli Ccedilerccedileve (Hidden Frame) Tekni i stemci-sunucu ileti iminde kullan lan gizli
ccedilerccedileve yap s yuumlksekli i ve geni li i 0 pikselden olu an ekranda goumlruumlnmeyen bir
frameset yap s na dayan r
XMLHttp Requests (XHR) AJAX teknolojisinin temel nesnesidir A a daki ba l kta
ayr nt l bir biccedilimde incelenecektir
351 XMLHttp Requests (XHR) Nesnesi
AJAX la do rudan ilgili teknolojilerin ccedilo u asenkron ve XML tekni i ile yak ndan
ilgilidir Ccediluumlnkuuml veri kodlama yollar ve ileti im katmanlar n n tedarik edilmesi bu teknikler ve
kuumltuumlphaneler uumlzerinden hareket eder Ccedilo u durumda bu XMLHttpRequest nesnesi kullan l r
ancak IFrame lerde popuumllerdir Ccedilerezler veya ActiveX Java goumlmuumlluuml ba ka bir alternatif de
kullan labilir [41]
28
XHR Nesnesi Internet Explorer 50 (IE 5) iccedilindeki ActiveX control ile ortaya ccedil km t r
XHR Javascript ile olu turulur [44] Sayfalar n tamamen yeniden yuumlklenmeden sa lanan parccedilal
guumlncelleme oumlzelli i bu nesne sayesinde olmaktad r Arka planda ccedilal an bu sistem sayesinde
asenkron bir ileti im gerccedilekle ir Yenilenme s ras nda taray c yla ba lant kesilmeksizin yeni bir
istek yap labilir
World Wide Web Consortium (W3C) standart organizasyonu standartla amam
XMLHttpRequest nesnenin tuumlm taray c larda kullan labilen youmlntem ve oumlzelliklerinin genel bir
alt kuumlmesini olu turma ccedilal malar suumlrmektedir u anda kullan lan kural kuumlmesi W3C DOM
Level 3 yuumlkleme ve kaydetme oumlzellikleri iccedilerir kinci ccedilal ma tasla
wwww3orgTRXMLHttpRequest adresinde bulunabilir Henuumlz bir standart haline
gelememesinin nedeni taray c dan taray c ya goumlre farkl davran lar goumlstermesidir
Ccedilal ma tasla na goumlre XHR nesnesinin iki goumlrevi vard r Birincisi HTTP yolu ile
sunucuya programlanabilir ba lant kuran betiklerin ccedilal mas na izin verir kinci ifade ekli ise
normal HTTP istekcevap doumlnguumlsuumlnuumln d nda sunucuyla ileti ime izin verir
XMLHttpRequest Microsoft taray c ccedile itlerinde Mozilla Firefox Konqueror Opera
ve Safari gibi neredeyse tuumlm modern taray c lar taraf ndan desteklenmektedir [42]
3511 XMLHttpRequest Nesnesi Olu turma
Nesneler olu turulurken farkl taray c lar iccedilin farkl kurallar vard r Oumlrne in Microsoft
Internet Explorer XMLHttpRequest nesnesini bir ActiveX nesnesi olarak Safari Mozilla
Firefox ve Opera ise sadece normal bir JavaScript nesnesi olarak yorumlar
Windows un guumlncelleme sisteminin temelini olu turan ActiveX Web sayfalar ndaki
aktif nesneleri etkinle tiren oumlzel bir Microsoft teknolojisidir ActiveX i mevcut Web taray c lar
aras nda u anda sadece Microsoft Internet Explorer desteklemektedir Microsoft IE nin di er
suumlruumlmleri iccedilin MSXML geli tirerek daha aktif ve kararl bir yap olu turulmu tur IE nin farkl
suumlruumlmleri iccedilin a a daki bile enler kullan l r [45]
MicrosoftXMLHttp
MSXML2XMLHttp
MSXML2XMLHttp30
MSXML2XMLHttp40
MSXML2XMLHttp50
29
IE 60+ taray c lar iccedilin a a daki tan mlama yap l r
var nesne = new ActiveXObject(Msxml2XMLHTTP)
IE 55 suumlruumlmleri iccedilin ise a a daki tan mlama yap l r
var nesne = new ActiveXObject(MicrosoftXMLHTTP)
Mozilla Firefox Opera Safari gibi taray c lar iccedilin ise a a daki tan mlama yap l r
var nesne = new XMLHttpRequest ()
Ayn anda birden fazla internet taray c s (ie firefox opera vb) ile uyumlu Web
uygulamalar iccedilin ccedilapraz taray c deste i ifadesi kullan lmaktad r Ccedilapraz taray c deste i bir
arayuumlz kodlamas nda kodlay c lar n en ccedilok zaman harcad konudur Guumlnuumlmuumlzde ccedilapraz
taray c deste i bir zorunluluk haline gelmi tir [46] AJAX uygulamalar n n sorunsuz tuumlm
taray c larla uyumlu bir ekilde ccedilal abilmesi iccedilin JavaScript iccedilerisinde try-catch bloklar
yazarak taray c ya goumlre yeni bir nesne olu turulur
function NesneOlustur()
var nesne
try
nesne = new ActiveXObject(Msxml2XMLHTTP) IE 60+ taray c lar iccedilin
catch(e)
try
nesne = new ActiveXObject(MicrosoftXMLHTTP) IE 55 taray c lar iccedilin
catch(e)
try
nesne = new XMLHttpRequest () Firefox Opera 80+ ve Safari taray c lar iccedilin
30
catch(e)
alert( Maalesef taray c n z AJAX desteklemiyor)
return null
return nesne
Yukar da tan mlanan fonksiyon sayesinde dinamik ve ccedilapraz taray c deste ine sahip bir
XHR nesnesi olu turulmu tur
3512 XHR Nesnesinin Oumlzellik ve Youmlntemleri
XMLHttpRequest nesnesine eklenebilen oumlzellikler Tablo 31 de goumlsterilmektedir [42]
Tablo 31 Standart XHR nesnesinin oumlzellikleri
Oumlzellikler Tan mlar
onreadystatechange
Nesnenin readyState oumlzelli i de i ti inde hangi olay tutucunun (event
handler) ccedila r laca n belirler
readyState ste in durumunu raporlayan tamsay de eridir
0 = uninitialized ( stek haz rlanmad Henuumlz open youmlntemi kullan lmad )
1 = loading ( stek haz rland goumlnderiliyor)
2 = loaded ( stek goumlnderildi)
3 = interactive ( stek de erlendiriliyor ve sonuccedil bekleniyor)
4 = completed ( stek tamamland ve sonuccedil geldi)
responseText Form iccedilindeki metin dizesi sunucu taraf ndan veriye doumlnuuml tuumlruumlluumlr
responseXML Sunucu taraf ndan bir belge nesnesi gibi ifade edilen veri geri doumlnduumlruumlluumlr
Status Sunucu taraf ndan geri doumlnduumlruumllen HTTP durum kodudur Oumlrne in 404
kodu Not Found yani istenilen sayfa bulunamad anlam na gelir 200 ise
OK de eri goumlnderir ve i lemin tamamland n belirtir
31
statusText Status oumlzelli inin metin kar l n verir
XMLHttpRequest nesnesinin fonksiyonunu artt ran ek youmlntemler Tablo 32 de
goumlsterilmektedir Bu youmlntemler sayesinde sunucuyla asenkron ileti im kurulur
Tablo 32 Standart XHR nesnesinin fonksiyonlar
[42]
Youmlntemler Tan mlar
abort() Geccedilerli iste i iptal eder
getAllResponseHeaders()
Gelen cevab n ba l k bilgilerini string olarak getirir
getresponseHeader(x) x gibi bir parametre olarak verilen ba l k bilgisini getirir
setRequestHeader(xy) stekle goumlnderilen ba l k bilgisine istenilen etiketi ya da de eri atar
Tablodaki youmlntemler d nda open ve send youmlntemleri de s kccedila kullan lmaktad r
Open youmlnteminin parametreleri a a da goumlsterilmektedir
nesneopen( POST | GET URL asynch username password)
1 Parametre Web sayfas na yap lacak iste in hangi youmlntemle yap laca n belirtir
2 Parametre stek yap lacak Web sayfas n n URL adresi E er GET youmlntemi
kullan l yorsa querystring lerin de erleri URL e birle tirilerek belirtilmelidir
3 Parametre True de eriyle yap lacak iste in e zamans z olaca false de eri ile
e zamanl
olaca belirlenir E er false de eri verilirse i lem bitene kadar taray c di er
kullan c isteklerine cevap veremeyecektir True yap l rsa istek ayr bir i lem olarak ele
al nacakt r
4 ve 5 Parametre Opsiyonel parametreler olup e er istek yap lan Web sayfas ifre ve
kullan c ad istiyorsa bu ekilde goumlnderilebilir [47]
Open ile haz rlanan istek sunucuya goumlnderilir E er open ile accedil lan istek post metodunu
kullan yorsa send metodu parametre olarak goumlnderilecek veriyi ta yabilir
Send metodu parametresiz veya null parametresi ile de kullan labilinir Send metodunda
cevab n gelip gelmedi inin anla labilmesi iccedilin yani e zamanl haberle menin hangi safhada
oldu unun belirlenebilmesi iccedilin Tablo 31 deki oumlzellikler eklenir Send metodunun kullan m
ekli a a da verilmi tir [42 47 48 49]
nesnesend() veya nesnesend(null)
32
3513 XHR Ccedilal ma Mant
ekil 313 bir AJAX uygulamas nda standart etkile imli bir paradigmay
goumlsterir [49]
lem ad mlar a a da s ralanmaktad r
ekil 313 Standart AJAX etkile imi [49]
1 stemci tarafl bir olay AJAX olay (event) tetikler stemcinin a a daki gibi her
hangi bir hareketi onchange olay n ba lat r
ltinput type=text d=eposta name=eposta onblur=validateEposta()gt
2 Oumlrnek bir XHR nesnesi olu turmak iccedilin open() youmlntemi kullan l r ve ccedila r lar iccedilin
ayarlan r URL ayarlar iste e goumlre kullan lacak HTTP youmlntemlerinden GET ya da
POST a goumlre belirlenir A a daki kod oumlrne inde oldu u gibi istek send() youmlntemi
ile bir ccedila r y tetikler
var xmlHttp
function validateEposta()
var eposta= documentgetElementById(eposta)
var url = validateeposta= + escape(epostavalue)
if (windowActiveXObject)
xmlHttp = new ActiveXObject(MicrosoftXMLHTTP)
else if (windowXMLHttpRequest)
xmlHttp = new XMLHttpRequest()
xmlHttpopen(GET url)
xmlHttponreadystatechange = gericagir
33
xmlHttpsend(null)
3 Sunucuya bir istek yap l r Bu bir servlet CGI script PHP ya da ASPNET ile
yaz lm herhangi bir sunucu tarafl (server-side) script olabilir
4 Sunucu herhangi bir veri ambar na eri ebilir
5 stek taray c ya geri doumlnduumlruumlluumlr XHR nesnesi Content-Type ayar textxml dir
XHR nesnesi sadece texthtml tipindeki sonuccedillar i leyebilir Daha karma k
oumlrneklerde cevap JavaScript DOM manipuumllasyon ya da ba ka benzer teknolojiler
iccedilerebilir
responsesetHeader(Cache-Control no-cache)
responsesetHeader(Pragma no-cache)
Taray c lokal sonuccedillar oumln belle inde depolamaz Bunun iccedilin yukar daki kod sat rlar na
ihtiyaccedil duyar
6 Bu oumlrnekte i lemler geri doumlnduumlruumllduuml uumlnde gericagir() ad ndaki XHR fonksiyonu
ayarlan r Bu fonksiyon sunucudan goumlnderilen durum kodlar na bakar ve XHR
nesnesinin readyState oumlzelli ini kontrol eder gericagir() fonksiyonu beklendi i gibi
i lenmi se a a daki gibi bir kod parccedilas goumlruumlluumlr
function gericagir()
if (xmlHttpreadyState == 4)
if (xmlHttpstatus == 200)
stek Ba ar l
Yukar daki anlat mla XHR nesnesinin ccedilal ma mant na de inilmi tir Genellikle
kullan lan standart ccedila r lar oumlrneklenmi tir Bu ccedila r lar yap l rken bir kuumltuumlphaneden yap lan bir
uygulamadan da faydalan labilir Yeni bir ccedilal ma alan olmas na ra men accedil k kaynak
topluluklar nda hat r say l r etkinlikler yap lmaktad r [49]
Uygulamalar olu turulurken genellikle ccedile itli frameworkler ve toolkitlerden faydalan l r
Bunlardan baz lar sadece istemci tarafl ccedilal r baz lar ise sunucu uumlzerinde ccedilal maya ihtiyaccedil
duyar
34
Bu frameworkler suumlrekli de i en ve geli en bir ortam oldu u iccedilin yeni kuumltuumlphaneler ve
suumlruumlmleri takip edilmelidir En yayg n kullan lan kuumltuumlphanelerin ba nda Prototype
scriptaculous Dojo Toolkit Direct Web Remoting (DWR) Taconite ve Rico gelmektedir [49]
36 AJAX Olu turan Bile enler
Asynchronous JavaScript and XML kelimelerinin ba harflerinden olu an AJAX
kavram kullan l zengin Web uygulamalar geli tirebilmek iccedilin pratik bir araccedilt r [50]
AJAX n A parccedilas veri ileti im tekni ini JA parccedilas ileti im youmlntemini X
parccedilas tekni in veri kodlama k sm n olu turur AJAX tam manas yla anlayabilmek iccedilin onu
olu turan bile enlerin her birini de anlamak gerekmektedir [41]
361 E zamanl Olmayan leti im
AJAX tekni inin ccedilekirde ini olu turan XMLHttpRequest nesnesi hem e zamanl hem
de e zamans z olarak ccedilal abilen bir yap uumlzerine kurulmu tur
Ccedilo u AJAX uygulamas XHR nesnesini asenkron olarak kullan r Asenkron istek
taray c ya goumlnderilir ama sunucudan bir cevap gelmesini beklemektense sonraki istek kodlar
i letilmeye devam eder lenen cevap goumlnderildi inde XHR nesnesinin onreadystatechange
oumlzelli i bir fonksiyona ba lan r Bu fonksiyonun i letilmesinden sonra readystate koduyla
iste in durumu test edilir readystate oumlzelli i 4 de erini ald nda sunucuya istek tamamland
ve sonuccedil geldi mesaj gider [51]
A a daki kod parccedilas nda asenkron bir ileti im goumlsterilmektedir [51]
get recipe using Ajax
function getRecipe(evnt)
if (xmlhttp) xmlhttp = aaGetXmlHttpRequest( )
if (xmlhttp) return
var drink = encodeURIComponent(documentgetElementById(drink)value)
var qry = drink= + drink
var url = recipephp + qry
xmlhttpopen(GET url true)
xmlhttponreadystatechange = printRecipe
xmlhttpsend(null)
if (evnt ampamp evntpreventDefault( ))
evntpreventDefault( )
35
return false
E zamans z ileti imde kullan c ayn zaman diliminde birden fazla i lem yapabilir
Oumlrne in Web sayfas nda bir form dolduruldu unda formdaki bilgiler AJAX ile goumlnderilirken
i lemin bitmesini beklemek gerekmemektedir O zaman diliminde Web sayfas n n ba ka bir
yerinde bulunan anket cevapland r labilir Ccediluumlnkuuml e zamanl
ccedilal l rken bloke edilen JavaScript
motoru e zamans z ccedilal rken serbesttir ve ba ka isteklerin goumlnderilmesine muumlsaade eder Yani
ayn zaman dilimi iccedilerisinde birden fazla iste i kabul edebilir [52]
ekil 314 E zamanl olmayan ileti im modeli
ekil 314 te goumlruumllduuml uuml gibi ayn zaman dilimi iccedilerisinde 4 adet istek yap lm t r
Kullan c bu isteklerin tamamlanmas n beklemek zorunda de ildir Bu sebeple istemci ve
sunucu aras ndaki t kla-bekle-t kla-bekle etkile imi ortadan kalkmaktad r
362 E zamanl leti im
Senkron isteklerde taray c cevap iccedilin beklerken kilitlenir
var state = documentforms[0]elements[0]value
var url = ajaxphpstate= + state
xmlhttpopen(GET url false)
xmlhttpsend(null)
alert(xmlhttpgetAllResponseHeaders( ))
Yukar daki kod dizesiyle bir form alan na Web servisi uumlzerindeki HTTP GET istek
yap s kullan larak eri ilir Uumlccediluumlncuuml sat rdaki open youmlnteminin uumlccediluumlncuuml parametresinin false
olmas n n anlam iste in e zamanl (senkron) oldu unu goumlsterir Herhangi bir parametre
almadan null de erli istek goumlnderilir stek goumlnderildikten hemen sonra uyar mesaj kutusu
36
accedil larak cevap ba l yaz l r [51] Kullan lan Web servisi h zl ysa cevap hemen gelir E er
servis yava sa istek bitinceye kadar di er sayfa aktiviteleri gerccedilekle emez [51]
E zamanl
ileti imde ayn zaman diliminde yaln zca bir i lem yap labilinir Web
taray c m zdan uzaktaki Web sunucusuna goumlnderilen istek Web sunucusunda i lenir ve tekrar
geldi i yoldan Web taray c s na geri doumlner Bu i lem belli bir zaman al r E zamanl
ccedilal rken
bu zaman diliminde ba ka bir istek goumlnderilemez [52]
E zamanl
ccedilal ma oumlzellikle Web sunucusu ayn bilgisayarda ise veya yak n olan bir
LAN uumlzerindeyse sa l kl ccedilal abilir Fakat Web sunucusu a r bir yuumlk alt ndaysa veya Web
taray c s Web sunucusuyla yava bir ba lant uumlzerinden etkile ime geccediltiyse koumltuuml bir
performans verecektir Ccediluumlnkuuml Web taray c s iccedilindeki JavaScript motoru goumlnderdi i istek
tamamlan ncaya kadar bloke edilir ve Web taray c s donmu bir ekilde iste in
tamamlanmas n bekler Bu zaman diliminde kullan c goumlnderilen iste i iptal de edemez Bu
yuumlzden Web sayfas ndaki ba ka bir noktaya t klayamaz veya ba ka bir sekmeye geccedili yapamaz
[52]
ekil 315 E zamanl
ileti im modeli
ekil 315 de goumlruumllduuml uuml gibi Web taray c s ndan goumlnderilen 1 nolu istek Web
sunucusuna iletilmektedir Al nan istek i lendikten sonra Web taray c s na geri
goumlnderilmektedir Bu zaman diliminde ba ka bir istek yap lamaz
363 Javascript
1995 y l nda Brendan Eich ad ndaki yaz l m geli tiricisi taraf ndan Netscape Navigator
20 ile birlikte geli tirilen JavaScript dili istemci tarafl
(client-side) bir betik (script) dilidir
Web sayfalar nda dinamik iccedilerik sa lamak ya da kullan c yla ileti im kurmak iccedilin kullan l r [53]
Bu ileti imin sa lanabilmesi iccedilin ortak kurallar duumlnyada uluslararas standart kurumu olan
Avrupa Bilgisayar Uumlreticileri Birli i (European Computer Manufacturers Association-ECMA)
taraf ndan belirlenir Temel kurallar ECMA Script (ECMA-262) ad verilen bir standartta
toplanm t r [54]
37
Javascript in soumlz dizim kurallar C diline benzerlik goumlsterir Derleme i lemi yap lmayan
ayr t rmal (parsed language) bir dildir Nesne youmlnelimli programlama (Object Oriented
Programming - OOP) yetene ine sahiptir [55]
AJAX n JavaScript le olan ili kisi k saca u ekilde oumlzetlenir Herkes taraf ndan
bilinen goumlnder (submit)-cevap(response) doumlnguumlsuumlnuumln oumlnuumlne geccedilerek kullan c lar n Web
sunucusuyla direk etkile im iccedilinde bulunmas n sa lar [56] AJAX goumlnder duuml mesi olmaks z n
sunucu etkile imini sa lar Veriye ihtiyaccedil duyuldu unda Web sayfas iccedilindeki Javascript kodlar
ile bir istek yapar Sunucu cevab tam bir HTML sayfas olarak de il veri olarak geri doumlnduumlruumlr
ve istemciyi cevaplar Cevab n bu ekilde olu turulmas Web uygulamalar n n masauumlstuuml
uygulamalar gibi ccedilal abilmesini sa lar [56]
Sonuccedil olarak Javascript HTML kodlar aras na goumlmuumllebilen kod parccedilalar d r Bunun
yan s ra tek ba na js uzant l JavaScript kodlar da yaz labilir Bu kodlar Internet Explorer
Firefox Opera vb tuumlm taray c lar taraf ndan desteklendi i iccedilin sorunsuz ccedilal r [57]
3631 JavaScript Ccedilal ma Prensibi
JavaScript kodlar
iccedilin herhangi bir metin editoumlruuml kullan labilir ya da Notepad gibi bir
duumlz yaz program yla da kodlar olu turulabilir Taray c lar n yorumlayabilmesi iccedilin ltSCRIPTgt
etiketiyle ba layan ltSCRIPTgt etiket ile biten JavaScript kodlar HTML belgelerinin ccedile itli
yerlerine eklenebilir Eklenen kodlar kullan c lar n HTML belgesindeki bir ba lant ya t klamas
veya klavyede bir tu a basmas yla tetiklenir ya da HTML sayfas kullan c
Browser nda
goumlruumlntuumllendi i anda otomatik olarak ccedilal maya ba lar Otomatik ccedilal an Javascript kodu ise iki
ayr youmlntemle ccedilal t r labilir lk youmlntem HTML kodlar i letilmeden oumlnce (yani Web sayfas
kullan c n n Web Browser nda goumlruumlntuumllenmeden oumlnce) ccedilal mas ikinci youmlntem sayfa
goumlruumlntuumllendikten sonra script kodlar n n ccedilal mas d r [58] Bu youmlntemler a a da s ras yla
accedil klanmaktad r
HEAD boumlluumlmuumlnde
BODY boumlluumlmuumlnde
HEAD Boumlluumlmuumlndeki Scriptler HEAD etiketleri iccediline ltSCRIPTgt ltSCRIPTgt etiketi
kullanarak istenilen JavaScript kodlar
eklenebilir Bu kodlar HTML sayfas n n BODY boumlluumlmuuml
yuumlklenmeden i lenir
38
ltHTMLgt
ltHEADgt
ltSCRIPT LANGUAGE=Javascript12gt
alert(Merhaba Duumlnya) ltSCRIPTgt
ltHEADgt
ltBODYgt
ltBgtDeneme Sayfas na Ho geldinizltBgtltbrgt
ltBODYgt
ltHTMLgt
Yukar daki oumlrnekte kaynak kodlar yukar dan a a ya do ru i letilirken sayfada ilk
goumlruumlntuumllenecek olan alert( ) komutuyla ekrana yaz lan Merhaba Duumlnya
ileti im kutusu
olacakt r Gelen ileti im kutusunda Tamam butonuna bas ld nda body boumlluumlmuumlndeki
kodlar n i lenmesine s ra gelecektir Ekrana Deneme Sayfas na Ho geldiniz mesaj
yazacakt r
BODY Boumlluumlmuumlndeki Scriptler HTML belgesinin BODY boumlluumlmuumlnde JavaScript
kullanmak iccedilin iki yol vard r
Do rudan ccedilal acak kodlar ve kullan c taraf ndan ccedilal acak kodlar
Do rudan ccedilal acak JavaScript kodlar
ltBODYgtltBODYgt etiketleri aras na
ltSCRIPTgt etiketi kullan larak HTML belgesinin istenilen yerine yaz l r Bu cuumlmleler taray c
taraf ndan okundu u anda yerine getirilir
ltHTMLgt
ltHEADgt
kinci Ornek
ltHEADgt
ltBODYgt
ltSCRIPT LANGUAGE=Javascript12gt
alert(Javascript duumlnyas na ho geldiniz)
ltSCRIPTgt
ltBODYgt
ltHTMLgt
Yukar daki oumlrnekte ise kod i leme s ras na uygun olarak i letilerek oumlnce HEAD
etiketleri yorumlanarak ekrana kinci Ornek yaz p hemen ard ndan ileti im kutusu ccedil karak
39
Javascript duumlnyas na ho geldiniz yazacakt r Kullan lan di er bir youmlntem ise kullan c
taraf ndan bir olay n ba lat lmas yla bir JavaScript kodunun ccedilal t r lmas d r
ltHTMLgt
ltHEADgt
ltSCRIPT LANGUAGE=Javascript12gt
genel de i ken tan mlar
var n = Merhaba Duumlnya
bu fonksiyon uyar kutusu accedilar
function merhaba()
alert(n)
ltSCRIPTgt
ltHEADgt
ltBODYgt
ltbrgtltbrgtltbrgtltbrgtltBgtButona T klad n zda Merhaba Duumlnya yazan ileti im kutusu ekrana
gelecektirltBgtltbrgtltbrgt
ltFORMgt
ltINPUT TYPE=SUBMIT NAME=dugme1 VALUE=TIKLAYINIZ
onclick=merhaba()gt
ltFORMgt
ltBODYgt
ltHTMLgt
Yukar daki oumlrnekte ise HEAD etiketleri aras nda de i ken tan mlama ve fonksiyon
olu turma i lemleri yap lm t r BODY komutu i letildikten sonra FORM ouml esiyle olu turulan
duuml me kullan c taraf ndan t kland nda script kodu tetiklenerek fonksiyon ccedila r l r ve mesaj
kutusu ekrana gelir
Ayr ca ltBODYgt iccedilinde URL kullan larak da a a daki oumlrnek kodla goumlsterildi i gibi
JavaScript kodu ccedila r labilmek muumlmkuumlnduumlr
ltA HREF=javascript alert(Ccedil kmak istedi inizden emin misiniz)gtSiteden Ccedil kltAgt
40
3632 Javascript Dilinin Oumlzellikleri
JavaScript dilinin temel soumlz dizim yap s na a a da incelenecektir
36321 De i kenler
Bir de eri iccedileren bellek adlar n ifade ederler De i kenler verileri saklar ve onlara
eri imi sa larlar De i kenlerin bir ad olur bir de de eri olur Program boyunca de i kenin ad
de i mez fakat iccedileri i de i ebilir
Bir JavaScript de i keni belli kurallara uymak zorundad r
a) De i kenler harfle ya da alt ccedilizgi (_) ile ba lamal d r Rakam veya di er
i aretler birinci karakter olarak kullan lamaz fakat de i ken ad n n di er
karakterlerinde kullan labilir
b) Javascript buumlyuumlk kuumlccediluumlk harfe kar duyarl d r (case-sensitive oumlzellli i) Ayn
kelimenin buumlyuumlk harfle yaz lmas ile kuumlccediluumlk harfle yaz lmas farkl isimler
olarak alg lanmas na neden olur
c) De i ken isimleri iccedilinde bo luk olmamal d r
d) Kullan c lar n bilgisayar nda kullan lan dil setinin ayarlar her bir kullan c iccedilin
farkl l k goumlsterebilece i iccedilin ngilizce alfabede bulunmayan Tuumlrkccedile ve di er
dillerdeki high-ASCII karakterleri ( ile uuml Uuml ouml Ouml ccedil ve Ccedil)
kullanmamakta fayda vard r [58]
36322 Kapsam
Bir de i kene bir de er atand nda bu de erin geccedilerli olaca suumlreyi belirlemek iccedilin
kapsam (scope) kavram kullan l r Bir de i kenin kapsam
global ya da lokal olabilir Bir
global de i kene sayfa uumlzerinde herhangi bir JavaScript ten eri ilebilir Lokal de i ken ise
de erin atand yordam iccedilinde geccedilerlidir
A a daki oumlrnekte bir de i kenin kendisine atama yaparak de er verilir
adi= Zeynep
Bir fonksiyon yaz l rken yerel bir de i ken olu turmak iccedilin a a daki oumlrnekte oldu u
gibi var kelimesiyle tan mlama yap l r
41
function toplama()
var sayi=1
toplam=0
deyimler
Yukar daki oumlrnekte sayi adl de i ken toplama fonksiyonu iccedilin yerel toplam de i keni
ise tuumlm sayfa iccedilin genel (global) de i ken olacakt r De i kenlere atanan de erler Tablo
33 deki de i ken tuumlrlerinden herhangi biri olabilir Verinin tuumlruumlne ba l olarak de er uumlzerinde
belirli i lemler yap labilir ya da yap lamaz Oumlrne in iki string de er uumlzerinde aritmetik i lem
yap lamaz
Tablo 33 De i ken tuumlrleri
De i ken Tuumlrleri
Numbers Tam ve ondal kl
say lar iccedilerir Pozitif 0 ya da negatif olabilir
Booleans Mant ksal veri tuumlruumlduumlr True (Do ru) ya da False (Yanl ) de erini al r Sorgulama
sonunda geriye True iccedilin 1 False iccedilin 0 de erini doumlnduumlruumlr
Strings Karakter bilgi iccedileren bir de i kendir T rnak iccedilinde yaz lan ifadeler de i kene
atan r
Objects Taray c ya ait nesnelerdir nesne= new Object() eklinde kodlamada kullan labilir
Null Oumlzel bir de i kendir ccedili bo ya da de ersiz olarak ifade edilir
Undefined
Bir de i ken yarat ld ktan sonra iccedilerdi i tan ms z de eri simgeler
36323 leccediller (Operators)
leccediller iki ya da daha fazla de er uumlzerinde i lem yap lmas n sa lar De erler ya da
de i kenler aras nda toplama ccedil karma mod gibi i lemler yap labilir
Tablo 34 leccediller ve goumlrevleri
leccediller ve Goumlrevleri
+ Toplama
- Ccedil karma
Ccedilarpma
Boumllme
42
MOD Boumllmede kalan verir (10 3 i lemi 1 de erini verir )
++
Tek art r m De er 1 art r l r
-- Tekli azaltma
- Negatifle tirme lenenin negatif de erini doumlnduumlruumlr
36324 kili leccediller
kili i leccediller birden ccedilok kar la t rma i lemini tek bir ko ul ifadesi olarak birle tirirler
Oumlrne in
sayi =1 AND dongu gt 1000 ise gibi
Tablo 35 kili i leccediller
kili i leccediller
ampamp
Mant ksal Ve And ki ifade de do ruysa True de erini doumlnduumlruumlr
|| Mant ksal Veya Or fadelerden birisi do ruysa True de erini doumlnduumlruumlr
Mant ksal De il Not Negatifle tirme i lemi do ruysa True de erini doumlnduumlruumlr
36325 Atama Deyimi
Atama deyimi (=) bir de i kene sa dan bir de erin atanmas n sa lar De i kenlere
tuumlrlerine ve tan mlamalar na uygun olan herhangi bir de er atanabilir
Oumlrnek sayi=100
Oumlrnek toplam=(fiyat+kdv)
Sa daki de eri soldaki de i kene atayan += -= = = ifadeleri de kullan labilir
Oumlrne in toplam+=fiyat (di er bir de i kenden gelen fiyat de erini toplam de erine
ekler ve sonucu toplam de i kenine atar)
36326 fadeler
De i kenlerin i leccedillerin ve deyimlerin bir araya gelerek olu turduklar yap lar
ifade
eder
Oumlrne in toplam = sayi 1 sayi2 formuumlluuml bir ifadedir
43
36327 Deyimler
Deyimler belli bir komut ya da soumlz dizimi bile enlerine verilen add r Oumlrne in bir komut
ya da bir IF yap s deyim olabilir
Oumlrnek if (basari_notugt50) deyimler else deyimler
36328 Nesneler
Kendi de erleri oumlzellikleri ve i lemleri olan bile enlere nesne (object) denir JavaScript
dilinde ccedilok say da yerle ik nesne vard r
JavaScript buumltuumln Web sayfas n ve taray c y nesneler toplulu u olarak goumlruumlr Bu
sisteme DOM (Document Object Model) denir [59]
JavaScript kullanarak dinamik ve etkile imli goumlruumlnuumlmler elde edilir DOM a JavaScript
ve JScript gibi ECMAScript olan kullan c taraf ndaki bir scripting dili yard m yla eri ilebilinir
DOM la veri al -veri i yeni bir sayfada kullan c ekran na yans t lmaz Parccedilal guumlncelleme
olay n n buumlyuumlk k sm bu modelle gerccedilekle tirilir
Ba lang ccedilta Javascript geli tiricileri kullan c lar na daha zengin uygulama deneyimleri
ya atabilmek ve sayfalardaki etiketlerde dinamik de i imler sa lanabilmesi iccedilin ccedilaba sarf
ediyordu Bu durum sayfalar n bir nesne gibi i lenebilmesini gerekli k ld Boumlylece DOM ortaya
ccedil km t r lk oumlnceleri Javascript ve DOM s k bir ili ki iccedilindeydi sonuccedilta ise iccedilerik ayr larak
geli tirilmi tir DOM sayfalar n JavaScript veya VBScript gibi bir betik dili ile de i tirilebilir
sayfalar n tamamen nesne youmlnelimli goumlsterimidir [60]
DOM ekil 316 da goumlsterilen JavaScript iccedilindeki buumltuumln nesneleri ifade etmektedir
Hiyerar ik olarak ccedilok say da nesneyi iccedilerir NetScape ve Microsoft taray c lar iccedilin DOM
nesneleri farkl oldu u iccedilin yaz lan kodlar uyumlu de ildir [59]
44
ekil 316 Javascript nesneleri [59]
Window nesnesi taray c n n kendisidir Window nesnesi birccedilok youmlnteme oumlzelli e ve
olaya sahiptir Form nesnesi DOM nesnesinin ana nesnesidir Form uumlzerindeki alanlar bu nesne
arac l yla kullan l r [59]
Verilerin yuumlklenmesinde kullan lan XML ile uumlretilen Javascript istemci kodlar ve veri
sunucu uumlzerindeki kodlar aras ndan ayr larak goumlsterilir Bu istemcinin etkilenmeksizin sunucu
uumlzerinde de i iklik yap lmas n sa lar Benzer API iccedileren di er istemciler iccedilin bilgileri accedil a
ccedil kar r [41]
363281 DOM (Document Object Model)
Document Object Model (DOM) XML ve HTMLXHTML iccedilin World Wide Web
Consortium (W3C) taraf ndan geli tirilen bir belgenin a accedil yap s n (tree-based) temsil eden bir
standartt r DOM bir tak m nesneler iccedilin belgenin yap s n temsil etmesinin yan s ra bu
nesnelere eri im iccedilin youmlntemler de sa lar [44]
DOM bir belgenin stilini kaynak dosyas n yap s n ve iccedileri ini guumlnceller ve program
ile scriptlerin belgeye eri imine izin veren bir platformdur Ayn zamanda bir API (application
programming interface) dir [62]
Nesneleri iccedileren belgeler iccedilin standart model olarak DOM uumlccedil boumlluumlme ayr lm t r
Core DOM
XML
HTMLXML DOM - XML
45
HTML DOM
HTML
DOM da her internet sayfas bir belge ve bu belge iccedilerisinde bulunan tuumlm elemanlar ise
nesne olarak kabul edilir DOM sayfa uumlzerindeki her bir XML eleman
iccedilin nesnelerin a accedil
yap s n n resmini goumlrselle tirmenin kolay bir yoludur A a daki oumlrnek basit bir XML
belgesinin doumlrt duuml uumlmden olu an DOM u goumlstermektedir Koumlk Dokuumlman duuml uumlmuuml koumlk etiketi
iccedilin bir Element duuml uumlmuuml alt etiketler iccedilin bir Element duuml uumlmuuml ve alt etiketin sahip olaca
herhangi bir bilgi girilebilen bir metin duuml uumlmuumlduumlr [41]
ltrootTaggt
ltchildTaggtSome TextltchildTaggt
ltrootTaggt
Bir a accedil yap s n n goumlrsel bir temsili a a da goumlsterilmektedir
Dokuumlman
Element (koumlkEtiket)
Element (altEtiket)
Metin
A a daki kod kuumlmesinin [63] DOM goumlsterimi ekil 317 deki gibidir
ltTABLE border=1gt
ltTBODYgt
ltTRgt
ltTDgtOumlgr NoltTDgt
ltTDgtAd Soyad ltTDgt
ltTRgt
ltTRgt
ltTDgt900ltTDgt
ltTDgtZeynep OumlZERltTDgt
ltTRgt
ltTBODYgt
ltTABLEgt
46
ekil 317 DOM a accedil yap s
[63]
Geccedilerli her HTML ve XML belgesindeki element nitelik metin duuml uumlmuuml (text node)
hatta bo luk ve sekme karakterleri(whitespace) bile W3C DOM taraf ndan duuml uumlm (node) olarak
kabul edilir ekil 317 deki gibi belgedeki duuml uumlmlerin kullan m hiyerar isine goumlre
s ralanmas na da duuml uumlm a ac (node tree) denir Belge nesnesi yeni duuml uumlmler olu turmak bu
duuml uumlmlerin oumlzeliklerini de i tirmek ve youmlnetmek iccedilin ccedilok say da youmlnteme sahiptir
363282 DOM Elementinin S k Kullan lan Genel Oumlzellikleri ve Youmlntemleri
A a da duuml uumlmlere eri mek ve youmlnetmek iccedilin s k kullan lan JavaScript youmlntemleri
vard r [64]
getElementById()
Soumlzdizimi
documentgetElementById(herhangiBirID)
Oumlrnek kullan m
element = documentgetElementById(kimlik)
getElementById() youmlntemi id oumlzelli i belirtilen elementlerin referans n n al nmas n
sa lar Ayn id kimli ine sahip ba ka bir element olmas durumunda sadece ilk elementi verir
Di erlerine eri im sa lamaz kimlik
dokuumlman uumlzerinde elementi bulmak iccedilin kullan lacak
e siz bir oumlzelli ini ifade eder
47
getElementsByTagName()
Soumlzdizimi
documentgetElementsByTagName(herhangiBirHTMLElementi)
Oumlrnek kullan m
documentgetElementsByTagName(etiketAdi)
Dokuumlman uumlzerinde belirtilen ayn etiket ismine ait buumltuumln elementlerin bir listesini verir
documentgetElementById(herhangiBirID)documentgetElementsByTagName()
parametresiyle id niteli inin de eri herhangiBirID olan elementin duuml uumlmleri
iccedilindeki tuumlm elementler listelenir
getElementsByName()
Soumlzdizimi
documentgetElementsByName(herhangiBirIsim)
Oumlrnek Kullan m
documentgetElementsByName(baslik)
Bu youmlntem dokuumlman uumlzerinde belirtilen name oumlzelli ine sahip elementlerin bir listesini
verir Oumlrnek kullan mda name niteli inin de eri baslik olan elementleri verir
firstChild
Bu oumlzellik elementin ilk alt elementini verir
Soumlzdizimi
documentgetElementById(herhangiBirID)firstChild
lastChild
Bu oumlzellik elementin son alt eleman n verir
Soumlzdizimi
documentgetElemementById( herhangiBirID )lastChild
48
nodeValue
nodeValue oumlzelli i text comment ve CDATA duuml uumlmlerinin iccedilerdikleri de eri verir
Soumlzdizimi
m= documentgetElemementById( herhangiBirID )lastChildnodeValue
m e er varsa duuml uumlmuumln iccedilerdi i de erin string olarak de eridir document nesnesinin
ve elementlerin nodeValue de eri null doumlner
removeAttribute()
removeAttribute fonksiyonu elementin belirtilen bir oumlzelli inin silinmesini sa lar
Soumlzdizimi
elementremoveAttribute(ozellik)
ozellik silinecek oumlzelli in ad d r
nodeName
Duuml uumlm bilgilerini almak iccedilin kullan l r Geccedilerli duuml uumlmuumln ad n doumlnduumlruumlr
Geccedilerli duuml uumlm element ise elementin tipini doumlnduumlruumlr Nitelik ise nitelik ad n doumlnduumlruumlr
nodeType
Geccedilerli duuml uumlmuumln tuumlruumlnuuml say sal olarak doumlnduumlruumlr
nextSibling
Duuml uumlmler aras gezinti yap labilmesiyi sa lar Geccedilerli duuml uumlmden bir sonrakine referans verir
previousSibling
Geccedilerli duuml uumlmuumln bir oumlncekine referans verir
setAttributeNode
Bir duuml uumlme nitelik atamada kullan l r
Soumlzdizimi
elementsetAttributeNode(nitelik)
49
36329 Fonksiyonlar
Fonksiyonlar birden fazla ad mdan olu an i lemlerin kolayca tek seferde yap lmas n
sa lar Fonksiyonlar bir dizi i lemi yerine getirir ve bir sonuccedil doumlnduumlruumlr Ayr ca fonksiyonlar
parametre olarak kabul edilen birccedilok de er al rlar
Fonksiyonlar n HTML dosyas n n HEAD boumlluumlmuumlne koyulmas yani gerekli buumltuumln
fonksiyonlar alt alta HTML in HEAD boumlluumlmuumlnde yer alacak bir SCRIPT etiketi iccedilinde
olu turulmas taray c n n Javascript yorumlay c s bak m ndan h z kazanmas n sa lar Sonra
ihtiyaccedil duyuldu unda yeni bir SCRIPT etiketi koyarak bu fonksiyon goumlreve ccedila r l r [58]
function fonksiyonun_ad (arguumlman1 arguumlman2 arguumlmanN)
i lemler
deyim 1
deyim 2
deyim N
363210 Accedil klamalar
Programlar n anla l r olmas n sa layan accedil klama sat rlar JavaScriptte bu lt- ve --gt
i aretlerinin aras nda ifade edilir [58]
lt- Accedil klama sat r d r --gt
37 Basit Bir AJAX Oumlrne i
Ekran ccedil kt s ekil 318 de goumlruumllen basit bir oumlrnek uumlzerinde i leyi anlat lacakt r
ekil 318 AJAX oumlrne i
50
indexhtml dosyas accedil ld nda Metnin AJAX la getirilmesi iccedilin tiklayiniz
ba lant s na t kland nda taray c kullan lan AJAX youmlntem sayesinde tuumlm sayfa yeniden
yuumlklenmeden iccedileri i sunucu da depolanan sonuchtm dosyas ndan alarak ekrana yans t r
Yukar daki indexhtml dosyas n n kodlar a a da goumlsterilmektedir
lthtmlgt
ltheadgt
lttitlegtAJAXla oumlrne ilttitlegt
ltscript language=JavaScript type=textjavascriptgt
function getXmlHttpRequestObject()
if (windowXMLHttpRequest)
return new XMLHttpRequest() IE olmayan
else if(windowActiveXObject)
return new ActiveXObject(MicrosoftXMLHTTP) IE
else
alert(Maalesef taray c n z XmlHttpRequest nesnesini desteklememektedir AJAX
destekleyen bir taray c da tekrar deneyiniz)
var receiveReq = getXmlHttpRequestObject()
function cevap()
if (receiveReqreadyState == 4 || receiveReqreadyState == 0)
receiveReqopen(GET sonuchtml true)
receiveReqonreadystatechange = handlecevap
receiveReqsend(null)
function handlecevap()
if (receiveReqreadyState == 4)
documentgetElementById(span_result)innerHTML = receiveReqresponseText
ltscriptgt
ltheadgt
lta href=javascriptcevap()gtMetnin AJAXla getirilmesi icin tiklayinizltagtltbr gt
51
ltspan id=span_resultgtltspangt
lthtmlgt
Oumlrnekte ilk olarak tuumlm taray c larda sorunsuz ccedilal abilmesi iccedilin ccedilapraz taray c deste i
sa lanm t r receiveReq de i keni getXmlHttpRequestObject() ile tan mlanm t r Daha
sonra cevap fonksiyonu olu turulmu tur Sunucudan gelen cevab n durumu ifelse yap s yla
kontrol edilmi tir Sunucudan gelen gelen cevaba goumlre doumlnduumlruumllen de erlerle sonuchtml sayfas
ccedila r larak uygulama sonlan r
AJAX youmlntemi ile ccedilekilen bilginin tutuldu u sonuchtml dosyas nda ise sadece ekil
319 de yazan veri bulunmaktad r
ekil 319 sonuchtml sayfas n n ekran ccedil kt s
38 XML
XML (eXtensible Markup Language) internet te teknik standartlar ve youmlnetim
konusunda yetkili organ olan W3C (World Wide Web Consortium) organizasyonu taraf ndan
geli tirilmi tir XML programc lar n kendi sistemlerini olu turabilecekleri kendi etiketlerini
tan mlayarak ccedilok daha rahat ve etkin programlama yapabilecekleri ve bu belirlenen etiketleri
kendi yap lar iccedilerisinde standartla t rabilece i esnek geli tirilebilir ve kolay uygulanabilir bir
meta-dil (bir dili tan mlamak iccedilin kullan lan soumlzcuumlkler dilbilim dili) dir [65]
XML ile ilgili ilk ve en oumlnemli nokta ba l ba na bir dil olmamas d r Daha ziyade
di er dilleri ya da bir dili olu turan soumlzcuumlkleri olu turmak (vocabularies) iccedilin kullan lan bir
meta-dildir XML bu soumlzluumlklerin olu turulmas iccedilin gerekli kurallar tan mlar [66]
XML bu kural yap s na uygun olarak etiketleri iccedilerik bilgisiyle tan mlayabilir XML nin
esnek yap s sayesinde a a daki oumlrnekte oldu u gibi kullan lan dilde ccedilok farkl tiplerde etiket
olu turulmas na muumlsaittir XML soumlzluuml uumlndeki tek k s tlamas etiketlerin iyi biccedilimlendirilmi
olmas gerekti idir [66]
52
ltnotgt
ltkimegt Melek lt kimegt
ltkimdengt Zeynep lt kimdengt
ltbaslikgt Hatirlatici ltbaslikgt
ltbodygt Bana proje teslim tarihini hatirlat lt bodygt
ltnotgt
Yukar daki not oumlrne i kendi kendini accedil klay c bir oumlrnektir Goumlnderici ve al c bilgisinin
yan nda mesaj metni ve ba l da mevcuttur XML nin HTML de oldu u gibi oumlnceden
tan mlanm etiketleri yoktur XML yazar kendi etiketlerini ve kendi belge yap s n oumlrnekteki
gibi olu turabilir
Her dil farkl d r ama hepsinde iccedileri i i aretlemek iccedilin etiketler kullan l r Etiket
adlar n n seccedilimi ve yap s esnektir ve genellikle gruplarda bilginin payla labilmesi iccedilin standart
XML soumlzluumlkleri kararla t r lm t r [66]
XML 1998 y l nda SGML alt yap s uumlzerine kurulmu tur SGML (Standard
Generalized Markup Language) bir etkinle tirme teknolojisidir HTML gibi uygulamalarda
kullan l r Geni letilebilir aretleme Dili (Extensible Markup Language-XML) nin oldukccedila
basit bir diyalektidir [66]
XML SGML ve HTML sistemlerinin her ikisinin de uygulanmas n kolayla t rmak iccedilin
tasarlanm t r XML ayn zamanda son derece popuumller bir veri format d r Ccediluumlnkuuml ccedilo u
programlama dili taraf ndan desteklenir Bu dil sayesinde geli iguumlzel veri tipleri tan mlamak
kolayd r Ccedilo u kez XML Uzak Yordam Ccedila r s - Remote Procedure Call (RPC) mekanizmas
sayesinde istemci-sunucu ileti imini kolayla t rmak iccedilin kullan lm t r [66] XML elde edilmek
istenen alan bilgileri konfiguumlrasyon parametreleri teknik ccedilizim hesap ccedilizelgesi (spreadsheet)
gibi ouml eleri iccedileren dosyalar n yaz l m nda kullan l r [67]
XML verileri goumlruumlntuumllemek iccedilin de il verilerin platformdan ba ms z bir ekilde
depolanmas ve transferi iccedilin tasarlanm t r XML tuumlm bilgiler duumlz metin format nda saklar Bu
da tuumlm platformlarda sorunsuz bir ekilde kullan labilir olmas n sa lar Bu dosyalar diskte duumlz
metin olarak tutman n bir avantaj
da olu turuldu u programda accedil lmas gerekli de ildir Bu
yaz dosyalar programc n n istedi i bir yaz i leme program nda accedil l p duumlzenlenebilir Ayr ca
XML veriyi duumlz metin (plain text) format nda saklamas ndan dolay veriyi payla t rma
konusunda hem yaz l m hem de donan mdan ba ms z hareket edebilme imkacircn n sunmu tur
53
381 Oumlrnek XML Belgesi Olu turma
XML belgelerinin yap s n n daha iyi kavranabilmesi iccedilin basit bir oumlrnekten yola ccedil k l r
Bir dizi karakter mant ksal bir yap ya ccedilevrilmelidir Bu ccedilevrim a accedil yap s kullan larak
yap labilir Oumlrnek belgede koumlk dizin ya da element ve alt boumlluumlmler iccedilin de dallar belirlenir
denemexml olarak kaydedilecek belgenin iccedileri inde sisteme kay tl kullan c lar n bilgileri
vard r
Haz rlanan denemexml belgesinin a accedil yap s a a daki gibi olu turulmu tur Koumlk
element ve alt dallar ve alt dala ait nitelik belirtilmi tir
ekil 320 denemexml dosyas n n a accedil yap s
A accedil yap s olu turulduktan sonra kodlama k sm na geccedililir XML de kod yaz m n
kolayla t rmak iccedilin Altova XMLSpy MoreMotion XML Editor XMLwriter XML Editor 26
gibi ccedile itli editoumlr programlar kullan labilir Bu tez ccedilal mas nda oldukccedila i levsel oumlzelliklere
sahip Altova XMLSpy yaz l m kullan lm t r Editoumlr kullanarak dokuumlmandaki metinlerin
yap sal elemanlar yaz oumlzellikleri (renk stil biccedilim vb ) belirginle tirilir mlerin otomatik
soyadi
adi
soyadi
eposta
adi
soyadi
eposta
Kullanicilar Kullanici Kullanici_id= 2
Kullanici Kullanici_id= 3
Kullanici Kullanici_id= 1
adi
eposta
54
olarak kapanmas sa lanabilir Olu turulan yap lar n do rulu u ve geccedilerlili i kolayca kontrol
edilebilir Altova XMLSpy editoumlruumlyle olu turulan belge a a daki kodlardan olu maktad r
ltxml version=10 encoding=UTF-8gt lt--Bu XML belgesi kullan c bilgilerini tan mlar --gt ltKullanicilargt
ltKullanici kullanici_id=1gt
ltadigtZeynepltadigt
ltsoyadigtOZERltsoyadigt
ltepostagtz_ozerhotmailcomltepostagt
ltKullanicigt
ltKullanici kullanici_id=2gt
ltadigtYagmurltadigt
ltsoyadigtOZERltsoyadigt
ltepostagty_ozeryahoocomltepostagt
ltKullanicigt
ltKullanici kullanici_id=3gt
ltadigtFatihltadigt
ltsoyadigtAYDOGMUSltsoyadigt
ltepostagtf_aydogmusgmailcomltepostagt
ltKullanicigt ltKullanicilargt
Haz rlanan dokuumlman iyi biccedilimlendirilmi (well-formed) bir yap ya sahiptir ekil 321
de Altova XMLSpy editoumlruumlyle olu turulan belgenin ekran goumlruumlntuumlsuumlnde denemexml
goumlruumllmektedir
55
ekil 321 XML belgesi
382 XML Dokuumlman n n Yap s
XML ile veriler yap bak m ndan moduumllerlik kazanmaktad r Bu sayede verilerin iccedilerik
yap ve sunum k s mlar ayr moduumlller halinde farkl XML dokuumlmanlar nda tutulmaktad r
Her XML belgesini olu turan moduumlller iki boumlluumlmde incelenecektir Bu moduumlller giri
boumlluumlmuuml (prolog) ve belge ya da koumlk duuml uumlm (document node) olarak ayr lm t r
Prolog XML belgesinin ba nda goumlruumlntuumllenir ve belge hakk nda iccedilerikle ilgili bilgiler
iccedilerir XML bildirimleri i lem accedil klamalar yorumlar ve DTD (Document Type
Definition)XML ema iccedilerebilir
yi duumlzenlenmi bir XML dokuumlman tek ve temel bir koumlk duuml uumlm uumlzerine kurulur
Elementler nitelikler metin CDATA (character data) varl k ve yorumlar iste e ba l olarak
eklenebilir
56
ekil 322 Oumlrnek bir XML dokuumlman yap s
[ 66]
3821 Giri Boumlluumlmuuml (Prolog)
Bu boumlluumlmde XML belgesinde bulunabilecek oumln tan mlama konular incelenecektir
3822 XML Bildirimleri
XML dokuumlmanlar genellikle a a daki bildirim sat r yla ba lar Bildirim sat r ndan
oumlnce ba ka komut sat r yaz lmamal d r Tersi bir durumda XML dokuumlman iccedileri i i leme
koyarken do ru bir ekilde okuyamaz ve hata mesaj uumlretir
ltxml version= 10 encoding= UTF-8
gt
Bu i lem sat r nda ba lang ccedil etiketi ve biti etiketi yoktur XML bildiriminin yap ld
ltxml ve gt i lem komut etiketleridir lem komutlar oumlrnekteki gibi biti ik yaz l r Bu oumlrnek
sat rda 2 tane oumlznitelik bar n r Birinci oumlznitelik xml dokuumlman n n hangi suumlruumlm oldu unu bildirir
ve yaz lmas zorunludur En yayg n kullan lan ve en guumlncel suumlruumlmuuml olan 10 yerine ba ka bir
57
de er yaz ld nda dosya i lenmeyebilir kinci oumlznitelik olan encoding belge i lenirken
kullan lacak dil seccediliminin belirtildi i aland r Oumlrnekteki kod birccedilok dili destekleyen UTF-8
karakter dil setini tan mlar
38221 lem Accedil klamalar (Processing Instructions)
Giri boumlluumlmuumlnde di er uygulamalara XML dokuumlman hakk nda bilgi veren i lem
accedil klamalar (Processing Instructions- PIs) dacirchil edilebilir lem accedil klamalar lt karakterleriyle
ba lar ve gt karakterleriyle biter PIs XML belgesinin di er boumlluumlmlerinde goumlruumllebilmesine
ra men genellikle giri boumlluumlmuumlnde goumlruumlluumlr
XML bildirimleri ltxml karakter grubuyla ba lar lem accedil klamalar yla benzerlik
goumlsterir Fakat aralar ndaki fark XML bildirimleri ltxml karakter grubuyla ba larken i lem
accedil klamalar ise lt karakterleriyle ba lar
Bir XSL stylesheet i referans goumlsteren PI goumlsterimi
ltxml-stylesheet type= textxsl
href= stylesheetxsl gt
PI nin ilk ouml esi bir isimdir PI hedefi olarak adland r l r Yukar da goumlsterilen PI xml-
stylesheet ismine sahiptir simler ltxml karakter grubundan - semboluumlyle ayr l r PI ler type=
textxsl href= stylesheetxsl metin karakter dizesine sahiptir Oumlrnek kod sat r nda stylesheet
ad nda metin iccedilerikli bir XSL dosyas referans goumlsterilmi tir
38222 Yorumlar (Comments)
Yorum sat rlar XML belgesinin hemen hemen her yerinde iste e ba l olarak
kullan labilir XML yorum sat rlar XHTML belgelerindeki yap yla ayn d r Ayn karakterlerle
ba larlar
lt--Bu alana yorumlar yaz labilir --gt
Yorum sat rlar XML belgesi i lenirken etkilenmezler Bu sat rlar programc lar n ya da
kullan c lar n program kodlar n kolayca anlayabilmeleri iccedilin yaz l r [68]
58
38223 Dokuumlman Tipi Tan mlama-The Document Type Definition (DTD) ve XML
emalar
XML belgesinin standartla t r lmas iccedilin kullan lan bir yap d r XML belgesinin hangi
elementleri iccedilerece ini ve bu elementlerin oumlzniteliklerinin ne olaca n elementlerin neleri
ta yaca n dokuumlman iccedilerisindeki tekrar eklini ve say s n kurallarla belirtir [69]
382231 DTD kullanman n Avantajlar
Veri depolama XML nin temel amaccedillar ndan birisidir Oumlrne in yaz l m geli tirecek bir
proje ekibi ccedilal rken ortak bir DTD nin olu turulmas yla geli iguumlzel yeni etiketler eklenmesinin
etiketlerle depolanan bilginin hatal s ralanmas n n etiketlere hatal nitelikler eklenmesinin
oumlnuumlne geccedililmi olur Ayr ca i lem yapan program n da bu belgeleri tan mas ve i lemesi kesinlik
kazan r [70] Belge i lenirken geccedilerlilik derleyicileri (validating parsers) XML belgesinin DTD
geccedilerlili i sa lanana kadar tekrar tekrar kontrol eder E er geccedilerlilik kontroluumlnden geccedilemezse
derleyici hata mesaj verir [66]
ccedileri in bir standarda oturtulmas yla AJAX ve dinamik DOM manipuumllasyonunda
istenmeyen gereksiz kod parccedilalar n n ve ccedilal mayan i aretlemelerin oumlnuumlne geccedililir Ayr ca daha
h zl HTML derleyicileri ve daha iyi ccedilapraz taray c performans iccedilin geli mi arama motoru
optimizasyonu sa lan r Bir DOCTYPE belirlemenin en oumlnemli etkisi HTML iccedileri inin nas l
ayr t r ld n ve yorumland n n Web taray c ya goumlsterilmesi gerekti ini belirtmesidir Ayr ca
DOCTYPE ba l olarak CSS yorumlanabilir ve HTML farkl ekilde goumlruumlntuumllenir [71]
Hangi i lem moduna dacirchil oldu u tespit edilerek Web taray c lar
DOCTYPE
doumlnuuml uumlmuumlnuuml destekler Web taray c lar bir Web sayfas n n nas l HTML ve CSS iccedileri ini
yorumlad n
ve de erlendirdi ini sayfalar n DOCTYPE bildirimlerine dayanarak de i tirir
[71]
382232 DTD tan mlama
DTD olu umu iki yolla yap labilir Birinci yol belge iccedilerisinde a a daki oumlrnekte oldu u
ilk standart sat rdan sonra ltDOCTYPE ile ba layan ve gt i areti ile biten aral kla DTD tan m
yap lmas d r DTD alan nda bir kok_element_adi etiketi tan mlanm t r [ ]
i aretleri aras nda
iccedilsel olarak tan mlanm t r Bu etiketin iccedilerisine element_icerigi olarak alt alanlar belirtilir
XML dokuumlman n n iccedilerik k sm na tan mlanan kok_element_adi etiketleri aras na istenilen metin
giri i yap l r
59
ltxml version= 10 encoding= UTF-8 gt
ltDOCTYPE kok_element_adi
[ltELEMENT kok_element_adi (element_icerigi) gt ]
gt
lt kok_element_adi gt Bu basit bir DTDli XML ornegidir lt kok_element_adi gt
kinci yol ise Web sayfalar n n iccedileri i bir geccedilerlilik servisi kullan larak onaylanmas d r
Do rulu u W3C1 taraf ndan garantiye al nan bir DTD ile geccedilerlilik kontroluuml sa lanabilir [71]
HTML XHTML SMIL MathMLvb Web dokuumlmanlar n n httpvalidatorw3org adresinden
URI adresi dosyalar upload edilerek ya da direk i aretleme giri i yap larak geccedilerlilik kontroluuml
yap labilir [72]
DTD tan m a a daki oumlrnekteki gibi HTML belgesine harici olarak
httpwwww3orgTRxhtml1DTDxhtml1-strictdtd adresindeki haz r kural yap s
dacirchil edilir
Kural ak bu adresten sa lan r [72] A a daki kod sat r nda XML veri tan mlamas na goumlre
ltcodegtltcodegt etiketleri olu turulmu tur
ltDOCTYPE html
PUBLIC -W3CDTD XHTML 10 StrictEN
httpwwww3orgTRxhtml1DTDxhtml1-strictdtdgt
lthtmlgt
ltbodygt
ltpgt Bu alana serbest metin giri i yap labilir
ltcodegt
Bu alanda ise XML veri tan mlamas DTD tan m na goumlre yap lm t r
ltcodegt
ltpgt
ltbodygt
lthtmlgt
Programc lar n en ccedilok ihtiyaccedil duyabilece i 6 tane oumlncelikli DOCTYPE belgelerinin
listesi a a da verilmi tir [72]
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401EN
httpwwww3orgTRhtml4strictdtdgt
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN
httpwwww3orgTRhtml4loosedtdgt
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 FramesetEN
60
httpwwww3orgTRhtml4framesetdtdgt
ltDOCTYPE html PUBLIC -W3CDTD XHTML 10 StrictEN
httpwwww3orgTRxhtml1DTDxhtml1-strictdtdgt
ltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalEN
httpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgt
ltDOCTYPE html PUBLIC -W3CDTD XHTML 10 FramesetEN
httpwwww3orgTRxhtml1DTDxhtml1-framesetdtdgt
382233 DTD ccedilinde Element Tipi Bildirimleri
Elementler hakk nda bilgi veren kodlard r Kullan lan yap ELEMENT ile ba lar
element ad ve element iccedileri inin eklenmesiyle sonlan r
ltELEMENT elementName (elementContents)gt
Element iccedileri i a a daki gibi bo olarak ta tan mlanabilir
ltELEMENT elementName (EMPTY)gt
Element iccedileri inde alt dallar-duuml uumlmler olu turulacaksa a a daki oumlrnekte oldu u gibi
DVD koumlk duuml uumlmuumlne le ayr larak s ras yla baslik format tarz element isimleri yaz l r
Belirlenen s ralama XML belgesi iccedilinde goumlruumlnecek s ralamay da olu turur
ltELEMENT DVD (baslik format tarz)gt
Parsed Character Data (PCDATA) veri tuumlruuml element iccedileri inin metinsel ifade olaca n
bildirir XML ayr t r c s bu metindeki karakter ve varl k referanslar n ccediloumlzuumlmler A a da
ltbaslikgt ltformatgt lttarzgt bildirimlerinin iccedilerik tuumlruuml PCDATA olarak tan mlan r
ltELEMENT baslik (PCDATA)gt
ltELEMENT format (PCDATA)gt
ltELEMENT tarz (PCDATA)gt
61
XML belgelerinde tan mlanan bir element herhangi bir veri kombinasyonunu iccedilerebilir
Bu durumda iccedilerik tuumlruuml ANY olarak tan mlan r En serbest iccedilerik tan m d r Oumlrnek kullan m
a a da goumlsterilmektedir
ltELEMENT KATALOG ANYgt
Elementlerin alabilecekleri nitelikler DTD iccedilerisinde tan mlan r Element iccedilerikleri
hakk nda daha detayl bilgiye ula lmas n sa lar Tablo 36 da kullan labilecek niteleyiciler
goumlsterilmektedir
Tablo 36 DTD karakterleri ve accedil klamalar
Karakter Accedil klama
Elemandan s f r veya daha ccedilok bulunabilir
Alt elemanlar s rayla belirler
| Bir grup element aras nda seccedilim yap lmas na izin verir
+ Elemandan bir veya daha ccedilok bulunabilir
Elemandan s f r veya 1 tane bulunabilir
Sembol olmamas o elementin bir kez goumlruumlnmesi gerekti ini bildirir
Oumlrnek goumlsterimde KULLANICI elementine ait alt element olan AD ouml esi birden fazla
de er alabilece ini goumlsterir TEL bildirimi ile kullan c ya ait di er bilgiler girilirken telefon
numaras
giri i eksik olarak kalabilece ini ve sonradan eklendi inde ise yeni kural
tan mlamas na gerek kalmadan etiket tan mlamas n n yap labilece ini bildirir
ltELEMENT KULLANICI (ADI+ TEL)gt
382234 DTD ccedilinde Nitelik Liste Bildirimleri
Nitelik bildirimleri element bildirimlerinden sonra goumlruumlnuumlr ve biraz daha karma k bir
yap ya sahiptir Bir elementin sahip oldu u oumlzellikler bir liste halinde belirtilebilir
Nitelik liste bildirimi a a daki yap yla goumlsterilir
ltATTLIST Element_adi Nitelik_adi Nitelik_tipi varsayilan_degergt
ltATTLIST DVD id CDATA REQUIREDgt
62
Kod parccedilas nda yaz lan varsayilan_deger niteli in gerekli olup olmad n belirtir
Nitelik tipleri Tablo 37 deki de erleri alabilir
Tablo 37 DTD ccedilindeki niteliklerin de er ve accedil klamalar
[73]
De er Accedil klamas
CDATA De er karakter verisi olmal
(en1|en2|) De er parantez iccedilindeki de erlerden birisi olmal
ID a unique identifier- benzersiz bir tan mlay c -kimlik
IDREF De er ba ka bir eleman n ID si olmal
IDREFS De er ba ka ID lerin listesi olmal
NMTOKEN De er geccedilerli XML ad olmal
NMTOKENS De er geccedilerli XML ad listesi olmal
ENTITY De er bir varl k olmal
ENTITIES De er bir varl k listesi olmal
NOTATION De er bir notasyon olmal
xml De er oumlnceden tan mlam bir XML de eri olmal
Varsay lan de er ise Tablo 38 deki de erleri alabilir
Tablo 38 Varsay lan de erler ve accedil klamalar
De er Accedil klama
deger Niteli in Default de eri
REQUIRED Nitelik de eri Eleman iccedilinde geccedilmek zorundad r
IMPLIED Nitelik de eri Eleman iccedilinde geccedilmek zorunda de ildir
FIXED value Nitelik de eri sabittir E er nitelik de eri belirtilirse default de eri
yazmak zorunludur
A a daki oumlrnekte URUN elementinin RENK niteli i seccedilimli olarak k rm z ye il ya da
mavi olas de erleri tan mlanm t r Varsay lan de eri ise k rm z olarak belirtilmi tir [73]
ltATTLIST URUN RENK (red|green|blue) redgt
63
382235 DTD ccedilinde Varl k (Entity) Bildirimleri
Varl k bildirimleri XML belgesinde kullan lan de i ik tuumlr ve biccedilimlerdeki verilerin
XML belgesine aktar lmas n sa lar Di er programlama dillerinde kullan lan moduumll ya da
makrolar gibi s kl kla kullan lan metin bloklar
varl k olarak tan mlanarak sayfan n istenilen
yerine kolayca eklenebilir Eklenen metin uumlzerindeki de i iklikler varl k bildirimiyle
duumlzenlenebilir [73]
Ayr ca d ar dan bir dosyay
varl k olarak tan mlayarak iccedilindeki veri XML belgesinde
kullan labilinir Bu veri metin olmak zorunda de ildir DTD bir varl k olarak tan mlamak iccedilin
a a daki sat r n kullan lmas
gerekmektedir [73]
ltENTITY varl k_ad varl k_degerigt
ltENTITY copyright Copyright 2009 Yayinevigt
Harici bir dosyadan al nacak bir varl k iccedilin soumlz dizimi ise a a daki gibidir
ltENTITY varl k_ad SYSTEM URIURLgt
ltENTITY tableOfContents SYSTEM entitiesdenemexmlgt
(Not URL = Uniform Resource Locator URI = Uniform Resource Identifier )
38224 XML emas
XML emas DTD lere benzer ekilde XML belgesinin yap s n ve bulundurabilece i
verilerin tuumlruumlnuuml tan mlamakta kullan l r XML emalar
xsd dosya uzant l d r ema XML
belgesinde kullan labilecek ouml eleri nitelikleri ve veri tuumlrlerinin yan s ra XML belgesinin soumlz
konusu XML emas iccedilin geccedilerli olmas n sa lamak amac yla uyulmas gereken yap y da
tan mlar [74]
XML emalar DTD yap lar na goumlre daha guumlccedilluuml bir yap ya sahiptir DTD iccedilerisinde
eleman iccedileri i string ve di er birkaccedil veri tipi ile s n rl d r XML ema integer floating point
say lar date time gibi daha geni bir veri tipi deste i sa lamaktad r XML ema ayr ca accedil k
iccedilerik modeli (open content model) ve isim uzay
(namespace integration) gibi ek oumlzellikler de
sunmaktad r XML ema belgeleri olu turulmas s ras nda XML soumlzdizimi kullan l r Bu DTD
lere goumlre ccedilok belirgin bir uumlstuumlnluumlk sa lar Ccediluumlnkuuml yeni bir soumlz dizimi ouml renilmesi yerine
XML in XML emaya oumlzel komutlar n n ouml renilmesi yeterli olur [75]
64
A a daki oumlrnek ema tan mlamas nda xs schema elementi ile ba layan bir koumlk ouml e
vard r
ltxml version=10 encoding=UTF-8gt
ltxsschema
xmlnsxs=httpwwww3org2001XMLSchemagt
ltxsschemagt
ema elementi iki tane oumlzelli e sahiptir
name
xmlns
ema iccedilin bir isim tan mlamas name oumlzelli i ile sa lan r xmlns oumlzelli inin ise oldukccedila
oumlnemli bir goumlrevi vard r Bu oumlzellik sayesinde oumlrne in Microsoft un schema belirtimlerini
kullanabilmesi iccedilin urnschemas-microsoft-comxml-data de erine ayarlanmas gerekir
A a daki oumlrnekte XML ema belgesi iccedilin name ve xmlns niteliklerinin basit kullan m
goumlsterilmektedir [66 75]
ltschema name=kutuphane xmlns= urnschemas-microsoft-comxml-datagt
lt - - ema iccedileri i buraya yaz l r- -gt
ltschemagt
Oumlrnek XML belgesi olu turma ba l alt nda verilen oumlrne in ema dosyas olan
denemexsd nin kodlar ve ekran goumlruumlntuumlsuuml ekil 323 deki gibidir
ltxml version=10 encoding=UTF-8gt ltxsschema xmlnsxs=httpwwww3org2001XMLSchemagt
ltxselement name=Kullanicilargt
ltxscomplexTypegt
ltxssequencegt
ltxselement ref=Kullanici minOccurs=0 maxOccurs=unboundedgt
ltxssequencegt
ltxscomplexTypegt
ltxselementgt
ltxselement name=Kullanicigt
ltxscomplexTypegt
ltxssequencegt
ltxselement name=adi type=xsstringgt
ltxselement name=soyadi type=xsstringgt
ltxselement name=eposta type=xsstringgt
ltxssequencegt
ltxsattribute name=id type=xsinteger use=requiredgt
65
ltxscomplexTypegt
ltxselementgt
ltxsschemagt
ekil 323 denemexsd nin ekran goumlruumlntuumlsuuml
3823 Belge Duuml uumlmleri
XML dokuumlman nlar ndaki belge duuml uumlmleri a a da incelenecektir
38231 Elementler
XML dokuumlmanlar ndan bahsederken etiket ve element terimleri kullan lmaktad r lk
ba ta birbirinin yerine kullan labilir gibi goumlruumlnse de asl nda farkl iki terimdir Element terimi
herhangi bir iccedilerikle birlikte etiketlerin accedil l p kapanmas olarak tan mlanabilir Etiket elementin
bir parccedilas d r Etiketler de kouml eli parantez accedil larak ba lan r ve sonunda kapat larak bitirilir
A a daki oumlrnek sat rda ltxyztgt etiketlerini iccedileren tam bir element goumlruumllmektedir
Accedil l etiketi Kapan etiketi
ltxyztgtXML de etiket ve element fark ltxyztgt
ccedilerik
Element
66
38232 Nitelikler
Her XML belgesi karakter verisi ve biccedilimlendirmeden olu ur Genellikle karakter verisi
ba lang ccedil ve biti etiketleri aras nda metinsel bilgi iccedilerir
XML etiketlerine bir ya da daha fazla nitelik tan mlanabilir
ccedilerik ya da
Nitelik ba ka etiketler
ltKullanici kullanici_id= 1 gt ltKullanicigt
Etiket sim De er
Accedil l etiketi Kapan etiketi
Element
38233 Metin
Accedil lan ve kapat lan tuumlm etiketlerin iccedileri ini olu turur CDATA gibi metin i aretlemesi
yap lmad kccedila tuumlm metin XML kural yap s na goumlre i lenecektir [66]
38234 CDATA Boumlluumlmuuml
CDATA XML yap s iccedilerisinde i lenmeyecek metinleri bloklar halinde i aretlemeye
yarar XML derleyici bu boumlluumlmde metin iccedilerisinde yer alan i aretleme ay raccedillar n ve etiketlerini
normal karakterler olarak alg lar CDATA yap s ltCDATA[ ile ba lar ve]] kouml eli parantezlerin
kapanmas yla sona erer
ltbaslikgtltCDATA[
]]ltbaslikgt
CDATA boumlluumlmleri Javascript gibi goumlmuumlluuml kodlar XML belgelerinde kullanabilir ve bu
boumlluumlmlere i leme ihtiyaccedil duyulmayan iccedilerik eklenebilir Oumlrne in bir uygulamada veritaban ndan
veri okumas ve i aretlemesi buumltuumln iccedileri in XML belgesine goumlmme bilgisini vermede
karakterler i lenirken accedil kccedila ayr lmas n n oumlnuumlne geccedilebilmek iccedilin CDATA boumlluumlmleri kullan l r
[66]
67
38235 Varl klar
Bir karakteri temsil eden sembol grubuna varl k denir Oumlrne in Ampersand i areti
yerine yani ve yerine kullan lan ampamp ya da bir karakterlik bo luk b rakmak iccedilin
nonbreaking space yerine ampnbsp semboluuml kullan l r
ltmatematikgt18 lt 36ltmatematikgt
Yukar daki kod sat r nda bu element i lenmeye ccedilal ld nda hata iletisi verecektir
Ccediluumlnkuuml 36 de erinin oumlnuumlndeki etiket accedilma i areti olarak alg lanacak ve kod sat r n n i leme
al nmas nda yanl l a neden olacakt r Bu hatay duumlzeltmek iccedilin kod sat r n n a a daki gibi
yaz lmas yeterli olacakt r
ltmatemetikgt18 amplt 36ltmatemetikgt
Tablo 39 da s k kullan lan karakterlerin varl k sembolleri goumlsterilmektedir
Tablo 39 XML Belgelerinde kullan lan varl k bildirimleri
Karakter Varl k
amp ampamp
ampapos
gt ampgt
lt amplt
ampquot
383 XML nin Soumlz Dizim Kurallar
XML iccedileri in i aretlenmesi iccedilin etiketleme dili kullan l r Bu etiketlemeler yap l rken
baz kurallar goumlz oumlnuumlnde bulundurulur imdi bu kurallar incelenecektir
1) XML dili buumlyuumlk kuumlccediluumlk harfe kar duyarl d r XML de kuumlccediluumlk harf kullan m esast r
Oumlrnek yaz m a a daki gibidir [76]
lttable WIDTH= 100 gt kullan m yanl t r
lttable width= 100 gt kullan m do rudur
68
2) Her etiket kapat lmal d r Oumlrne in ltkelimegt etiketini takip eden sat r sonuna ltkelimegt
etiketi de eklenmelidir
3) Dokuumlmanda buumltuumln elementleri iccedileren bir koumlk eleman olmas gerekir Oumlrnek yaz mda
oldu u gibi alt ouml eler duumlzenli bir yap da yaz lmal d r [76]
ltrootgt
ltchildgt lt childgt
ltsubchildgt lt subchildgt
lt rootgt
4) Etiketler belirlenirken bir element ba ka elementleri iccediline alacak ekilde tasarlanabilir
ccedilten d a do ru etiketlerin hepsi kapat lmal d r
ltbgtltigtBu metin koyu ve e ikltbgtltigt yanl kullan m
ltbgt ltigt Bu metin koyu ve e ik lt igt lt bgt do ru kullan m
5) XML elementleri oumlzel karakter verileri bo elementler CDATA ya da yorumlar
bar nd rabilir
6) Oumlznitelik de erleri t rnak iccediline al nm olmal d r Tek t rnak ya da ccedilift t rnak olabilir
lttable width=100gt kullan m yanl t r
lttable width= 100 gt kullan m do rudur
7) Element adlar harfler rakamlar tire alt ccedilizgi iki nokta i aretlerini ve noktalar
iccedilerebilir ki nokta i areti sadece namespace kullan m iccedilindir xml ile ba layan eleman
isimleri oumlnceden tan mlanm oumlzel isimlerdir [86]
ltkullanilabilirIsimlergt
ltisimgt
ltxslcopy-ofgt
ltUzun_bir_isimgt
ltNoktalarlaayrilmisbirisimgt
lth823323123-231-231gt
lt_23gt
ltkullanilabilirIsimlergt
8) Etiketleme yap l rken rakamla ba lamamas na dikkat edilmelidir Bo luk yer
almamal d r
69
384 XML Dokuumlmanlar n n leyi i ve Sunumu
XML i lemleri a accedil tabanl ve olay tabanl olmak uumlzere iki kategoriye ayr l r Verilerin
i lenmesinde XML parser yani ayr t r c kullan l r XML i lemciler genellikle XML ayr t r c
olarak da adland r l r A accedil tabanl ayr t r c lar DOM (Document Object Model) yakla m na
goumlre olay tabanl ayr t r c lar ise SAX (Simple API for XML) yakla m na goumlre veriyi ema
yap s ile birlikte XMLye oumlzguuml hiyerar ik yap da i ler lenen veriler uygulama ve
sorgulamalara haz r hale getirir [66 76]
Genellikle bir XML dokuumlman n XML formatl veri iccedilerik dosyas XSD (DTD yerine)
formatl ema dosyas ve XSL (CSS yerine) formatl stylesheet dosyas olmak uumlzere 3 dosyayla
tan mlanabilir Bu uumlccedil dosya tipi de XML destekli tuumlm sunucu ve veri tabanlar nda ccedilal t r labilir
Verinin yal n (native) olarak sakland veritaban youmlnetim sistemleri di er veritabanlar nda
kar la lan harici veri tipleri veya farkl format doumlnuuml uumlmlerine gerek duymad ndan sorgu
transfer ve entegrasyon i lemlerinin performanslar
oldukccedila yuumlksektir Ayr ca XML veritaban
youmlnetim sistemlerinde verinin yal n biccedilimde kendi iccedil format nda tutuluyor olmas n n bir
avantaj da eri imi kolayla t rmas d r Ba ka veritaban youmlnetim sistemi yakla mlar nda buna
benzer bir arama iccedilin karma k ccediloklu tablolar ara t r l r ve daha sonra XML verisine
doumlnuuml tuumlruumlluumlr Bu da i lem performans n n duuml mesine ve maliyet art r c ek uygulamalar
eklenmesine neden olur [66 76]
39 AJAX Prensipleri
AJAX yeni bir teknoloji olmas itibariyle henuumlz emekleme doumlnemindedir Bununla
birlikte birkaccedil Web tasar mc s bu yenili i ba a ccedil k lmas gereken bir sorun gibi alg lamaktad r
Bu sorun iyi bir AJAX Web uygulamas yapabilmek iccedilin s radan ya da koumltuuml bir uygulamaya
kar ne yap lmas gerekti i olarak tan mlanabilir Michael Mahemoff (wwwmahemoffcom)
bir yaz l m geli tirici ve kullan labilirlik uzman iyi Ajax uygulamalar iccedili birkaccedil temel ilke
belirlemi tir [37]
Minimal Trafik nternet trafi i internet uumlzerindeki veri ak d r Goumlnderilen ve al nan
mesajlar n miktar youmlnuuml web sitesine giren ziyaretccedililerin say s ziyaret ettikleri
sayfalar ccedilevrimiccedili trafi i olu turmaktad r AJAX uygulamalar nda amaccedil bu internet
trafi ini en alt seviyede tutmak iccedilin sunucudan muumlmkuumln olabildi i kadar az bilgi
goumlnderip almakt r Ayr ca bilgi ak nda gereksiz bilgilerin her seferinde goumlnderilip
al nmas n n oumlnuumlne geccedililmesiyle uygulamaya sa laml k kat l r
70
Kullan c etkile imli model Genellikle AJAX uygulamalar geleneksel Web
uygulamalar ndan farkl olarak de i ik kullan c etkile imli modeller sunar Web
standartlar ndaki t kla-bekle anlay na kar AJAX uygulamalar nda an nda suumlruumlkle
b rak ya da ccedilift t klamayla yak nla t rma gibi di er kullan c arayuumlz paradigmalar
vard r E er kullan c
etkile imli modeller seccedililirse kullan c
ne yapaca n bilir
Sade arayuumlz Yan p soumlnen sayfa boumlluumlmuuml ya da suumlrekli doumlnen animasyonlar gibi dikkat
da t c ve gereksiz sayfa elementlerinden kaccedil n l r Kullan c lar goumlze hitabeden
uyumlu ve sade sayfalar tercih etmektedir
Eri ilebilirlik nsanlar n ba lant h zlar ndan fiziksel engellerine ya ad uumllkenin
toplumsal yap s ndan ya l l a kadar birccedilok youmlnden eri ilebilirlik standartlar
incelenebilir Birincil ve ikincil kullan c lar n beklentilerine en uygun olacak AJAX
uygulamalar na eri im seccedilenekleri goumlz oumlnuumlnde bulundurulmal d r Oumlzel yaz l mlarla m
yoksa kullan lacak taray c oumlzellikleriyle mi adaptasyonun sa lanaca belirlenmelidir
Boumlylece yeni hedef kitleler de tamamen d ar da b rak lm olmayacakt r
Sayfan n tamam n indirilmesinden kaccedil nma Tetikleyici sayfa indirildikten sonra
tuumlm sunucu ileti imi AJAX motoru taraf ndan youmlnetilmektedir Boumlylece kuumlccediluumlk bilgi
al -veri leri iccedilin tuumlm sayfan n tekrar yuumlklenmesinin oumlnuumlne geccedililmi olur
lk kullan c AJAX uygulamalar nda tasar m kullan c lar n daha oumlnce
kar la mad klar bir biccedilimdedir Etkileyici efektler ve s k c olmayan bilgilendirici
reklamlarla genel kullan m durumlar n kolayca ba armaktad r
Buumltuumln bu ilkelerde bulunan ortak nokta kullan labilirliktir AJAX oumlncelikle kullan c lar
iccedilin web deneyimini geli tirmeye ccedilal rken arkas ndaki teknoloji sadece bunun iccedilin bir araccedilt r
Yukar daki ilkelere sad k kalarak AJAX uygulamalar oldukccedila faydal ve kullan l olacakt r
[37]
310 AJAX Kuumltuumlphaneleri ve Araccedillar
Kuumltuumlphaneler haz r fonksiyonlara kolayca eri im sa lar Ayr ca s k kullan lan var olan
kodlar tekrar yazarak zaman kaybedilmemesini sa lar A a da en ccedilok kullan lan AJAX
kuumltuumlphanelerine oumlrnekler verilmi tir
3101 Prototype
Prototype dinamik web uygulamalar yaratmak iccedilin kullanabilecek geli mi bir
kuumltuumlphanedir Accedil k kaynakl ve nesne tabanl kod kuumltuumlphanesidir Ajax iccedilin yaz lan
71
kuumltuumlphanelerin ilk oumlrneklerindendir ve di er haz r kuumltuumlphanelerin bir k sm prototypejs
kullanmaktad r [78]
3102 AJAX Gear Toolkit
AJAX olarak bilinen istemci tarafl tekni in buumltuumln avantajlar ndan faydalanmay
muumlmkuumln k lan bir araccedilt r XMLHttpRequest nesnelerini kullanarak internet taray c s n n
asenkron ccedila r yapmas n sa lar [78]
3103 AspNet Ajax
ASPNET AJAX ASPNET ile yap lan ve tuumlm nternet taray c lar nda ccedilal abilen
uygulamalar iccedilin Microsoft taraf ndan geli tirilen bir kuumltuumlphanedir Oumlnce Atlas daha sonra
ASPNET Ajax ad n alm t r ASPNET 20 ile kolay entegrasyon ASPNET 35 ile tam
entegrasyon sa lar Yeni nesil etkile imli arayuumlzler olu turmak iccedilin kullan l r [78]
3104 Dojo Toolkit
Accedil k kaynak kodlu bir javascript toolkit olup dhtml sorunlar n buumlyuumlk oumllccediluumlde ccediloumlzmuuml tuumlr
Arayuumlz programlama karma k kodlar n basite indirgenmesi toolkitin sa lad avantajlard r
Ayr ca dinamik web sitesi ya da ba ka ortamlar haz rlamay kolayla t ran ve sitenin daha
kullan l olmas n sa layan iccedilerikler sunar [78]
3105 MochiKit
Dreamweaver web uygulamalar iccedilin kullan lan ajax kuumltuumlphanelerinden birisidir E
zamanl olmayan davran lar iccedilin erteleme uygulamas n kulland ndan sunucuyla etkile im
halinde olan web sayfalar n n geli tirilmesinde tercih edilir [78]
3106 PHPLiveX
PHP ile yap lan uygulamalar iccedilin kullan lan bir kuumltuumlphanedir Versiyon 25 ile gelen
yenilikler ve optimizasyonlar kuumltuumlphanenin potansiyelini ciddi biccedilimde artt rm t r Di er php
tabanl kuumltuumlphaneler gibi php fonksiyonlar n javascript koduyla ccedila r r fakat di erlerine goumlre
daha az kodla kullan m sa lar [78]
72
3107 Sardalya (Sarmal Dinamik Altyap s )
Sardalya Dinamik AJAX Kuumltuumlphanesi DOM deste i olan tuumlm guumlncel taray c larda
ccedilal mak iccedilin tasarlanm bir AJAX Kuumltuumlphanesi dir Linux windows freebsd osx sun gibi
platformlarda ccedilal abilir Tuumlm taray c lardan ba ms z olarak ccedilal r ve kullan m s ras nda az
yer kaplar [78]
3108 Sajax
Sajax n accedil l m Simple Ajax Toolkit tir ASP ve PHP tabanl programlarda AJAX
uygulamalar geli tirmek iccedilin kullan lan bir kuumltuumlphanedir Buumltuumln sunucu tarafl platformlara
ccedila r goumlnderebilme yetene ine sahiptir [78]
3109 Solvent
AJAX uygulamalar n moduumller bir yap da gerccedilekle tiren farkl bir kuumltuumlphanedir
JavaScript ile yaz lm t r ve tuumlm taray c lardan ba ms z olarak ccedilal an bir AJAX uygulamas d r
Web uygulamalar n kuvvetlendirmek ve uygulamalar n geli tirme suumlrecini h zland rmak iccedilin
kullan l r [78]
31010 AjaxAC
AjaxAC accedil k kaynak kodlu php tabanl bir kuumltuumlphanedir AjaxAC ile varolan PHP
s n flar na ve MySQL veritaban na ek istek verilerini doumlnduumlrmek iccedilin geccedili oldukccedila kolayd r
[78]
31011 Xajax
Xajax Php JavaScript HTML XMLHttp ve XML kullanarak taray c ve sunucu
aras ndaki al veri i ve verileri goumlstermeyi gerccedilekle tirir Xajax ile geli tirilmi
uygulamalar sunucudaki php fonksiyonlar n ccedila rabilir ve sayfay yeniden yuumlklemeden
iccedileri ini guumlncelle tirebilir [78]
73
31012 Scriptaculous
Prototype tabanl bir js framework tuumlr Yap lan AJAX i lemleri prototype iccedilerisinde
bulunan nesneler ve fonksiyonlar ile yap l r [78]
311 AJAX Uygulamalar nda Kullan lan Di er Teknolojiler
AJAX istemci ile sunucu aras nda e zamanl olmayan ileti im sa layan bir teknolojiler
buumltuumlnuumlduumlr
3111 HTMLXHTML
stemci tarafl (client side) bir metin i aretleme dili olan XHTML (Extensible
HyperText Markup Language- Geli tirilebilir Metin aretleme Dili) dili XML soumlz dizimi ile
olu turulmu tur XHTML standart etiket ayarlar n tan mlarken spesifik bir yol kullan lmal d r
World Wide Web Consortium (W3C) duumlnyadaki Web geli tiriciler iccedilin olu turulmu ayn
standartla t r lm yakla m benimserler [66]
3112 CSS
XHTML de stil biccedilimlendirmesini sa lar Yuumlzlerce sayfan n tek merkezden
youmlnetilmesini sa lar Geleneksel youmlntemlerde her sayfan n biccedilimlendirme ayarlar birccedilok kod
sat r aras ndan stillerle ilgili olanlar n seccedililip duumlzeltilmesiyle yap l r CSS kullan lan
youmlntemlerde a a daki gibi bir kod parccedilas
tuumlm sayfalardaki stil ayarlar n n yap lmas n tek
merkeze ba lam t r
kabuk
width760px
background-colorEE7700
spot
colorEE7700
font-familyVerdana Comic Sans MS Helvetica sans-serif
74
AJAX ve CSS birlikte kullan larak masauumlstuuml ccedilal t r labilir EXE yaz l mlar ile ayn
h zda ve performansta ccedilal an web uygulamalar geli tirmek muumlmkuumln hale gelmi tir Google
belgelerinde Gmail bunun en buumlyuumlk oumlrne idir
Web sayfalar ndaki tuumlm iccedilerik biccedilimlendirmeler resimler vb istemciye
HTMLXHTML kodlar halinde goumlnderilir Bu kodlar sade ve basittir Bu da oldukccedila fazla
kullan c ya hitap edebilen web siteleri iccedilin oumlnemlidir Ccediluumlnkuuml internete ba land nda k s tl bir
bant geni li ine sahip kullan c lar daha az say da karakter iccedileren sayfalar daha k sa suumlrede
indirebilecektir Boumlylece kullan c lar toplam suumlrede daha fazla sayfa ziyaret edecektir
Sayfalar n h zl yuumlklenmesi kullan c lar n o siteler hakk ndaki memnuniyetini art racakt r
Ayr ca bu durum yaz c dostu sayfalar n olu turulmas nda etkilidir [79]
3113 XSLT
XSLT (Extensible Stylesheet Language Transformations Geni letilebilir
Biccedilimlendirme Dili Doumlnuuml uumlmleri) XML tabanl doumlkuumlmanlar n orijinal halini de i tirmeden
yeni bir dokuumlman olu turmak iccedilin kullan lan bir dildir [80] Oumlrne in bir XML doumlkuumlman n
XHTML ye doumlnuuml tuumlrmek iccedilin XSL doumlnuuml uumlmuuml (transformation) kullan labilir XMLnin iccedilindeki
hangi data nas l doumlnuuml tuumlruumllecek sorular ndan hangi sorusunun cevab XPath ile belirtilirken
nas l sorusunun cevab ise yine XML ile belirtilir [81]
75
4 FLEX
Flex MXML ActionScript 30 ve Flex s n f kuumltuumlphanelerinin birle iminden olu an
sunucu-istemci tabanl yeni bir teknolojidir Ayr ca Flex Flash uygulamalar ile derlenebilen
XML tabanl bir dil olarakta tan mlanabilir [84] Flex in ccedilal ma sistemati inin i lem ak
emas ekil 41 de goumlsterilmektedir
ekil 41 Flex uygulamalar n n i lem ak emas
ekil 41 de sol alt kouml eden sa uumlst kouml eye do ru i lem ak emas takip edildi inde
Flex Builder 3 ile geli tirlen appmxml uygulamas MXML derleyicide ccedilal t r ld nda bir swf
dosyas uumlretmektedir Ayr ca uumlretilen swf dosyas n n sunucu uumlzerinde test edilebilmesi iccedilin
birde html uzant l dosya olu turulur Flex in en oumlnemli oumlzelli i uumlretilen son uumlruumlnuumln swf
format nda olmas d r Ayr ca olay tutucu komut dizelerinin kolay kullan m
yaz l m n
olu turulmas nda Flex program n tercih nedeni olmas n sa lam t r
Adobereg Flexreg 3 yayg n olarak kullan lan taray c lar masauumlstleri ve i letim
sistemlerinde kolayl kla etkileyici web uygulamalar olu turmaya ve bak mlar n yapmaya
youmlnelik verimlili i yuumlksek bir programd r Accedil k kaynak (open source) altyap s na sahiptir
Eclipse tabanl bir plugin kuumlmesidir
Adobe firmas taraf ndan Flex Builder 3 Pro lisans
herhangi bir e itim kurumuna
ouml renci e itmen ya da ccedilal an olarak ba l olduklar n belgeleyenlere tamamen uumlcretsiz olarak
verilmektedir Kurulum tamamland ktan sonra ilk accedil l ekran ekil 42 de goumlsterildi i gibidir
[83]
76
ekil 42 Flex arayuumlzuuml
41 Adobereg Flexreg 3 Kurulumu ccedilin Gereken Minimum Sistem Gereksinimleri
Uygulama gerccedilekle tirmek iccedilin farkl i letim sistemleri iccedilin gerekli sistem
gereksinimleri a a da belirtilmi tir
411 Windows ccedilin Flex Builder 3 (Standart ve Profesyonel)
Flex in Windows kurulumu iccedilin gerekli minimum sistem gereksinimleri a a da
goumlsterilmektedir [83]
Intelreg Pentiumreg 4 i lemci
Microsoftreg Windowsreg XP Service Pack 2 veya Windows Vistareg Home (Premium
veya Basic) Business veya Ultimate
1 GB RAM (2 GB oumlnerilir)
500 MB kullan labilir sabit disk alan (eklenti yap land rmas iccedilin ek 500 MB gerekir)
Java Virtual Machine Sun JRE 142 Sun JRE 15 (dacirchildir) IBMreg JRE 15 veya
Sun JRE 16
Eklenti yap land rmas iccedilin Eclipse 322 33 ve 34 (Eclipse 33 Windows Vista iccedilin
oumlnerilir)
Adobe Flashreg Player 9 yaz l m
BEA Workshop 101
77
IBM Rational Software Architect 7003 (Yaln zca Eclipse 33 eklenti yap land rmas )
412 Macintosh ccedilin Flex Bu lder 3 (Standart ve Profesyonel)
Macintosh bilgisayarlar iccedilin gerekli minimum sistem gereksinimleridir [83]
PowerPCreg G4 125 GHz veya Intel i lemci
Mac OS X v1047 10410 veya 105
1 GB RAM (2 GB oumlnerilir)
500 MB kullan labilir sabit disk alan
Java Virtual Machine Appledan JRE 15 veya JRE 16
Eclipse 322 33 ve 34 (eklenti yap land rmas iccedilin)
Adobe Flash Player 9 yaz l m
78
5 CcedilEVR M Ccedil KATALOG TASARIMI F rat Uumlniversitesi Oumlrne i
AJAX teknolojisi AdobeMacromedia firmas n n geli tirdi i Flex program
ve
bile enleri kullan larak F rat Uumlniversitesinin 2009 ccedilevrimiccedili katalog ccedilal mas
herhangi bir
teknik bilgi gerektirmeden guumlncellenebilen alt yap s yla gerccedilekle tirilmi tir Kullan c arayuumlzuuml
olu turulurken XML tabanl bir gramer yap s
ve Flex program
kullan lm t r Bu tez
ccedilal mas nda sunucu olarak WampServer 20 kullan lm t r Katalog uygulamas n n kaynak
kodlar na ek boumlluumlmuumlnden bak labilir
AJAX teknolojisiyle ortaya ccedil kmaya ba layan ccedilevrimiccedili bro uumlrler ve kataloglar
internetteki Web uygulamalar uumlzerinde ccedilevrimiccedili hedeflerin oumlnemli bir boumlluumlmuumlne hacirckim
olmaktad r [37] Bu tez ccedilal mas da buna oumlrnek te kil etmektedir
Ccedilal man n olu um haritas na literatuumlr taramas yla ba lanm t r Bir sonraki ad mda
haz rlanacak olan program n oumlzellikleri belirlendi Bu a amadan sonra yaz l m iccedilin kullan lacak
program n seccedilimi yap ld Yaz l m algoritmas planlan p ekil 51 deki kodlama algoritmas
olu turulmu tur Yaz l m test edildi inde olu an hatalar giderilmi tir Ccedilal man n sayfa tasar m
yap larak son ekli verilmi tir
79
ekil 51 Kodlama algoritmas
Ba la
Harici verilerin XML dosyas ndan okunmas iccedilin HttpService s n f tan mland
De i ken tan mlamalar
Flex s n flar eklendi
Uygulamada kullan lacak resim boyutland rmas iccedilin maskeleme yap ld
Sunucu ile taray c ileti iminde AJAX scriptler kullan ld
Tuumlm sayfalar ekran goumlruumlntuumlsuuml iccedilin uygulama boyutland rmas yap ld
Zoom oumlzelli i iccedilin etiket tan mlamas ve buumlyuumltuumllmuuml sayfa goumlruumlntuumlsuuml iccedilin goumlruumlnuumlm
ayarlar fonksiyonu yaz ld
Navigasyon duuml meleri olu turuldu
XML format na uygun duuml uumlmler olu turuldu
Sayfa tasar m yap ld
Dur
A a daki kod sat rlar yla katalog ccedilal mas n n uygulama dosyas olan catamxml
dosyas na Flex iccedilinde ccedilal ma youmlntemlerini belirleyen faydal
s n flar dacirchil edilmi tir
lt[CDATA[
import mxutilsStringUtil
import mxrpcsoapLoadEvent
import mxcontrolsAlert
import mxrpceventsFaultEvent
import qscontrolsFlexBook
import qscontrolsflexBookClassesFlexBookPage
import qscontrolsflexBookClassesFlexBookEvent
import qscontrolsflexBookClassesWBookPageImpl
import qscachingContentCache
import mxrpceventsResultEvent
import mxrpchttpHTTPService
import mxcoreUIComponent
import mxmanagersPopUpManager
import compResimSec
import Kullan
import mxcoreScrollPolicy
import mxcollectionsArrayCollection
XML tan mlamalar diziler sunucu ba lant lar ve zoom i lemleri iccedilin gerekli de i ken
tan mlamalar a a daki kod sat rlar yla yap lm t r
private var aXML
[Bindable]
private var resimlerArrayCollection
private var dataSetHTTPService
private var resimdiziArray=new Array()
private var zoomYapBoolean=false
Katalo un local sunucu uumlzerinde ccedilal t r labilmesi iccedilin kaynak dosyas
Wamp kurulumu
sonras nda olu an www klasoumlruuml iccediline yerle tirilir E-katalog resimleri dinamik olarak data
dizinindeki imagesxml dosyas nda ccedilekilmektedir Katalog resimlerini de i tirmek iccedilin bu
dosyadaki xml duuml uumlmlerinin de i tirilmesi yeterlidir De i iklik yap lacak duuml uumlm oumlrne i
a a da goumlsterilmektedir
81
ltimage source=images2jpg thumb=images2jpg zoom=images2jpggt
Yukardaki sat rdaki duuml uumlmleri accedil klamak gerekirse source duuml uumlmuumlnde katalogda
goumlruumlnecek resim thumb duuml uumlmuumlnde e er as l resim (source) resmi yuumlklenene kadar ba ka bir
resim goumlruumlnmesi isteniyorsa o resmin kayna goumlsterilir Zoom duuml uumlmuuml ise sayfaya zoom
yap lmas esnas nda goumlruumlnecek resmin kayna n goumlsterir
Yukardaki 3 duuml uumlmden thumb duuml uumlmuuml iste e ba l olarak kullan l r Zoom
duuml uumlmuumlndeki resim as l resmin 100 buumlyuumlk hali olmal d r
ekil 52 Katalo un ilk sayfas n n ekran goumlruumlntuumlsuuml
E-katalog sayfalar n boyutunu kataloghtmlde tan ml olan object nesnesinin geni lik ve
yuumlkseklik oumlzelliklerinden almaktad r ekil 52 nin kaynak kodu a a da verilmi tir
ltscript src=ScriptsAC_RunActiveContentjs type=textjavascriptgtltscriptgt
ltscript type=textjavascriptgt
AC_FL_RunContent( idkatalogwidth894height653codebasehttpfpdownloadm
acromediacomgetflashplayercurrentswflashcabmoviekatalogqualityhighbgcolor
000000allowscriptaccesssameDomain ) end AC code
ltscriptgtltnoscriptgtltobject classid=clsidD27CDB6E-AE6D-11cf-96B8-444553540000
id=katalog width=894 height=653
82
codebase=httpfpdownloadmacromediacomgetflashplayercurrentswflashcabgt
ltparam name=movie value=katalogswf gt
ltparam name=quality value=high gt
ltparam name=bgcolor value=000000 gt
ltparam name=allowScriptAccess value=sameDomain gt
ltembed src=katalogswf quality=high bgcolor=000000
width=984 height=653 name=katalog align=middle
play=true
loop=false
quality=high
allowScriptAccess=sameDomain
type=applicationx-shockwave-flash
pluginspage=httpwwwadobecomgogetflashplayergt
ltembedgt
ltobjectgtltnoscriptgt
ekil 53 Katalo un 23 sayfa goumlruumlntuumlsuuml
Oumlrne in ekil 53 te kullan lan resimlerin width=447 height=613 boyutunda ise
resimlerin sayfada goumlruumlnmesi iccedilin html etiketindeki width oumlzelli ini 447x2=984 ve height
83
oumlzelli ini 613+40=653 eklinde duumlzenlenmesi gereklidir Yani width=resim geni li i X 2 ve
height=resim yuumlksekli i + 40 olmal d r
ekil 54 Katalo un sayfa ccedilevirme efektli goumlruumlntuumlsuuml
ekil 54 te goumlruumllen e-katalogun sayfay ccedilevirme oumlzelli i ile h z gibi i lemleri stylecss
dosyas nda tutulmaktad r Gerekli olmad kccedila bu dosya uumlzerinde de i iklik yap lmamas tavsiye
edilir Olu turulan stylecss dosyas n n kodlar a a da goumlsterilmi tir
FlexBook
color 000000
textRollOverColor 000000
border-thickness 0
border-style none
page-slope06
active-grab-area page
page-shadow-strength 1
curve-shadow-strength 1
auto-turn-duration 1500
Application
color F1F1CC
textRollOverColor FFFFFF
84
backgroundGradientColors FFFFFF FFFFFF
backgroundColor FFFFFF
SuperImage
border-thickness 0
border-style none
ekil 55 de goumlruumllen navigasyon ccedilubu unda 1 numara ile goumlsterilen alan istenilen
sayfaya konumland rma yap labilmesi iccedilin sayfa numaras n n girildi i kutudur 2 numara ile
goumlsterilen alan Sayfaya Git duuml mesine t kland nda istenilen sayfan n accedil lmas n sa layan
duuml medir 3 ve 4 numara ile goumlsterilen duuml meler Geri leri duuml meleridir Fare kontroluuml
olmadan da sayfalar aras nda gezinti yap labilmesini sa lar 5 numara ile goumlsterilen alan Tuumlm
Sayfalar duuml mesidir
ekil 55 Katalo un navigasyon ccedilubu u
Tuumlm sayfalar n accedil l r pencere iccedilerisinde goumlruumlntuumllenmesini sa layan fonksiyon a a daki
gibidir Kullanmxml sayfas nda ccedilekilen resimler pencerede goumlster komutuyla geni lik ve
yuumlksekli i ayarlan r Seccedililen nesneler customMoveend() komutuyla ekrana ta n r
private function tumsayfalar()void
Kullanshow_window(thisfalseapplicationwidth-10(applicationheight-60)2)
customMoveend()
customMoveplay()
ekil 56 da goumlruumllduuml uuml uumlzere ccedilevrimiccedili katalogdaki yuumlkluuml olan tuumlm sayfalar yukar dan
accedil lan bir pencere yard m yla goumlsterilir Tuumlm sayfalar
goumlster duuml mesi t kland nda goumlruumlnecek
resimler ile ilgi ayarlar ise data klasoumlruumlndeki onizlexml dosyas ndan ayarlanabilir Xml nin
esnek etiketleme yap s sayesinde onizlexml dosyas nda olu turulan ltsayfalargt etiketi aras na
a a daki kod sat rlar ccedilo alt larak olu turulmu tur
85
ltsayfagt
ltresim1gtimages2jpgltresim1gt
ltresim2gtimages3jpgltresim2gt
ltgitgt2ltgitgt
ltpagesgt23ltpagesgt
ltsayfagt
ekil 56 Tuumlm Sayfalar duuml mesi t kland ndaki ekran goumlruumlntuumlsuuml
Son olarak 6 numaral duuml me t kland nda + ve - konumlar n alarak buumlyuumlteccedil
oumlzelli i kullan l r ekil 57 de goumlsterildi i gibi imleccedil sayfa uumlzerinde gezdirilirken bu alan
uumlzerinde zoom yap larak yan sayfada buumlyuumltuumllmuuml goumlruumlntuuml sa lan r
86
ekil 57 Zoom oumlzelli i
Zoom oumlzelli inde resimler uumlzerindeki geni lik ve yuumlkseklik de erleri iccedilin if else blok
yap s kullan larak maskeleme fonksiyonu yaz lm t r Maskeleme fonksiyonu a a daki kod
sat rlar nda goumlsterilmektedir Fare nin x-y koordinatlar nda alaca de erlere goumlre fare nin
buumlyuumltuumllecek alan uumlzerinde gezinmesiyle yan sayfada buumlyuumltuumllmuuml goumlruumlntuuml elde edilmi tir
private function maskele(eMouseEvent)void if(zoomYap) if((mouseXgt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) )
maskex=0
img2visible=false img1visible=true img1x=(applicationwidth2)-mouseX img1y=-1mouseY else if((mouseXlt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) ) maskex=applicationwidth2 img1visible=false img2visible=true img2x=-1mouseX img2y=-1mouseY
Sayfa goumlruumlntuumllerinin maskelenmesinden sonra resimlerin kaynak dosyadan ccedilekilerek
ekrana buumlyuumltuumllmuuml hallerinin yans t lmas iccedilin a a daki fonksiyon olu turulmu tur
87
private function zoom()void
if(zoomerlabel==+) zoomerlabel=- if(img2source=aimage[bookcurrentPageIndex2]zoom) yuklemevisible=true
img2addEventListener(EventCOMPLETEbuyuk2_yuklendi) img2source=aimage[bookcurrentPageIndex2]zoom
if(aimagelength()gtbookcurrentPageIndex2+1) img1addEventListener(EventCOMPLETEbuyuk1_yuklendi)
img1source=aimage[bookcurrentPageIndex2+1]zoom
zoomYap=true else if(zoomerlabel==-)
zoomerlabel=+
setGorunum()
private function setGorunum()void zoomYap=false zoomerlabel=+ img1visible=false img2visible=false
88
6 SONUCcedil
Web 20 ak m ve zengin internet uygulamalar guumlnuumlmuumlz popuumller konular ndand r Bu
nedenle tez ccedilal mas
bu amaca youmlnelik olarak son teknolojiler kullan larak geli tirilmi tir
AJAX teknolojisi kullan larak kullan c n n istekleriyle sayfan n tamamen yenilenmeden
ilgili i lemin yuumlruumltuumllebilmesi sa lanmaktad r Geli tirilen sistem ccedilapraz taray c deste ine sahip
esnek ve kolay kullan labilir bir yap ya sahip oldu undan herhangi bir programlama bilgisine
sahip olmadan ki ilerin istenilen de i iklikleri yap labilece i bir alt yap ya sahiptir Bu ccedilal ma
nda en yenilikccedili internet yaz l mlar konusunda uygulama yapmak isteyen yaz l m
uzmanlar na kaynak te kil edecek bir ccedilal ma gerccedilekle tirilmi tir Yaz l m geli tiricileri ve
yaz l m mimarlar AJAX Flash Flex Appletler ve di er teknolojileri uygulamalar na kolayca
entegre edebilirler
Bu tez ccedilal mas kapsam nda Web de Ajax Tekni inin Bant Geni lik Optimizasyonuna
Etkisi ba l kl bir makale haz rlanm t r [85] Bu makalede Web Performance Suite 355941
program yla AJAX n performans testi yap lm t r Bu oumllccediluumlmler sonucunda elde edilen de erler
goumlstermi tir ki bir ebeke uumlzerinden goumlnderilecek sinyalin en duuml uumlk ve en yuumlksek frekanslar
aras nda gereksiz yere kullan lan aral n optime edilmesinde AJAX etkili bir youmlntemdir
AJAX n ccedilal ma prensibi sayesinde uygulamalar en iyi performansla gerccedilekle tirilir
AJAX teknolojisinin hala geli imi devam etmekte oldu undan baz eksik yanlar da
bulunmaktad r Oumlrne in taray c
uumlzerindeki Geri
fonksiyonu bazen beklendi i gibi
ccedilal mayabilir Dinamik olarak olu turulan sayfalar taray c n n oumlnceden i ledi i sayfalar
youmlneten mekanizmalar na kendini otomatik olarak kaydetmez bu yuumlzden taray c n n Geri
tu una bas ld nda istenen sayfa elde edilemeyebilir [86] Ba ka bir dezavantaj ise AJAX ile
olu turulan iccedileri in kodlar kaynak kodlar k sm nda goumlruumllememektedir Ayn zamanda Google
ve Yahoo gibi arama motorlar n n Web sayfalar na goumlnderdi i robot yaz l mlar da bu kodlar
goumlrememektedir Dolay s yla tamamen AJAX ile olu turulan iccedilerik arama motorlar n n sonuccedil
sayfalar nda listelenmezler Guumlnuumlmuumlzde yap lan Web sayfas n n arama motorlar nda
goumlruumlntuumllenmesi oldukccedila oumlnemlidir Fakat bir Web uygulamas ziyaretccedililer hakk nda oumlnemli
ki isel bilgilere sahipse bu bilgilerin arama motorlar nda herkes taraf ndan goumlruumlntuumllenmesini
sa lamas bir avantaja doumlnuuml uumlr [87] AJAX yerinde ve do ru bir ekilde kullan ld nda
uygulamalarda performans art n sa lar
Bu tez ccedilal mas nda Web 20 ak m n n ortaya ccedil k nedenleri ve RIA konseptine
duyulan ihtiyac n temeli irdelenmi tir Web 20 ak m nda oumlne ccedil kan uygulamalar ve ccedilal ma
sistematikleri incelenmi tir Oumlne ccedil kan bu uygulamalar n site tasar m nda dikkat ccedileken
89
oumlzelliklerine de inilmi tir AJAX teknolojisini olu turan bile enler incelenmi tir Bu inceleme
ve ara t rma sonucunda zengin internet uygulamalar na oumlrnek te kil edecek Web 20 ak m n n
ccedilekirde i olan AJAX teknolojisi kullan larak F rat Uumlniversitesi iccedilin ccedilevrimiccedili bir katalog
tasarlanm t r Bu tasar mda flexBook flexbookpage landscape wrapper zoomer gibi ek
bile enler kullan lm t r Navigasyon paneli tasarlanm t r Olu turulan tasar mda yerli ve
yabanc literatuumlr taramas yap larak emsallerindeki kullan l oumlzellikler projeye dahil edilmi tir
Projenin geli tirilmesi s ras nda izlenen ad mlar resimlenerek ortaya bir yol haritas ccedil kar lm t r
61 Oumlneriler
Bu tez ccedilal mas esas al narak ileride bu uygulamalar mobil cihazlar arac l yla
kullan labilirli i uumlzerine ara t rmalar suumlrduumlruumllebilir AJAX n uumlstuumln oumlzellikleri sayesinde Web
uumlzerinden yay nc l k ve mobil ileti im alanlar farkl bir boyut kazanm t r Birccedilok irket art k
ta nabilir cihazlar iccedilin Web 20 uygulamalar n AJAX la optimize etmeye ba lam t r Yeni bir
teknoloji olan AJAX la ta nabilir cihazlardaki performans bellek youmlnetimi s n rl tu giri i
gibi sorunlar n uumlstesinden gelinmesi hedeflenmelidir
AJAX kullan larak IDE (Integrated Development Environment) entegrasyonu Eclipse
iccedilin ba lant lar yaz labilir veya yap m servisi arac l yla do rudan IDE den yap m paketleri
geli tirilebilir Guumlnuumlmuumlzde oldukccedila popuumller olan accedil k kaynak kodlu yaz l m geli tirme
ortamlar nda entegre uygulamalar geli tirilebilir
Kullan c Arabirimi aretleme Beti i (User Interface Markup Language) s n f na dacirchil
edilecek gelece in en popuumller web tabanl teknolojilerinden biridir Flex geli tiricileri Adobe
Flex Builder - IDE ortam nda LiveCycle Data Services Java Coldfusion ASPNET JSP PHP
gibi popuumller web programlama dilleri yard m yla etkile imli ve guumlvenli web tabanl projeler
geli tirilebilir [82]
90
KAYNAKLAR
1 nternet Web 20 httptrwikipediaorgwikiWeb_20 Eri im tarihi 03092008
2 Oumlzer Z Web Teknolojileri ve AJAX Seminer Ccedilal mas Fen Bilimleri Enstituumlsuuml sf2
2007
3 nternet Web 20 Nedir wwworeillynetcompubaoreillytimnews20050930what-is-
web-20html Eri im tarihi 04102008
4 nternet httpravenyoungspaceslivecomblogcns17376F4C11A91E0E3717entry
Eri im tarihi 03092008
5 Mcluhan M Povers B R Ccedileviren Bahar Oumlcal Duumlzgoumlren Global Koumly 21 Yuumlzy lda
Yeryuumlzuuml Ya am nda ve Medyada Meydana Gelecek Doumlnuuml uumlmler Scala Yay nc l k 2001
6 nternet RIA konsepti httpwwwademaktepecomGunlukDetayaspxId=122 Eri im
Tarihi 26062008
7 Onat F A man Ouml K l ccedil A Sosyal A Sitelerinin Reklam Ve Halkla li kiler Ortamlar
Olarak De erlendirilmesi Sayfalar 3-6 2008
8 nternet httpi8tinypiccom6kymb0kgif Eri im tarihi 11072008
9 nternet DFA httpwwwdoubleclickcomproductsdfaindexaspx Eri im tarihi
14022009
10 nternet Adsensecom
httpswwwgooglecomadsensesupportbinanswerpyanswer=9712amptopic=13488 Eri im
tarihi 15112008
11 nternet DoubleClickcom wwwdoubleclickcom Eri im 13102008
12 nternet Adsense ho geldiniz wwwgooglecomadsense Eri im 18112008
13 nternet Flicker Tan m httptrwikipediaorgwikiFlickr Eri im tarihi 09032009
14 nternet Flicker Foto raf Payla m Sitesi httpwwwflickrcom Eri im 18022009
15 nternet BitTorent httptrwikipediaorgwikiBitTorrent Eri im tarihi 05012009
16 nternet Bittorent kulan m rehberi httpwwwbittorrentcombtusersguidesbeginners-
guide Eri im tarihi 05012009
17 nternet Bittorent kullan m k lavuzu httpwwwshukkocombittorrent_kilavuzu Eri im
tarihi 05012009
18 nternet Bittorent ccedilal ma mant httpwwwforumelbizbittorent-nedirgne-ise-
yarargresimli-detayli-super-anlatim-
t12836htmls=17f7b3147d97799d31c32b09e87d43e4ampamp Eri im tarihi 05012009
19 nternet Soumlzluumlk
91
httpwwwparliamentvicgovauSARCE-DemocracyFinal_ReportGlossaryhtm Eri im
tarihi 05012009
20 FU F LIU L WANG L Empirical Analysis of Online Social Networks in the Age of
Web 20 2007 Physica A Statistical Mechanics and its Applications Volume 387 Issues 2-3
Sayfalar 675-684
21 nternet Facebook httptrwikipediaorgwikiFacebook Eri im tarihi 06012009
22 nternet Facebook makale httpturkinternetcomhaberyazigosterphp3yaziid=22787
Eri im tarihi 06012009
23 nternet Facebook istatistiksel bilgiler
httpwwwinsidefacebookcom20090107facebook-growth-continuing-surpasses-150-
million-monthly-active-users Eri im tarihi 06012009
24 nternet Peter Thiel Facebook haberleri
httpwwwbusinessweekcomtechnologycontentmar2009tc2009031_743025htm Eri im
tarihi 06012009
25 nternet Blog httptrwikipediaorgwikiBlog Eri im tarihi 13022009
26 nternet Technorati httptechnoratimediacom Eri im tarihi 13022009
27 nternet Blog ara t rmas httpwwwmmistanbulcommakaletitlebloglarin-satin-alma-
kararlarina-etkisi-uzerine-bir-arastirma Eri im tarihi 13022009
28 nternet Wiki nedir httpyunushacettepeedutr~b0343579baglantilerwikinedirhtm
Eri im tarihi 13022009
29 nternet nternette wikinin yeri
httpogrencihacettepeedutr~besstindexphp20080603internette-wikinin-yeri Eri im
tarihi 14022009
30 Bergstedt S Wiegreffe S Wittmann J Moller D Content Management Systems and e-
Learning-Systems
A Symbiosis Proceedings of the The 3rd IEEE International Conference
on Advanced Learning Technologies (ICALT 03)
31 nternet ccedilerik Youmlnetim Sistemleri
httptrwikipediaorgwikiC4B0C3A7erik_yC3B6netim_sistemi Eri im tarihi
17022009
32 nternet ccedilerik Youmlnetim Sistemleri httpwwwmsxlabsorgforuminternet-bilgisayar-
dunyasi22262-icerik-yonetim-sistemi-cms-content-management-systemhtml Eri im tarihi
17022009
33 nternet Web 20 Tasar m Araccedillar httpwwweburhancomhazir-web-20-tasarim-
araclari Eri im tarihi 06022009
92
34 nternet Tasar m rehberi httpwwwhasanyalcincomweb-20-tasarim-rehberi-yansima-
ikon-ve-flaslarref=GuzelsTV Eri im tarihi 06022009
35 nternet AJAX kaynak makalesi
httpadaptivepathcompublicationsessaysarchives000385php Eri im tarihi 06022009
36 Keith J Bulletproof Ajax New Riders yay nc l k Sayfa 3 2007
37 Zakas N C McPeak J Fawcett J Professional Ajax 2nd Edition Wiley Publishing Inc
Sayfalar 5-18 2007
38 Gehtland J Galbraith B Almaer D Pragmatic Ajax A Web 20 Primer The Pragmatic
Programmers LLC sf1 2005
39 Babin L Beginning Ajax with PHP From Novice to Professional Apress Yay nc l k
Sayfa 6 2007
40 Crane D B beault B Sonneveld J Goddard T Gray C Venkataraman R Ve Walker J
Ajax in Practice Manning Publications Co Sayfalar 56 2007
41 Eichorn J Understanding AJAX Using JavaScript to Create Rich Internet Applications
August 11 2006 Sayfalar5-50
42 Ballard P SAMS Teach Yourself Ajax in 10 Minutes Sayfalar 6-78 28 Nisan 2006
43 nternet httpwwwipucuwebtraspders17php Eri im tarihi
44 Ullman C Dykes L Beginnig AJAX Wiley Publishing Inc Sayfa 44-100 2007
45 Zakas N C McPeak J Fawcett J Professional Ajax Wrox Press Chapter 2 Ajax
Basics Ajax Communication Techniques 2006
46 nternet Cross-Browser (Ccedilapraz Taray c Deste i) httpblogceyhunaksancomcross-
browser-capraz-tarayici-destegi Eri im 11032009
47 nternet
httpwwwyazgelistirnetviewtopicphpp=160ampsid=a49d3c26dd8e14e02e65bb222d6bcc39
Eri im 31032009
48 Jacobi J Fallows J R Pro JSF and Ajax Building Rich Internet Components Apress
Sayfa 175 2006
49 Schutta N T Asleson R Pro Ajax and Java Apress Sayfa 10 2006
50 Lauriat S M Ajax Architecture and Best Practices Pearson Education Inc Sayfa 25
2008
51 Powers S Adding Ajax OReilly yay nc l k June 01 2007
52 nternet Asenkron ve Senkron Meselesi httpAJAX-trcomasenkron-ve-senkron-meselesi
Eri im tarihi 02112008
53 Holzner S Ajax For Dummies Wiley Publishing Inc sf 40 2006
93
54 nternet httpwwwecma-internationalorgpublicationsfilesECMA-STEcma-262pdf
Eri im tarihi 06032009
55 Darie C Brinzarea B Chereche -To a F Bucica M AJAX and PHP Building
Responsive Web Applications Packt Publishing Sayfa42 2006
56 Olson S D Ajax on Java OReilly Yay nc l k Chapter 2 February 23 2007
57 nternet httpiibferciyesedutrggwebjavascriptpdf Eri im tarihi 06032009
58 nternet httpwwwmutasyonnetkitaplarasp hakk oumlcal javascript ders notu sf8 Eri im
tarihi 06032009
59 nternet httpwwwbilgisayarogrencomjava5doc Eri im tarihi 06032009
60 Asleson R Schutta N T Foundations of Ajax 2006 sf29
61 Wells C Securing Ajax Applications O Reilly Media Inc sf86 July 2006
62 nternet httpwwww3schoolscomdomdom_introasp Eri im tarihi 19032009
63 nternet httpwwww3orgTRREC-DOM-Level-1introductionhtml Eri im tarihi
19032009
64 nternet httpwwwberkerpeksagcomblogdom-document-object-model-belge-nesne-
modeli Eri im tarihi 19032009
65 nternet httpwwwrssnedircomxml_nedirphp Eri im tarihi 19032009
66 Jacobs S Beginning XML with DOM and Ajax From Novice to Professional Apress
Yay nc l k sf2631 2006
67 nternet
httpwwwcclubmetuedutrnenedirXML+(Extensible+Markup+Language)+Nedir3F
Eri im tarihi 20032009
68 nternet httpbelgelerorgelkitabixmldoc-howto_structhtml Eri im tarihi 20032009
69 nternet httpwwwverivizyoncomdetailaspcid=149 Eri im tarihi 20032009
70 nternet httpwwwbilgisayardershanesicomxml1htm Eri im tarihi 21032009
71 Johnson D White A Charland A ENTERPRISE AJAX Strategies for Building High
Performance Web Applications Prentice Hall Yay nc l k Sayfa 108 2008
72 nternet httpwwww3orgTRxhtml1dtds Eri im tarihi 01042009
73 nternet httpwwwcsharpnedircommakalegosteraspMId=51 52 Eri im tarihi
01042009
74 nternet httpofficemicrosoftcomtr-trinfopathHP010967301055aspx Eri im tarihi
01042009
75 nternet
httpwwwkodpaylascomviewtopicphpt=959ampsid=e5167bdea935943ed9bbdc91ee218c53
Eri im tarihi 01042009
94
76 nternet httpwwww3schoolscomXhtml Eri im tarihi 02042009
77 nternet httpwwwzvonorgxxlXMLTutorialOutput_turexample6html Eri im tarihi
02042009
78 nternet httpwwwbidbituedutrd=837 Eri im tarihi 03042009
79 nternet httpwwwcssnedircom Eri im tarihi 03042009
80 nternet httptrwikipediaorgwikiXSLT Eri im tarihi 03042009
81 nternet httpwwwbilisim-kulubucomsozluksozlukphpe=XSLT Eri im tarihi
08042009
82 nternet httpwwwsanalkursnetadobe-flex-nedir--1081html Eri im tarihi 10042009
83 nternet httpwwwadobecomtrproductsflex Eri im tarihi 11042009
84 nternet httpwwwtrflexcomp=4 Eri im tarihi 11042009
85 Oumlzer Z Varol A Web de Ajax Tekni inin Bant Geni lik Optimizasyonuna Etkisi
Bilimde Modern Youmlntemler Sempozyumu 2008
86 nternet httptrwikipediaorgwikiAJAX(programlama) Eri im tarihi 01062009
87 nternet httpajax-trcomajaxi-anlamak Eri im tarihi 01062009
95
OumlZGECcedilM
Zeynep OumlZER AYDO MU
zeynep_ozermsncom
F rat Uumlniversitesi Teknik E itim Fakuumlltesi
Elektronik Bilgisayar E itimi Boumlluumlmuuml
ELAZI
1983 y l nda Elaz da do du lk orta ve lise ouml renimini Elaz da tamamlad ktan
sonra 2002 y l nda F rat Uumlniversitesi Teknik E itim Fakuumlltesi Elektronik Bilgisayar E itimi
Bilgisayar Ouml retmenli i Boumlluumlmuuml nuuml kazand 2006 y l nda bu boumlluumlmden mezun oldu 2006
y l nda F rat Uumlniversitesi Fen Bilimleri Enstituumlsuuml Elektronik Bilgisayar E itimi Ana Bilim Dal
Bilgisayar Sistemleri Bilim Dal nda yuumlksek lisans e itimine ba lad 2007 y l ubat ay nda
Elaz n Karakoccedilan ilccedilesinin Yenice koumlyuumlnde h J Kd Uumlt m Mahir Oumlzdemir lkouml retim
Okulu nda Bilgisayar Ouml retmeni olarak goumlreve ba lad uan Elaz Korgeneral Hulusi Say n
Lisesi nde Bilgisayar Ouml retmeni olarak goumlrevini suumlrduumlrmektedir Yabanc dili ngilizce dir
Fatih AYDO MU ile evlidir
96
EK
Katalog ccedilal mas n n uygulama dosyas olan catamxml kullanmxml ve
imagepagemxml dosyalar n n kaynak kodlar a a daki gibidir
Catamxml
ltxml version=10 encoding=utf-8gt
ltmxApplication xmlnsmx=httpwwwadobecom2006mxml
layout=absolute
xmlnscontrols=qscontrols
backgroundColor=FFFFFF
creationComplete=init() color=FFFFFF xmlnslocal= xmlnscomp=comp
horizontalScrollPolicy=off verticalScrollPolicy=off borderColor=050505 borderStyle=solid
borderThickness=2gt
ltmxStyle source=stylecss gt
ltmxScriptgt
lt[CDATA[
import mxutilsStringUtil
import mxrpcsoapLoadEvent
import mxcontrolsAlert
import mxrpceventsFaultEvent
import qscontrolsFlexBook
import qscontrolsflexBookClassesFlexBookPage
import qscontrolsflexBookClassesFlexBookEvent
import qscontrolsflexBookClassesWBookPageImpl
import qscachingContentCache
import mxrpceventsResultEvent
import mxrpchttpHTTPService
import mxcoreUIComponent
import mxmanagersPopUpManager
import compResimSec
import Kullan
import mxcoreScrollPolicy
import mxcollectionsArrayCollection
private var aXML
[Bindable]
private var resimlerArrayCollectioncomboresim
97
private var dataSetHTTPService
private var resimdiziArray=new Array()
private var zoomYapBoolean=false
private function init()void
maskex=0
maskey=0
maskewidth=applicationwidth2
maskeheight=applicationheight-40
addEventListener(MouseEventMOUSE_MOVEmaskele)
addEventListener(tamam sayfa_secildi)
dataSet = new HTTPService()
dataSeturl = (dataimagesxml)
dataSetresultFormat = e4x
dataSetsend()
dataSetaddEventListener(FaultEventFAULT onFault)
dataSetaddEventListener(ResultEventRESULT onResult)
var wNumber=new Number
var hNumber=new Number
w=Applicationapplicationwidth
h=Applicationapplicationheight
bookwidth=w
bookheight=h-40
yuklemevisible=false
yuklemesource=assetsloadinggif
yuklemeaddEventListener(EventCOMPLETEyukleme_yuklendi)
private function yukleme_yuklendi(eventEvent)void
yuklemex=(applicationwidth2)-100
yuklemey=(applicationheight-40)2
private function maskele(eMouseEvent)void
if(zoomYap)
98
if((mouseXgt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) )
maskex=0
img2visible=false
img1visible=true
img1x=(applicationwidth2)-mouseX
img1y=-1mouseY
else if((mouseXlt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) )
maskex=applicationwidth2
img1visible=false
img2visible=true
img2x=-1mouseX
img2y=-1mouseY
maskex=mouseX
maskey=mouseY
private function onFault(eEvent)void
trace(e)
private function onResult(eResultEvent)void
a=new XML(eresult)
bookcontent = dataSetlastResultimage
bookaddEventListener(FlexBookEventTURN_STARTloadContent)
bookaddEventListener(FlexBookEventTURN_ENDloadContent)
private function sayfa_secildi(eventResimSec)void
99
sayfatext=eventyeniResim
git()
mxcontrolsAlertshow(sseventyeniResim)
private function loadContent(eventFlexBookEvent)void
setGorunum()
var pageImagePage = ImagePage(eventrenderer)
pageload()
sayfatext=(bookcurrentPageIndex2)toString()
resimdizi[bookcurrentPageIndex]=pagethumbsource
mxcontrolsAlertshow(bookcurrentPageIndextoString())
private function buyuk1_yuklendi(eventEvent)void
yuklemevisible=false
img1width=applicationwidth
img1height=(applicationheight-40)2
img1x=0
img1y=0
private function buyuk2_yuklendi(eventEvent)void
yuklemevisible=false
img2width=applicationwidth
img2height=(applicationheight-40)2
img2x=0
img2y=0
private function tumsayfalar()void
Kullanshow_window(thisfalseapplicationwidth-10(applicationheight-60)2)
customMoveend()
customMoveplay()
private function zoom()void
if(zoomerlabel==+)
zoomerlabel=-
if(img2source=aimage[bookcurrentPageIndex2]zoom)
yuklemevisible=true
img2addEventListener(EventCOMPLETEbuyuk2_yuklendi)
100
img2source=aimage[bookcurrentPageIndex2]zoom
if(aimagelength()gtbookcurrentPageIndex2+1)
img1addEventListener(EventCOMPLETEbuyuk1_yuklendi)
img1source=aimage[bookcurrentPageIndex2+1]zoom
zoomYap=true
else if(zoomerlabel==-)
zoomerlabel=+
setGorunum()
private function setGorunum()void
zoomYap=false
zoomerlabel=+
img1visible=false
img2visible=false
private function next()void
mxcontrolsAlertshow(bookcurrentPageIndextoString() bookpageCounttoString())
if(bookcurrentPageIndex+1 lt bookpageCount)
mxcontrolsAlertshow(--resimdizi[bookcurrentPageIndex])
setGorunum()
bookturnToPage(bookcurrentPageIndex + 1)
private function previous()void
if(bookcurrentPageIndex gt 0)
setGorunum()
bookturnToPage(bookcurrentPageIndex -1)
private function git()void
var s_nouint = new uint
s_no=Mathfloor(uint(sayfatext)2)
101
if(s_nogt0 ampamp s_noltbookpageCount)
bookturnToPage(s_no)
setGorunum()
]]gt
ltmxScriptgt
lt-- 614x453 --gt
ltmxParallel id=customMove target=Kullangt
ltmxMove duration=2000 xTo=(100) 2 yTo=(200) 2 gt
ltmxWipeRight duration=2000 gt
ltmxParallelgt
ltmxVBoxgt
ltmxHBoxgt
ltcontrolsFlexBook id=book width=100 height=100 x=0 y=0 horizontalCenter=0
verticalCenter=0
animateCurrentPageIndex=true
showCornerTease=false
edgeAndCornerSize=150
itemRenderer=ImagePage
animatePagesOnTurn=true
itemSize=halfPage cornerRadius=0 themeColor=1D99E8
backgroundAlpha=10 alpha=10gt
ltcontrolsFlexBookgt
ltmxHBoxgt
ltmxHBox height=30 width=100 verticalAlign=middle
horizontalAlign=center color=B65F5F backgroundColor=121313gt
ltmxSpacer width=10gt
ltmxSpacergt
ltmxTextInput borderColor=FFFFFF width=34 height=24 id=sayfa
color=FFFFFF fontSize=11 text=0 alpha=001gt
ltmxButton click=git() color=ffffff fontWeight=bold fontSize=11
width=114 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label=Sayfaya Git themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxSpacer width=60gt
102
ltmxSpacergt
ltmxButton click=previous() color=ffffff fontWeight=bold fontSize=11
width=70 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label=Geri themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxButton click=next() color=ffffff fontWeight=bold fontSize=11
width=70 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label= leri themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxButton click=tumsayfalar() color=ffffff fontWeight=bold fontSize=11
width=134 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label=Tuumlm Sayfalar themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxButton id=zoomer click=zoom() color=ffffff fontWeight=bold
fontSize=14 width=44 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00
00] label=+ themeColor=EDF2F5 textRollOverColor=EDD617 fontFamily=Arialgt
ltmxSpacer width=5gt
ltmxHBoxgt
ltmxSpacer height=10gt
ltmxVBoxgt
ltmxCanvas id=maske x=224 y=168 width=200 height=168
verticalScrollPolicy=off horizontalScrollPolicy=off borderThickness=0 borderColor=000000
borderStyle=solidgt
ltmxImage id=img1 x=0 y=0gt
ltmxImage id=img2 x=40 y=0gt
ltmxCanvasgt
ltmxImage x=10 y=144 id=yuklemegt
ltmxApplicationgt
103
Kullanmxml
ltxml version=10 encoding=utf-8gt
ltmxTitleWindow xmlns= xmlnsmx=httpwwwadobecom2006mxml
creationComplete=on_creation_complete()
styleName=popupWindow showCloseButton=true
paddingBottom=0 paddingTop=0 paddingLeft=0 paddingRight=0
height=200 width=100 alpha=09 borderAlpha=1gt
ltmxScriptgt
lt[CDATA[
import mxcontrolsAlert
import mxcollectionsArrayCollection
import mxrpceventsResultEvent
[Bindable]
private var sayfalarArrayCollection
[Bindable]
private var introString =
import mxeventsCloseEvent
import mxmanagersPopUpManager
import mxcoreApplication
import mxeventsDragEvent
import mxmanagersDragManager
import mxcoreDragSource
import compResimSec
import koraxcontrolsColorPickerResimSecEvent
private var m_parentDisplayObject = null
private function myResult(eventResultEvent)void
sayfalar = eventresultsayfalarsayfa
private function sayfaac(eventEvent)void
wndwith_last_preved()
mxcontrolsAlertshow(myTileselectedItemgittoString())
uyeler = eventresultsayfalarsayfa
104
private function on_creation_complete()void
myHTTPsend()
private static var wndKullan = null
public static function show_window(parentDisplayObject
modalBooleanwNumberhNumber)void
if (wnd == null)
wnd = new Kullan()
wndaddEventListener(mxeventsCloseEventCLOSE on_close_event)
wndm_parent = parent
if (wndisPopUp)
PopUpManageraddPopUp(wnd DisplayObject(Applicationapplication) modal)
PopUpManagercenterPopUp(wnd)
else
PopUpManagerbringToFront(wnd)
wndstart_init()
wndx=0
wndy=0
wndwidth=w
wndheight=h
wndmyTilewidth=w-20
wndmyTileheight=h-40
private function with_last_preved()void
if (m_parent = null) m_parentdispatchEvent(new ResimSec(tamam
myTileselectedItemgit))
private static function on_close_event(eventCloseEvent)void
if (wnd == null) return
PopUpManagerremovePopUp(wnd)
wnd = null
105
private function yardim()void
Kullanshow_window(thisfalse)
]]gt
ltmxScriptgt
ltmxHTTPService id=myHTTP url=dataonizlexml
result=myResult(event) showBusyCursor=truegt
ltmxTileList id=myTile dataProvider=sayfalar change=sayfaac(event)
itemRenderer=compUyeSayfasi width=100 height=147 rowHeight=110 columnWidth=120
rowCount=2gt
ltmxTitleWindowgt
106
ImagePagemxml
ltxml version=10 encoding=utf-8gt
ltmxCanvas xmlnsmx=httpwwwadobecom2006mxml width=600 height=400
xmlnscontrols=qscontrols
backgroundColor=FFFFFF horizontalScrollPolicy=off verticalScrollPolicy=offgt
ltmxstatesgt
ltmxState name=loadingStategt
ltmxAddChild position=lastChildgt
ltmxImage id=loadingContent horizontalCenter=0 verticalCenter=-6
source=assetsloadinggif gt
ltmxAddChildgt
ltmxStategt
ltmxstatesgt
ltmxtransitionsgt
ltmxTransition fromState= toState=loadingStategt
ltmxFade alphaTo=1 target=loadingContent duration=1000gt
ltmxTransitiongt
ltmxTransition toState= fromState=loadingStategt
ltmxSequencegt
ltmxFade alphaTo=0 target=loadingContent duration=1000gt
ltmxRemoveChildAction target=loadingContent gt
ltmxSequencegt
ltmxTransitiongt
ltmxtransitionsgt
ltmxScriptgt
lt[CDATA[
import mxcontrolsAlert
private var _loadedBoolean = false
public function load()void
if(_loaded)
return
_loaded = true
fullsource = datasourcetoString()
mxcontrolsAlertshow (fullsource)
107
currentState = loadingState
]]gt
ltmxScriptgt
ltcontrolsSuperImage left=0 right=0 top=0 bottom=0 id=thumb
source=datathumbtoString() gt
ltcontrolsSuperImage left=0 right=0 top=0 bottom=0 id=full complete=currentState = gt
ltmxCanvasgt
This document was created with Win2PDF available at httpwwwwin2pdfcomThe unregistered version of Win2PDF is for evaluation or non-commercial use onlyThis page will not be added after purchasing Win2PDF
II
342 HTTP Request Nesnesinin Oumlzellikleri ve Youmlntemleri 25
343 HTTP Response Nesnesi 26
35 AJAX leti im Teknikleri 27
351 XMLHttp Requests (XHR) Nesnesi 27
36 AJAX Olu turan Bile enler 34
361 E zamanl Olmayan leti im 34
362 E zamanl leti im 35
363 Javascript 36
37 Basit Bir AJAX Oumlrne i 49
38 XML 51
381 Oumlrnek XML Belgesi Olu turma 53
382 XML Dokuumlman n n Yap s
55
383 XML nin Soumlz Dizim Kurallar
67
384 XML Dokuumlmanlar n n leyi i ve Sunumu 69
39 AJAX Prensipleri 69
310 AJAX Kuumltuumlphaneleri ve Araccedillar
70
3101 Prototype 70
3102 AJAX Gear Toolkit 71
3103 AspNet Ajax 71
3104 Dojo Toolkit 71
3105 MochiKit 71
3106 PHPLiveX 71
3107 Sardalya (Sarmal Dinamik Altyap s ) 72
3108 Sajax 72
3109 Solvent 72
31010 AjaxAC 72
31011 Xajax 72
31012 Scriptaculous 73
311 AJAX Uygulamalar nda Kullan lan Di er Teknolojiler 73
3111 HTMLXHTML 73
3112 CSS 73
3113 XSLT 74
4 FLEX 75
41 Adobereg Flexreg 3 Kurulumu ccedilin Gereken Minimum Sistem Gereksinimleri 76
411 Windows ccedilin Flex Builder 3 (Standart ve Profesyonel) 76
III
412 Macintosh ccedilin Flex Bu lder 3 (Standart ve Profesyonel) 77
5 CcedilEVR M Ccedil KATALOG TASARIMI F rat Uumlniversitesi Oumlrne i 78
6 SONUCcedil 88
61 Oumlneriler 89
KAYNAKLAR 90
OumlZGECcedilM
95
EK 96
IV
EK LLER L STES
Sayfa
ekil 21 Web 20 kavram
2
ekil 22 Web 20 ak m nda oumlne ccedil kan uygulamalar 3
ekil 23 Doubleclick ve Google Adsense sitelerinin logolar 4
ekil 24 Flickr sitesinin logosu 5
ekil 25 ccedilerik da t m sitelerinde bittorrent site logosu 5
ekil 26 Torrent program n n anasayfas
6
ekil 27 Torrent program n n arayuumlzuuml 7
ekil 28 Facebook kullan c say s n n aylara goumlre da l m grafi i 9
ekil 29 Aylara goumlre facebook ve myspace site analizi 10
ekil 210 Vikipedi oumlzguumlr ansiklopedi sitesinin logosu 12
ekil 211 Oumlrnek etiket bulutu 14
ekil 212 Yans mal logo oumlrne i 15
ekil 213 Web 20 da buton oumlrnekleri 15
ekil 214 Web 20 da arka plan oumlrnekleri 15
ekil 215 Web 20 da ccedilerccedileve yap s na oumlrnek 16
ekil 216 Web 20 da menuuml oumlrne i 16
ekil 31 Jesse James Garrett in makale goumlruumlntuumlsuuml 17
ekil 32 Google Suggest ekran goumlruumlntuumlsuuml 18
ekil 33 Google Maps ekran goumlruumlntuumlsuuml 18
ekil 34 Geleneksel sunucularda istekcevap modeli 20
ekil 35 AJAX n asenkron istekcevap modeli 20
ekil 36 Klasik Web uygulamalar nda t kla-bekle doumlnguumlsuuml 21
ekil 37 T kla-T kla interaktif AJAX uygulamas
21
ekil 38 Geleneksel Web ileti im modeli ile AJAX ileti im modeli 21
ekil 39 Web uygulamas ndaki cevap ak
22
ekil 310 AJAX uygulamalar ndaki istek ak
22
ekil 311 Normal Web ile AJAX uygulamalar n n kar la t rmas
23
ekil 312 Geleneksel istekcevap (requestresponse) youmlntemi 23
ekil 313 Standart AJAX etkile imi 32
ekil 314 E zamanl olmayan ileti im modeli 35
ekil 315 E zamanl ileti im modeli 36
ekil 316 Javascript nesneleri 44
V
ekil 317 DOM a accedil yap s
46
ekil 318 AJAX oumlrne i 49
ekil 319 sonuchtml sayfas n n ekran ccedil kt s
51
ekil 320 denemexml dosyas n n a accedil yap s
53
ekil 321 XML belgesi 55
ekil 322 Oumlrnek bir XML dokuumlman yap s
56
ekil 323 denemexsd nin ekran goumlruumlntuumlsuuml 65
ekil 41 Flex uygulamalar n n i lem ak emas
75
ekil 42 Flex arayuumlzuuml 76
ekil 51 Kodlama algoritmas
79
ekil 52 Katalo un ilk sayfas n n ekran goumlruumlntuumlsuuml 81
ekil 53 Katalo un 23 sayfa goumlruumlntuumlsuuml 82
ekil 54 Katalo un sayfa ccedilevirme efektli goumlruumlntuumlsuuml 83
ekil 55 Katalo un navigasyon ccedilubu u 84
ekil 56 Tuumlm Sayfalar duuml mesi t kland ndaki ekran goumlruumlntuumlsuuml 85
ekil 57 Zoom oumlzelli i 86
VI
TABLO L STES
Tablo 21 Facebook ve myspace in buumlyuumlme tablosu 10
Tablo 31 Standart XHR nesnesinin oumlzellikleri 30
Tablo 32 Standart XHR nesnesinin fonksiyonlar
31
Tablo 33 De i ken tuumlrleri 41
Tablo 34 leccediller ve goumlrevleri 41
Tablo 35 kili i leccediller 42
Tablo 36 DTD karakterleri ve accedil klamalar
61
Tablo 37 DTD ccedilindeki niteliklerin de er ve accedil klamalar
62
Tablo 38 Varsay lan de erler ve accedil klamalar
62
Tablo 39 XML Belgelerinde kullan lan varl k bildirimleri 67
VII
KISALTMALAR L STES
AJAX Asenkron JavaScript ve XML
API Application Programming Interface (Uygulama Program Arayuumlzuuml)
ASP Active Server Pages (Aktif Sunucu Sayfalar )
CDNs Content Distributed Networks ( ccedilerik Da t c A lar)
CMS Content Management System ( ccedilerik Youmlnetim Sistemi)
CGI Common Gateway Interface (Genel Geccedili Arayuumlzuuml)
CSS Cascading Style Sheets (Basamakl Stil Sayfalar )
DFA DART for Advertisers
DOM Document Object Model (Doumlkuumlman Nesne Modeli)
DTD The Document Type Definition (Dokuumlman Tipi Tan mlama)
DWR Direct Web Remoting ( Direkt Web Eri imi)
ECMA European Computer Manufacturers Association (Avrupa Bilgisayar
Uumlreticileri Birli i)
GOumlBL GNU Oumlzguumlr Belgeleme Lisans
HTML Hyper Text Markup Language (Yard ml Metin aretleme Dili)
HTTP Hypertext Transfer Protocol (Yard ml Metin Aktar m Protokoluuml)
IDE Integrated Development Environment (Tuumlmle ik Geli tirme Ortam )
JSP Java Server Pages (Java sunucu Sayfalar)
LAN Local Area Network (Yerel Alan A )
MIYS E-ticaret ve Muuml teri li kileri Youmlnetim Sistemleri
MSN Microsoft Network
OOP Object Oriented Programming (Nesne Youmlnelimli Programlama)
PHP Hypertext Preprocessor (Yard ml Metin Oumlni leme)
PIs Processing Instructions ( lem Accedil klamalar )
RIA Rich Internet Applications (Zengin nternet Uygulamalar )
VIII
RPC Remote Procedure Call (Uzaktan Yordam Ccedila rma)
SAX Simple API for XML (XML iccedilin Basit API)
WIKI What I Know is (Ne Biliyorsam)
W3C World Wide Web Consortium (Duumlnya Ccedilap nda A Birli i)
XML eXtensible Markup Language (Geli tirilebilir aretleme Dili)
XHR XMLHttpRequest
XHTML Extensible HyperText Markup Language (Geli tirilebilir Yard ml Metin
aretleme Dili)
XSD eXtensible Schema Document(Geni letilebilir ema Dokuumlman )
XSL Extensible Stylesheet Language (Geli tirilebilir Biccedilimlendirme Dili)
XSLT Extensible Stylesheet Language Transformations (Geli tirilebilir
Biccedilimlendirme Dil Doumlnuuml uumlmleri)
IX
OumlZET
Yuumlksek Lisans Tezi
AJAX TEKNOLOJ S KULLANARAK CcedilEVR M Ccedil
KATALOG TASARIMI
Zeynep OumlZER AYDO MU
F rat Uumlniversitesi
Fen Bilimleri Enstituumlsuuml
Elektronik-Bilgisayar E itimi Anabilim Dal
2009 Sayfa 107
Gerccedilekle tirilmi olan bu uygulama kapsam nda Flex program ve Web 20 n
ccedilekirde ini olu turan AJAX (Asynchronous JavaScript and XML) teknolojisi kullan larak F rat
Uumlniversitesini tan tan kolayl kla guumlncellenebilen Zengin nternet Uygulamalar na (RIA- Rich
Internet Applications) oumlrnek bir ccedilevrimiccedili katalog tasar m ve gerccedilekle tirimi yap lm t r
Projenin gerccedilekle tirim a amalar nda kullan lan teknolojilerin ve izlenen youmlntemlerin
anlat mlar n iccedileren bir yol haritas olu turulmu tur
Anahtar soumlzcuumlkler AJAX RIA Web 20 ccedilevrimiccedili katalog e-dergi
X
ABSTRACT
Master Thes s
ONLINE CATALOG DESIGN USING AJAX TECHNOLOGY
Zeynep OumlZER AYDO MU
F rat University
Graduate School of Natural and Applied Sciences
Department of Electronic and Computer Education
2009 Page 107
Embracing in this comparison F rat University is introduced by using Flex program and
AJAX (Asynchronous JavaScript and XML) technology which forms Web 20 Also RIA (Rich
Internet Applications) is easily renowated which is instance for online catalog design A road
map including realization of the project and tracing methods are illustrated
Keywords AJAX RIA Web 20 online catalog e-journal
1
1 G R
Web in geli im suumlrecinde ccedile itli youmlntemler kullan l r Bu youmlntemlerin farkl amaccedillara
hizmet etmeye ba lamas yla Web te ak mlar meydana gelmi tir Bu ak mlardan ilki Web 10
ak m olarak adland r l r Bu ak mda kullan c lar bilgilendirmeye youmlnelik iccedilerik sunumu
yap lmaktad r [1]
Web 20 ak m ise internet sitelerinin bilgi bar na olmas ndan i leyen platformlara
ta nmas
olarak tan mlanabilir Web 20 RIA (Rich Internet Applications- Zengin nternet
Uygulamalar ) i lemleri internet sunucu mimarisi temeline dayanmaktad r RIA da beraberinde
kulland AJAX Flex gibi teknolojiler uumlzerine kuruludur [1]
Baz yeni teknolojilerle de i en World Wide Web duumlnyas Web 20 RIA AJAX
(Asynchronous JavaScript and XML- E zamanl olmayan JavaScript ve XML) terimleriyle izah
edilmektedir
11 Tez Ccedilal mas n n Amac
Bu tez ccedilal mas yla Web 20 n ccedilekirde ini olu turan AJAX (Asynchronous JavaScript
and XML) teknolojisi ve Flex program kullan larak F rat Uumlniversitesini tan tan kolayl kla
guumlncellenebilen Zengin nternet Uygulamalar na (RIA-Rich Internet Applications) oumlrnek bir
ccedilevrimiccedili (online) katalog tasar m yap lmas hedeflenmi tir Projenin gerccedilekle tirim
a amalar nda kullan lan teknolojilerin ve izlenen youmlntemlerin anlat mlar n iccedileren bir yol
haritas olu turulmas amaccedillanm t r Bu tez ccedilal mas sonucunda geli tirilen yaz l mla kolay
guumlncellenebilen katalog haz rlanmas na katk sa lanmas amaccedillanm t r
12 Tez Ccedilal mas n n Kapsam
Bu tez ccedilal mas 6 boumlluumlmden olu mu tur 1 Boumlluumlm giri i olu turmaktad r 2Boumlluumlmde
Web 20 ak m incelenecektir 3 Boumlluumlmde AJAX teknolojisi accedil klanacakt r 4 Boumlluumlmde
yaz l m gerccedilekle tirme arac olarak kullan lan Flex tan t lacakt r 5 Boumlluumlmde gerccedilekle tirilmi
ccedilevrimiccedili katalog hakk nda bilgi verilecektir 6 Boumlluumlmde ccedilal man n sonuccedillar
ve gelece e
youmlnelik oumlneriler bulunmaktad r
2
2 WEB 20 AKIMI
Ccedilo u teknolojilerde oldu u gibi yenilik aray ihtiyaccediltan do ar Yeni Web ak mlar n n
do u u da 2001 y l ndaki tuumlm duumlnyay etkileyen kriz sonras nda iflas eden irketlerin yeniden
aya a kalkma ccedilabalar n n bir sonucu olarak ortaya ccedil km t r [2 3] Web 20 ak m 2005 te ilk
kez OReilly ve MediaLive International aras nda gerccedilekle en bir beyin f rt nas s ras nda
uumlretilmi bir kavramd r [3] Web 20 kavram World Wide Web teknolojisinde kullan lan
de i en ve geli en e ilimlere verilen bir ad olarak da tan mlanabilmektedir
ekil 21 Web 20 kavram
[4]
Web 20 kavram ekil 21 de goumlsterildi i uumlzere Web bir uygulama platformu ve sosyal
etkile imli olma oumlzelliklerini bar nd r r Ccedilevrimiccedili hayat n ba lang c ve devam n temsil eder
Say sal ortamda kendini ifade etme imkacircn sunar Kullan c lar (oku-yaz oumlzelli i ile) Web te
kat l mc kimlik kazan r
Asl nda Web 20 ortam n 1964 y l nda McLuhan Global Koumly terimini kullanarak
ortaya atm t r McLuhan Global Koumlyuuml gelecekte ileri teknolojiye geccedililmesiyle ve toplumlar
aras nda s n rlar n kalkmas yla duumlnyan n her kouml esinde teknolojiyi kullanan herkesin co rafi
s n rlar ve s n rlamalar olmaks z n diledikleri ki iyle ileti im kurabilecekleri
haberle ebilecekleri ve payla mda bulunabilecekleri bir ortam olarak tan mlam t r [5]
Mc Luhan n n tan m ndan guumlnuumlmuumlze kadar geccedilen suumlreccedil iccedilinde kullan c ihtiyaccedillar
da
de i im ve geli im goumlstermi tir Bu ihtiyaccedillar kar lamak iccedilin genel olarak internet
uygulamalar n n daha zengin bir arayuumlz ile sunulmas n sa layan uygulamalar Zengin nternet
Uygulamalar ad alt nda k sa zaman oumlnce hayat m za girmi tir
RIA uygulamalar s radan HTML web uygulamalar ile standart masauumlstuuml uygulamalar
aras ndaki bo lu u dolduran bir geli tirme platformudur Web arayuumlzuumlnde basit HTML ile
3
s n rl kalmadan masauumlstuumlndeki zengin goumlrsel ouml eleri program niteli inde kullanabilecek her
tuumlrluuml araccedil RIA konseptini uygulamaktad r [6]
Kullan c lar art k iccedilerik uumlreticilerin s n rlar n kald rarak kullan c n n yan s ra kat l mc
olarak ta nitelendirilerek etkile imli bir rol uumlstlenmi lerdir nternetin bu yeni gereksinimlere
cevap vermesiyle ortaya ccedil kan Web 20 doumlnuuml uumlmuuml hem kullan c say s nda art a neden
olmu tur hem de kullan c lar n iccedilerikleri yani mesajlar olu turdu u ve payla t buumlyuumlk bir
guumlce doumlnuuml muuml tuumlr Bu guumlcuumln oumlnemini ccedilabuk anlayan kurulu lar mimarilerine AJAX da dacirchil
ederek oumlnce arama motorlar n Google Yahoo yu daha sonra MSN yi Hotmail i bloglar
(Myspace Bloggercom Blogcucom gibi) Youtube u Wikileri ve sosyal a sitelerini
(Facebook Twitter Orkut vb) ke fetmi lerdir Bu ke iflerin sonucunda McLuhan n Global
Koumly uumlnuumln 21 Yuumlzy lda tam olarak gerccedilekle ti i soumlylenebilir Bu interaktif siteler sayesinde
ayn anda milyarlarca ki inin rk dil din ya am tarz e itim ya cinsiyet statuuml goumlzetmeksizin
e zamanl payla mda bulunup kendi ccedilevreleri ve ba ka ccedilevrelerle ileti ime geccedilebilmektedirler
ekil22 de goumlsterilen irketler Web 20 ak m nda oumlne ccedil kan sitelerin oumlzellikle ccedilevrimiccedili
faaliyet goumlsteren reklacircm irketleri pazarlama ve ticari irketler perspektifinden bak ld nda da
oumlnemli bir potansiyele sahip kitle ileti im araccedillar olarak goumlruumlluumlr [7]
ekil 22 Web 20 ak m nda oumlne ccedil kan uygulamalar [8]
Kitle ileti im arac olarak kullan labilen bu uygulamalar iccedilin birccedilok geli tirme ortam
mevcuttur Adobe Flex AJAX Java Applet Adobe Flash ve Microsoft Silverlight uygulamalar
en ccedilok bilinen RIA uygulamalar d r A a da da bu uygulamalarla olu turulmu Web 20
platformunda oumlne ccedil kan popuumller uygulama oumlrnekleri incelenecektir [7]
4
21 Web 20 Platformunda Oumlne Ccedil kan Popuumller Uygulamalar
kinci nesil internet hizmeti olarak literatuumlre giren Web 20 ak m yla internet sitelerinin
ccedilehresi de i mi tir nternet siteleri art k masauumlstuuml uygulamalar ile internet uygulamalar
aras nda bir koumlpruuml goumlrevi uumlstlenmi tir A a da bu ak m n popuumller uygulamalar ndan oumlrnekler
bulunmaktad r
211 Double Click - Google AdSense
Google firmas na ait iki uygulama da reklacircm verenlerin ve yay nc lar n web uumlzerinden
reklacircm hizmeti sunmas n sa layan sitelerdir Her reklacircmc n n hedefi tuumlketicilerin isteklerine
uygun ccediloumlzuumlmler sunmakt r Bu ccediloumlzuumlm ise Web 20 la reklacircmlar n profilini de i tirmi tir Art k
istenmeyen kendili inden accedil lan reklacircm pencerelerinin yerini kullan c n n bilgisayar na
yerle tirilmi ccedilerezlerden ccedilekti i bilgilere dayanarak kullan c n n ilgisini ccedilekebilece ini tahmin
etti i rahats z edici olmayan metin ya da resim tabanl
reklacircmlar alm t r
DoubleClick in di er reklacircm firmalar ndan ayr lan youmlnuuml reklacircmc lar iccedilin DART
oumlnerisiyle k saca DFA (DART for Advertisers) ile reklacircm youmlnetimi ve servis ccediloumlzuumlmlerinde
kullan c lar na dijital pazarlama programlar n n tuumlmuumlnuuml kapsayan youmlnetimi kolay daha iyi bir
arayuumlze sahip h zl geni bir arama sistemine sahip de eri artan sitelerin trafik ak n
belirleyen bir ccediloumlzuumlm olmu tur DoubleClick daha ccedilok grafiksel reklacircmlar yay nlamaktad r
Oumlnceleri Web 10 uygulamalar aras nda say lan bu site Web 20 doumlnuuml uumlmuumlnuuml ba ar yla
gerccedilekle tirmi tir [9]
Google AdSense ise web sitesi yay nc lar n n site iccedileri iyle alakal dinamik ve goumlze
batmayan Google reklacircmlar n
web sitelerinde goumlstererek kullan c lar n bu reklacircmlara
t klamalar yla para kazanmalar n sa laman n h zl ve kolay bir yoludur Uumlcretsiz olan bu
program sayesinde her t klama ve goumlsterim iccedilin site sahiplerine oumldeme yap l r [10] Bu
uygulamalar sayesinde Web de daha ak ll bir sisteme do ru youmlnelim ba lam t r
ekil 23 Doubleclick ve Google Adsense sitelerinin logolar [11 12]
5
212 Flickr
Yahoo nun sundu u bir hizmet olan uumlcretsiz foto raf arama ve payla m sitesi Flickr
ayn zamanda web servisi ve ccedilevrimiccedili topluluk platformudur Web 20 n ilk uygulamalar ndan
biridir Foto raf payla m nda en popuumller sitelerin ba nda gelmektedir ccedileri inde yakla k
olarak 3 milyar
a an foto raf bulunmaktad r Yenilikccedili ccedilevrimiccedili topluluk araccedillar foto raflar
etiketlemeye ve s n fland rmaya yard mc olur Bu da popuumllaritesindeki ciddi art n
nedenlerinden biridir
Flickr a imaj yuumlkleyebilmek iccedilin Yahoo dan bir e-mail adresiyle sisteme giri
yap lmal d r Payla lmak istenen foto raflar uumlcretli uumlyelik olmadan her imaj iccedilin 5 Mb l k
s n rlamayla ayda toplam 100 Mb a kadar yuumlkleme yap labilir Sadece foto raf eklemenin
d nda imajlar uumlzerinde duumlzenlemeler yap labilir Belirlenen alanlara notlar eklenebilir
Be enilen foto raflara yorumlar eklenebilir Ccedile itli gruplara uumlye olunup ileti im kurulabilir
Ayr ca API leri sayesinde XML-RPC (Remote Procedure Call- Uzaktan Yordam Ccedila rma)
arabirimi kullanarak flickr sitesindeki foto raflarla ilgili bilgileri proseduumlrler sayesinde XML
format nda al p ayr t rarak ba ka bir programda kullan labilinir Flickr daki blog grup ve
etiketleme alt yap s bu API lere dayanmaktad r [13]
ekil 24 Flickr sitesinin logosu [14]
213 BitTorrent
BitTorrent internet uumlzerinden yuumlksek h zlarla iccedileri in da t ld duumlnya ccedilap nda bir
standartt r Ayr ca 150 milyondan fazla kullan c ya sahip en son p2p (peer to peer) dosya
payla m youmlntemlerinden biridir Di er p2p payla m programlar ndan fark sabit olmayan
ba ms z sunucu tan mlama dosyalar sayesinde sabit bir sunucuya ihtiyaccedil olmaks z n belirli bir
protokol ccedilerccedilevesinde indirme (download) yaparken yuumlkleme (upload) yap lmas na da izin
vererek payla ma devam edebilmesidir [15]
Python programlama diliyle yaz lm bir uygulamad r [15]
ekil 25 ccedilerik da t m sitelerinde bittorrent site logosu [16]
6
Bit Seli olarak da ccedilevirebilece imiz ccedilok h zl bir sistemdir BitTorrent sayesinde
oldukccedila buumlyuumlk boyutlu videolara ses ya da yaz l m dosyalar na daha h zl daha ucuz ve daha
kolay bir ekilde ula labilmeyi sa lar
Guumlnuumlmuumlzde ccedilerik Da t c A lar (Content Distributed Networks-CDNs) guumln geccediltikccedile
popuumllaritesini art rmaktad r Bittorent kullan m n n 2004 te internet te teknik standartlar ve
youmlnetim konusunda yetkili organ olan W3C (World Wide Web Consortium - Duumlnya Ccedilap nda
A Birli i) taraf ndan yap lan bir ccedilal maya goumlre P2P ba lant lar n toplamda 60 n tuumlm
internet trafi inin ise 30 unu a aca tahmin edilmektedir
BitTorrent le dosya transferi yap l rken oumlncelikle bilgisayarda BitTorrent stemci
(Client) yuumlkluuml olmal d r stemci yaz l mlara oumlrnek Flashget Azureus BitTorrent Torrent
ABC LimeWire vb yaz l mlar olabilir ekil 26 ve ekil 27 de en popuumller uygulamalardan
Torrent yaz l m n n kurulum ve arayuumlz oumlrne i goumlruumllmektedir
ekil 26 Torrent program n n anasayfas
7
ekil 27 Torrent program n n arayuumlzuuml
BitTorrent istemciler BitTorrent Protokol uygulamalar n yapar Her istemci bu
protokoluuml kullanarak dosyalar n kullan c lar n BitTorent in kulland protokole sahip
duumlnyadaki tuumlm iccedileriklere h zl ve guumlvenilir bir ekilde eri mesine izin verir stenilen iccedileri in
indirilebilmesi iccedilin gerekli tan mlama bilgilerinin bar nd
torrent uzant l bir dosyaya
ihtiyaccedil vard r Bu torrent dosyalar n ccedile itli duyuru sitelerinden ya da Web den temin edildikten
sonra istemciler yukar da bahsedilen herhangi bir torrent yaz l m kullanarak bu dosyay accedilarlar
ndirme ba lad anda indirilmek istenen dosyay payla an kullan c lar n olu turdu u kuumlccediluumlk
a a (swarm) dacirchil olurlar Bu kuumlccediluumlk a daki her kullan c dosyan n indirdi i boumlluumlmuumlnuuml di er
kullan c larla payla mas gerekir Tuumlm bu i lemleri de takipccedili (tracker) isimli bir sunucu kontrol
eder Yakla k olarak 256 Kb buumlyuumlkluuml uumlndeki bu kuumlccediluumlk boyutlu dosyalara indeksleyici
(indexer) de denmektedir Kuumlccediluumlk bir a
kurulmas iccedilin tuumlm dosyaya sahip en az bir da t c n n
(seeder) olmas gerekir Da t c lar herhangi bir dosyay yuumlkleyen kaynaklard r O dosyan n
tamam n
kendi bilgisayar na indiren her kullan c art k bir da t c
olur Fakat da t c olmak
kullan c lar n insiyatifindedir ndirme i lemi bittikten sonra o dosya payla ma accedil k tutulmazsa
di er kullan c lar da t c dan bu dosyay ccedilekerek indirme i lemini h zland ramazlar Da t c
say s
ne kadar artarsa indirme i lemi o kadar h zl olur ndirme yapan kullan c lara da grup
uumlyeleri (peers) denilmektedir Torrent dosyas n indiren kullan c lar izleyicilere (tracker) dosya
hakk nda bilgi goumlnderirler di er kullan c lar (peers) ise izleyicilere ba lanarak kimde hangi
dosyan n hangi parccedilalar n n oldu unu ouml renirler zleyiciler uumlzerinden kesinlikle dosya transferi
8
gerccedilekle mez sadece kaynak payla l r Hangi kullan c ne kadar dosya ccedilekti ve ne kadar
yuumlkledi gibi istatistiksel bilgileri de bar nd rabilir [16 17]
Sadece indirme i lemi yap p kaynak olmay istemeyen ki ilere leecher (suumlluumlk) denir Bu
anlay a sahip ki iler gruplar iccedilinde ho kar lanmazlar Bir torrent dosyas payla m nda
kaynak (seed) say s s f r ise yani dosyan n tamam na sahip ki iler payla mdan ccedilekilmi lerse
eksik dosyaya sahip buumltuumln uumlyeler (peer) birbirleri aras nda veri al veri i yaparak eksik
parccedilalar indirebilecekleri bir kaynak olmad ndan belli bir yuumlzdesi tamamlanm dosyaya
sahip olarak kal rlar Bu durumda daha oumlnce dosyay indirmi ve dosyan n tamam na sahip olan
bir kullan c
eksik parccedilalar goumlndermek iccedilin dosyay yeniden payla ma accedilabilir (seed eder) Bu
olaya reseed etme denir [18]
214 Sosyal A Siteleri
Sosyal a lar bireyler aras ndaki ki isel veya profesyonel ili kilerin olu turuldu u
duumlzenlendi i a d r [19] Son y llardaki bilgi teknolojilerindeki geli meler sosyal a lar n gerccedilek
ya amdakinden daha farkl bir ekilde yeniden yap lanmas n
sa lam t r Herhangi bir
irketteki yerel a iccedilinde personelin e-posta al p-goumlndermesiyle olu an etkinlik ve e-posta
gruplar ilk ccedilevrimiccedili sosyal a oumlrneklerinden say labilir Daha sonra h zla hayat m za giren
bloglar wikiler ve sosyal a siteleri gibi sosyal i birli i sa layan teknolojilerin geli mesi
insanlar n ileti im kurduklar bilgi resim muumlzik video payla t klar ve birbirleriyle suumlrekli
haberle tikleri ccedilevrimiccedili sanal topluluklar n olu mas n sa lam t r [20] Bu topluluklar n h zla
yay lmas n n temelinde kullan c lar n bireysel aktivitesine ba l olarak duygu ve duuml uumlncelerini
bilgiyi guumlncel haberleri tavsiyelerini be enilerini payla ma fikri vard r A a da sosyal a
sitelerinden en popuumller olanlar iccedilinde yer alan Facebook incelenecektir [7]
2141 Facebook
En yayg n sosyal a sitesi Facebook Amerika Birle ik Devletleri nde 4 ubat 2004
tarihinde Harvard Uumlniversitesinde ouml renci Mark Zuckerberg taraf ndan kurulmu tur Facebook
oumlncelikle Harvard ouml rencileri iccedilin kurulmu tu Daha sonra h zla tuumlm duumlnyaya yay lm t r
Kullan c lar siteyi uumlcretsiz uumlye olarak kullanabilmektedir Site gelirini banner reklamlar ndan ve
sponsor gruplar ndan almaktad r Duumlnyan n en popuumller Web 20 blogu TechCruncha goumlre
Amerika Birle ik Devletleri ndeki uumlniversitelerdeki ouml rencilerin 85inin facebookda bir
hesab bulunmakta ve bunlar n 60 her guumln ba lanmaktad r 85 her hafta 93 her ay
ba lananlar aras ndad r [21] Facebook sitesinden ba ms z Web 20 ak m n yak ndan takip
9
eden bir blog sitesi olan insidefacebook 2009 Ocak ay n n ba nda yay nlad habere goumlre
facebook kullan c say s a a daki grafikte goumlruumllduuml uuml gibi yakla k 140 milyonu bulmu tur
Milyonlar a k n aktif uumlye say s yla guumlnde ortalama 150 bin aktif kullan c yla sanal duumlnyan n en
popular sitesi olmu tur [22]
ekil 28 Facebook kullan c say s n n aylara goumlre da l m grafi i [23]
Aktif kullan c lar n iccedileri e katk s a a daki istatistik sonuccedillar n do urmu tur [22]
13 milyon kullan c durumlar n en az ndan guumlnde bir kez guumlncellenmektedir
25 milyon kullan c her guumln Sayfa hayran (fan of Pages) olmaktad r
Siteye her ay 700 milyon foto raf yuumlkleniyor ki toplam foto raf rakam yakla k 10
milyar bulmaktad r
Her ay 4 milyon video yuumlklenmektedir
Her ay 15 milyon iccedilerik parccedilas (web linki yeni hikacircyeler blog yaz lar notlar
foto raflar vb) payla ma sunulmaktad r
Her ay 2 milyon etkinlik olu turulmaktad r
Sitede 19 milyon adet aktif grup varl n suumlrduumlrmektedir
Yukar da belirtilen bu rakamlar sosyal ileti im a lar n n ne kadar ciddi boyutlarda bir
kapasiteye sahip oldu unu goumlstermektedir
10
ekil 29 Aylara goumlre facebook ve myspace site analizi [22]
Facebook ve ona en yak n rakibi sosyal ileti im web sitesi olan MySpace compete de
kar la t r ld nda yukar daki grafik elde edilmektedir
Tablo 21 Facebook ve myspace in buumlyuumlme tablosu
Tarih 032008 032009 Kullan c
Ayl k Y ll k
facebookcom
91054535 234
1951
myspacecom
55594761 48
-114
Tablo 21 de Mart 2008 ile Mart 2009 aras ndaki ayl k aktif ziyaretccedili say s n
goumlstermektedir Compete verilerine goumlre Aral k 2008 de facebook myspace in kullan c say s n
yakalam t r Tablo 21 deki verilere goumlre bir oumlnceki y la goumlre Facebook taki kullan c say s nda
ayl k 234 luumlk bir art varken MySpace 48 lik bir buumlyuumlmeye sahiptir Yakla k olarak
ayl k MySpace Facebook u 5 kat geriden takip etmektedir Facebook taki bir oumlnceki y la
goumlre 1951 lik buumlyuumlmeye kar n myspace de 114 luumlk kuumlccediluumllme goumlruumllmektedir Elde edilen
veriler ileriki y llarda bu rakamlar aras ndaki uccedilurumun artaca n i aret etmektedir
Facebooktaki bu h zl buumlyuumlme ekonomi ve ticari sektoumlruumlnuumln de ilgisini ccedilekmektedir Oumlnemli bir
yat r m alan olarak giri imcileri cezbetmektedir
Facebook youmlneticilerinden Peter Thiel ise Facebookun iccedil de erinin 8 Milyar dolar
oldu unu ve proje gelirlerinin 2015 y l iccedilin 1 milyar dolar oldu unu soumlylemektedir [24]
Duumlnyaca tan nm Microsoft irketi 24 Ekim 2007 de Facebooku 16l k hissesini 240 milyon
dolara sat n alm t r Google ve di er irketler de gittikccedile de er kazanan Facebook hisselerine
youmlnelmektedir [24]
11
215 Web Guumlnluumlkler
ngilizcedeki Web
ve log kelimelerinin birle iminden olu an Blog kelimesi internet
uumlzerinden ki ilerin istedikleri konu hakk nda fikir beyan edebilecekleri kendilerini kolayca
ifade etmelerini sa layacak bir ortamd r
Bloglar genellikle en yeni yorum ve yaz lardan eski tarihli yorum ve yaz lara do ru
s ralanm web tabanl yay nlar
belirtir Bloglar n iccedileri i suumlrekli guumlncellendi i iccedilin sadece
bloglar iccedilin kurulmu oumlzel indeksleme mekanizmalar ve arama motorlar bulunmaktad r [25]
Duumlnya ccedilap nda indeksleme mekanizmalar n n en oumlnde geleni Technorati firmas
milyonlarca blog okuyucusu iccedilin her geccedilen guumln 15 milyondan fazla yeni blogu
indekslemektedir [26] Forrester in ara t rma irketlerinden internet ile ilgili ciddi bir ara t rma
kurumu olan JupiterResearch uumln 2008 A ustos unda bloglar uumlzerine gerccedilekle tirdi i
ara t rmada internet kullan c lar na 40 soruluk kapal uccedillu soru youmlneltilmi tir Bu ara t rma
sonucunda geccedilti imiz doumlrt y l iccedilerisinde bloglar n okunma oranlar nda 300 oran nda bir art
oldu u ortaya ccedil km t r Belki ilgimi ccedilekecek bir bloga ula abilirim duuml uumlncesi ile kullan c lar
okuduklar bloga eklenmi
olan di er linkleri de takip edebiliyorlar S k blog okuruyum
diyenlerin 38 i yeni bir blogu okudu u blogun linklerinden ke fetti ini belirtmi tir
Ara t rmaya kat lan blog okurlar n n 34 uuml Web te dola rken yeni bir blogla tan t n 11 i
blog arama motorlar n kulland n
belirtmi [27]
Bloglar n bu kadar yayg nla mas n n nedenlerinde biri de internet gezginler sanal
acirclemdeki tek duumlze yorumsuz hatta bazen oldukccedila bilimsel bir dille yaz lm yaz lardan
s k ld klar iccedilin bloglar tercih etmektedir Bloglarda ki iler gittikleri bir seminer hakk ndaki
yorumlar n kulland klar bir uumlruumln hakk ndaki fikirlerini k saca hayata dair kendi yorumlar n
katarak ba ka ki ilerle payla abilmektedirler
216 Wiki
Bilgiye ula mak iccedilin eskiden oldu u gibi kitap ya da ansiklopediler kullan lmamaktad r
Guumlnuumlmuumlzde kuumlreselle menin ve geli en teknolojinin etkisiyle tuumlm kaynaklara bilgisayar
uumlzerinden ula lmas elde edilen bilgilerin k sa suumlrede derlenebilmesine imkacircn vermi tir
Wiki ler kullan c lar n uumlzerinde istedi i gibi duumlzenlemeler yapmas na izin veren bilgi
sayfalar toplulu udur ngilizce What I Know is soumlzcuumlklerinin k saltmas
olan Wiki
Bildi im kadar yla anlam na gelir [28]
12
Wikilerin ccedilal ma prensibi u ekilde accedil klanabilir Bir web program script ya da script
grubu sayesinde veritaban na yaz lm olan ya da sadece dosya halindeki verileri okur bu
verileri HTML kodlar ile de i tirir ve Web taray c s na yans t r
ekil 210 Vikipedi oumlzguumlr ansiklopedi sitesinin logosu
Wiki dilini kullanan ve internetin en geni iccedileri ine sahip ccedilevrimiccedili ansiklopedisi
Vikipedi 22 Ocak 2007de Alt n Oumlruumlmcek 2006 En yi ccedilerik oumlduumlluumlnuumln sahibi oldu
Wikipediaorg taraf ndan geni kitlelere tan t lan Wiki dili pek ccedilok farkl programlama
platformunda Javascript ASP PHP C++ vb kullan labilmektedir
2161 Wiki Kullanman n Avantajlar
Web proje gruplar
projeleri olu tururken ekiplere ayr ld iccedilin programc lar kendi
goumlrevi d ndaki ccedilal malarda neler yap ld n
tam olarak bilemez ccedileri in yap land r lmas nda
geli melerden sadece iccedilerik koordinatoumlrleri haberdard r An nda yap goumlster oumlzelli iyle Wikiler
bu sorun iccedilin pratik bir ccediloumlzuumlm te kil eder
ndekslenme yapan sitelerde bile arama yap l rken defalarca ayn siteye girilebilir yahut
aran lan bilgiyi bulmak ccedilok zaman alabilir Wiki gereksiz tekrarlardan kurtar r steyen herkes
wiki iccedileri indeki bilgileri eksik ya da hatal
ise de i tirilebilir veya kald rabilir Bu i lemleri
yapan wiki youmlneticilerine wikipedist denir Wikipedistler sayfa duumlzenlemelerine ve iccedilerik
zenginle tirmeye yard mc olurlar
Wiki de de i iklik yap ld nda de i iklik yapan ki inin bir hesab yoksa IP adresiyle
varsa kullan c ad yla kaydedilerek hemen sonuccedil goumlzlenebilir Yap lan iccedileriksel herhangi bir
hata ba kalar taraf ndan fark edildi inde duumlzeltilir Geccedilmi sekmesiyle duumlzeltilen sayfalar n
oumlnceki suumlruumlmleri kronolojik s ralamayla takip edilebilir hatta sayfalar aras nda kar la t rma
bile yap labilir Sayfa iccedilerikleri hakk nda Tart ma
sekmesiyle fikir beyan nda bulunulabilinir
Tart malara yorum eklenebilir Denetleme mekanizmas sayesinde telif haklar n n ihlali gibi
durumlarda ihlali yapan kullan c lar engellenebilmektedir
13
Wiki di er ansiklopedilerden farkl olarak Vikipedi GNU Oumlzguumlr Belgeleme Lisans
(GOumlBL) kullanmaktad r Kullan c lar na oumlzguumlr iccedilerik kat l m e it tarafs z ve uumlcretsiz kat l m
hakk verir Ayr ca diluumllkekonuya goumlre geli mi kategorilendirme sistemine sahiptir Diff
oumlzelli i sayesinde sayfalar aras ndaki fark izlenebilir [29]
217 ccedilerik Youmlnetim Sistemleri
ngilizce Content Management System ya da k saca CMS olarak tan nan ccedilerik
Youmlnetim Sistemleri - YS bilgiyi olu turmak ar ivlemek ara t rmak denetlemek ve
yay nlama olana sa layan buumlyuumlk bir veritaban na sahip moduumlllerden olu an buumltuumlnle ik bir
ortamd r YS lerde iccedilerik iki ayr boumlluumlmden olu ur Bunlardan birincisi uumlzerinde i lem
yap lmam olan ham bilgiyi bar nd ran veritaban
di eri ise bu bilginin yerle imini goumlsteren
ablondur ablonda bilginin goumlsterilece i sayfan n goumlrsel boumlluumlmuumlnuuml olu turan yaz tipleri
renkleri gibi tuumlm biccedilim bilgileri saklan r Genellikle PHP benzeri dillerle kodlan r Boumlylece daha
esnek hale gelebilirler [30]
ccedilerik Youmlnetim Sistemleri uluslararas platformda birccedilok organizasyon iccedilin zorunluluk
haline gelen modern bir veri youmlnetimi tekni idir Guumlnuumlmuumlzde iccedilerik youmlnetim sistemleri kendi
iccedilerisinde boumlluumlnmuuml bir yaz l m enduumlstrisi haline gelmi tir Kendi iccedilerisinde portal sistemleri
Wiki sistemleri web-based grupware vb alt dallara ayr lan enduumlstri guumlnuumlmuumlzde halen
geli imini suumlrduumlrmektedir [31]
Web yay nlama sistemi kullan c lar arad klar iccedileri e goumlre veritaban iccedilinde anahtar
kelimeler yazar olu turulma tarihi gibi ccedile itli oumllccediluumltlere goumlre arama yapabilirler Web iccedilerik
youmlnetim sistemleri bilgi portallar olu turmak iccedilin bilgi youmlnetimi hizmeti sunar YS buumlnyesinde
bar nd rd
yaz l m moduumllleri sayesinde herhangi bir kullan c n n web sitesi uumlzerindeki
i lemleri yapabilmesi iccedilin grafiksel kullan c arayuumlzuuml sunar
YSnin temeli iccedileri in olu turulmas ndan son hali olan yay nlanma evresine kadar tuumlm
evrelerde iccedileri i youmlnetme esas na dayan r Ayr ca YS nin iccedileri i E-ticaret ve Muuml teri li kileri
Youmlnetim Sistemleri (MIYS) (ing CRM - Customer Relationship Management System) ile de
payla labilir YS sayesinde iccedilerik yay n
teknik bilgisi olmayan kullan c lar taraf ndan bile
yap labilir Kullan c lar na sade basit ama guumlccedilluuml web taray c s destekli bir uygulama arayuumlzuuml
sunar [32]
14
218 Etiketleme (Folksonomi)
Web 20 sitelerinde goumlze ccedilarpan etiket bulutlar ile kullan c lara ilgilendikleri konulara
ili kin kolay ve h zl ba lant lar sa lanmaktad r Site iccedileri iyle ilgili konular ccedile itli etiketler ad
alt nda s n fland r l r Her etiket iccedilinde bar nd rd makale yaz ba l k ile farkl boyutlarda
olabilmektedir Yani etiketin yaz boyutu ne kadar buumlyuumlkse iccedilinde bar nd rd iccedilerik o kadar
fazlad r ekil 211 de bir etiket bulutu goumlruumllmektedir
ekil 211 Oumlrnek etiket bulutu
22 Web 20 da Site Tasar m nda Dikkat Ccedileken Oumlzellikler
Yukar daki popuumller uygulamalar olu turulurken dikkat ccedileken ortak oumlzellikler bu ba l k
alt nda incelenecektir Genel olarak Web sitelerindeki de i im ve geli im tasar m ve arayuumlz
accedil s ndan de erlendirilecektir
221 Logolar
Logolara daha parlak bir goumlruumlntuuml verilirken yans ma efekti bolca kullan lmaktad r
Yans ma efekti dinamik olmayan tuumlm objelere kullan larak siteye derinlik hareket ve modern
bir goumlruumlnuuml kazand r l r Kullan c lar n dikkatini ccedilekmek iccedilin ekil 212 de goumlruumllduuml uuml gibi
logolara rozet eklinde yenilik bildiren kelimeler eklenebilmektedir [33] Bu yenilik bildiren
kelimelerden Beta ifadesiyle s k s k kar la l r Bunun nedeni Web 20 ak m na goumlre
kullan c lar birer yard mc -geli tiriciler olarak benimsenir Sonuccedil olarak ortaya ccedil kan site suumlrekli
geli mekte ve de i mektedir Logolara yerle en Beta bu geli imin bir simgesi haline gelmi tir
[34]
15
ekil 212 Yans mal logo oumlrne i [34]
222 Butonlar
Butonlarda ise klasik butonlar yerine resim olarak haz rlanan butonlarda oumlzellikle cam
efekti ve renk geccedili (gradient) efekti hacirckimdir Gradient efekti butonlarda logolarda ya da arka
planlardaki renk geccedili lerini daha yumu at r Bir renkten farkl bir renge keskin geccedili lerin oumlnuumlne
geccedililmi olur [33] Ccedile itli buton oumlrnekleri ekil 213 de goumlruumllmektedir
ekil 213 Web 20 da buton oumlrnekleri
223 Arka Planlar
Web 20 ile sitelerde arka planlar olu turulurken yatay eritlerden ya da duumlz renk
geccedili lerinden faydalan labilinir Her iki ekilde de hedeflenen ortak amaccedil ekil 214 te oldu u
gibi goumlzuuml yormayan tasar mlar gerccedilekle tirmektir [33]
ekil 214 Web 20 da arka plan oumlrnekleri
16
224 Ccedilerccedileveler
Site iccedilinde goumlruumlnmez iframe ler yerine ekil 215 deki gibi ccedilerccedilevelerin yuvarlak kouml eli
kutular olarak tasarlanmas
oumln plana ccedil km t r Kouml eleri keskin duumlz kare veya dikdoumlrtgen
biccedilimde kutular art k kullan lmamaktad r Yuvarlak kouml eli kutu yap m iccedilin farkl tekniklerle
olu turulabilecek programlar mevcuttur Resim css ve html teknikleri kullan lacaksa Spiffy
Corners RoundedCornr ve CSS Rounded Box Generator gibi araccedillar kullan labilirken Nifty
Corners Cube ve curvyCorners gibi araccedillar da JavaScript tekni i ile kullan labilinir [33]
ekil 215 Web 20 da ccedilerccedileve yap s na oumlrnek
225 Menuumller
Site iccedileri inden etkin bir ekilde faydalanabilmek iccedilin menuuml ve sekmeler sade kolay
anla labilir olmal d r Hem goumlrsel hem kullan l menuumller CSS kodlarla olu turulabilir [33]
ekil 216 Web 20 da menuuml oumlrne i
Yukar da bahsedilen konu Web 20 platformunda olu turulan sitelerin genel oumlzellikleri
olarak alg lanabilir Bu oumlzellikler d nda da tasar mlar olabilmektedir
17
3 AJAX
AJAX kavram n n ilk ccedil k noktas
ubat 2005 de Jesse James Garrett taraf ndan the
Adaptive Path Web sitesinde Ajax A New Approach to Web Applications ba l yla
yay nlanan makaledir [35]
ekil 31 Jesse James Garrett in makale goumlruumlntuumlsuuml [36]
Bu makalede Web uygulamalar olu turulurken tasar mlardaki buumlyuumlleyici geli meler
yenilikccedili ccedilevrimiccedili projelerle desteklenirken bunun yan nda h zl cevap verebilir daha zengin
goumlrsellere sahip masauumlstuuml uygulamalar aras ndaki bo lu a dikkat ccedilekilmi tir Bu bo lu u
dolduran Google Suggest ve Google Maps uygulamalar Adaptive Path sitesinde AJAX olarak
adland r lan Web uygulamalar na yeni yakla m n en iyi oumlrnekleri oldu u belirtilmi tir Klasik
Web uygulamalar n n ccedilal ma modeliyle AJAX l uygulamalar n ccedilal ma modeli
kar la t r lm t r AJAX di er uygulama youmlntemlerinden ay ran oumlzellikleri belirtilmi tir
AJAX yakla m na buumlyuumlk yat r mlar yapan Google n neden AJAX tercih etti i accedil klanm t r
Google Groups Google Suggest Gmail Google Maps ve ard ndan Flickr Amazon nun
A9com servisleriyle kullan c lar n oda haline geldi ine de inilmi tir [35]
AJAX n ccedilekirde i olan XMLHttpRequest (XHR) nesnesi sayesinde de iyi haz rlanm
sa lam ve kolay anla labilir-kullan labilir sitelerin olu umuna dikkat ccedilekilmi tir [35] A a da
18
ise AJAX tekni i kullanan en populer servislerden Google Suggest ve Google Maps hakk nda
k sa bilgi verilecektir
31 Google Suggest
ekil 32 Google Suggest ekran goumlruumlntuumlsuuml
Google Suggest a httpwwwgooglecomigcomplete=1amphl=en
adresine girildi inde
ekil 32 de goumlruumlnen ana sayfaya ula lmaktad r Google Suggest servisinin oumlzelli i arama
motorunda aranacak kelimenin harfleri girilmeye ba land andan itibaren filtreleme yaparak
text alan n n alt na accedil lan boumllmede oumlneriler sunulmaktad r Sadece oumlneri sunmakla da kalmay p
oumlnerileri popuumllarite s ras na goumlre s ralar Kelime tamamlama oumlzelli i sayesinde aranan kelime
tam yaz lmadan gelen oumlnerilerden biri t klanarak istenen sonuca ula labilinir Ayr ca oumlnerilerin
yan nda o kelimeye ait kaccedil sonuccedil oldu u da belirtilir ve bu i lem sadece 1-2 sn iccedilinde
gerccedilekle ir
32 Google Maps
ekil 33 Google Maps ekran goumlruumlntuumlsuuml
19
Google Maps sitesine httpmapsgooglecom
adresinden ula labilinir Google n
etkile imli harita servisi ile arama motorunda goumlruumlntuumllenmek istenen konum yaz larak
Haritalarda Ara butonu ile o konuma odaklan l r Bir yerden bir yere gitmek iccedilin Yol
Tariflerini Al butonu kullan l r Konumun iste e goumlre uydu arazi ve sokak haritas
goumlruumlnuumlmlerine ula labilinir Daha fazla seccedilene i ile resim video ve wikipedia katmanlar da
goumlruumlntuumlye eklenir Hatta yurtd ndaki ba lant larda yoldaki trafik ak n n h z hakk nda bile
bilgi katman mevcuttur
Di er harita web uygulamalar ndan farkl olarak Google Maps te harita uumlzerinde ccedile itli
youmlnlere ula mak iccedilin suumlrekle b rak youmlntemi kullan l r Harita bir imaj serisi halinde ayr larak
boumlluumlnuumlr Biti ik imajlar n birlikte goumlruumlntuumlsuumlnuumln olu turulabilmesi iccedilin bu serilerden faydalan l r
Goumlruumlntuumllenen haritada kullan lan imaj say s s n rl d r Bu da her seferinde yeni imajlar n
olu turulmas gerekti ini goumlsterir Kullan c n n harita uumlzerindeki h zl hareketleri haf za
problemlerine yol accedilabilir Bunun yerine ayn imajlar haritan n farkl segmentlerinde tekrar
tekrar goumlruumlntuumllenir [37]
stemci-sunucu ileti imi gizli bir IFRAME uumlzerinden yap l r Bir arama yap ld nda
veya yeni bir yol soruldu unda bu bilgiler goumlnderilir ve IFRAME iccedilinde doumlnduumlruumlluumlr Veri XML
format nda ccedilevrilir ve bir Javascript fonksiyonunda (AJAX Motorunda) kullan lmak iccedilin
aktar l r Bu XML verisi sonra farkl ccedile itli ekillerde kullan l r Bazen hatas z harita imajlar n n
ccedila r lmas nda bazen de XML dokuumlmanlar n n XSLT (Extensible Stylesheet Language
Transformations Geni letilebilir Biccedilimlendirme Dili Doumlnuuml uumlmleri) sayesinde HTML kodlar na
doumlnuuml tuumlruumllerek ana pencerede goumlruumlntuumllenmesinde kullan l r [37]
Bunlar n d ndaki daha birccedilok accedil k kaynak projeler ve ticari uumlruumlnler bu yeni Web
uygulama modelinin avantajlar ndan faydalanarak geli tirilmeye ba lanm t r [37]
33 Neden AJAX
AJAX terimi oldukccedila guumlccedilluuml bir kelimedir Guumlcuumlnuuml daha zengin geni enduumlstri trendlerinin
olu umunda kullan labilmesinden ve oumlzguumlr Web uygulamalar n n kurulumunda odak noktas
olmas ndan al r Ayr ca programc lar yabanc olduklar yeni programlama dilleri ouml renmelerine
gerek kalmadan geli tirdikleri Web uygulamalar na istedikleri etkiyi katabilmektedirler Bunu
yaparken de sunucu tarafl teknolojileri kullan rken var olan yat r mlar n n d nda ba ka
masraflar olmaz AJAX guumlccedilluuml bir teknik olmas n n yan s ra di er teknolojilerle birlikte
kullan ld nda daha etkili sonuccedillar al nabilmektedir [38] AJAX Java 2 Enterprise Edition
(JAVA EE) Net PHP Flex CGI scriptler ve di er birccedilok uygulama geli tirme ortam nda
ccedilal abilir
20
AJAX uygulamalar n n gittikccedile yayg nla mas n n bir nedeni de geleneksel uygulamalara
goumlre istekcevap modelleri aras ndaki farkt r ekil 34 te goumlsterildi i uumlzere geleneksel Web
uygulamalar nda sunucuya yap lan her istekte olu turulan cevap Web sayfas n n tuumlmuumlnuuml
etkileyerek yeniden yuumlklenmesine neden olmaktad r
ekil 34 Geleneksel sunucularda istekcevap modeli [39]
AJAX n asenkron metodolojisiyle klasik Web mimarilerindeki gibi sunucuya gidip
parametreleri i lemek yerine ekil 35 te goumlruumllduuml uuml uumlzere birccedilok sunucu iste i tuumlm sayfan n
yenilenmesine ihtiyaccedil duymadan cevaplanabilmektedir
ekil 35 AJAX n asenkron istekcevap modeli [39]
Yukar da anlat lan durum kullan c lar ekil 36 da goumlruumllen t kla-bekle doumlnguumlsuumlnden
kurtar r AJAX kullan c lara ekil 37 deki gibi kesintisiz gezinti (soumlrf) imkacircn sunar
21
ekil 36 Klasik Web uygulamalar nda t kla-bekle doumlnguumlsuuml [40]
ekil 37 T kla-T kla interaktif AJAX uygulamas
[40]
stek i lem basamaklar ekil 38 te goumlsterildi i gibi AJAX motoru sayesinde JavaScript
kod betikleri kullan larak sunucuya HTTP tabanl ba lant sa lan r Bu ba lant
XMLHttpRequest protokoluumlnuuml kullanarak mesaj transferi yap lmas n sa lar Bu sayede hem h z
artar hem de bant geni li i verimli bir ekilde kullan lm olur
ekil 38 Geleneksel Web ileti im modeli ile AJAX ileti im modeli [37]
AJAX sunucuya kullan c n n Web taray c s uumlzerinden Javascript ortam nda ikinci bir
ileti im yoludur AJAX n kullan m normal Web uygulamalar nda goumlruumllen tipik sayfa ak nda
de i ikliklere neden olur AJAX ile istekler daha s k ve daha kuumlccediluumlk cevaplar halinde HTML
olmayan veri formunda cevaplan r Daha iyi anlayabilmek iccedilin normal bir Web uygulamas n n
ileti im ak ekil 39 da goumlruumllmektedir [41]
22
ekil 39 Web uygulamas ndaki cevap ak
Bir AJAX Web uygulamas bir Web uygulamas n n normal ileti im ak n al r ve yeni
bir istek tipi ekler Bu durum sunucuya normal sayfa iste i gibi goumlruumlnuumlr ama Web taray c iccedilin
farkl formatta bir giri i vard r Kullan c taraf ndan do rudan tetiklenmeyen ve sayfan n
tamam n n yeniden yuumlklenmesini gerektirmeyen bir istektir Ccedilo u durumda bu AJAX istekleri
baz verilerin oumln yuumlklenmesi ya da bir formdaki baz alanlar n do rulama istekleri gibi kuumlccediluumlk
de i iklikler olabilir Bazen de JavaScript ile bir form goumlnderimi veya HTML sayfalar n n bir
parccedilas uumlzerindeki iccedileri i de i tirmek iccedilin kullan l r Oumlrnek bir AJAX ileti im ak ekil
310 da goumlruumllmektedir AJAX uygulamalar ndaki istek biti zamanlar ve bunun normal Web
uygulamalar yla kar la t rmas ekil 311 de goumlruumllebilir Boumlylece ikisinin aras ndaki istek
frekanslar n n fark na var labilinir [41]
ekil 310 AJAX uygulamalar ndaki istek ak
23
ekil 311 Normal Web ile AJAX uygulamalar n n kar la t rmas
AJAX Web uygulamalar yla frekanstaki bu de i im hostlar iccedilin buumlyuumlk etki yapabilir
Boumlylece sunucular ayn kullan c say s yla yuumlksek h zlarda veri al -veri ini yapabilecek duruma
gelir Bu oumlzellikle daha fazla i lem gerektiren normal sayfa yuumlklemelerinde oldukccedila zor bir
i lemdi [41]
34 AJAX Metodolojisi
World Wide Web istemci-sunucu a mimarisine uygun ccedilal r [42] A aktiviteleri iki
tiptir Bunlardan birincisi kullan c taraf ndan tetiklenen HyperText Transfer Protocol (HTTP)
istekler (URL yazarak ya da bir link t klanarak olu turulur) di eri ise sunucu cevaplar d r
HTTP protokoluuml soru ve cevaplar serisinden olu an bir ileti im yoludur [41]
ekil 312 Geleneksel istekcevap (requestresponse) youmlntemi [39]
24
Web taray c dan bir istekte bulunuldu unda HTTP kullan larak cevap goumlnderilir Web
taray c bir istemci internet sayfas n n sunucusu ise HTTP sunucudur AJAX sunucu
cevaplar n HTTP kullanarak goumlnderir Sunucu taraf ndan geri doumlnduumlruumllen farkl tuumlrlerdeki
HTTP istek ve cevaplar n n tan nmas oumlnemlidir AJAX uygulamalar n sunucudan gelecek olan
HTTP cevaplar n iccedileri inin ne oldu u hakk nda karar verebilmesi iccedilin sunucunu
sorgulanmas nda HTTPRequest nesnesine ihtiyaccedil duyar [42]
341 HTTP Requests Nesnesi
HTTP request nesnesinin kullan m format a a daki ekildedir
ltrequest-linegt
ltheadersgt
ltblank linegt
[ltrequest-bodygt]
HTTP request nesnesinin ilk sat r genellikle iste in tipini belirten uumlccedil boumlluumlmden olu ur
Youmlntemin ad gerekli olan sunucu kayna n n yolu HTTP suumlruumlmuumlduumlr Birinci istek sat r (accedil l
sat r ) olmal d r kinci boumlluumlm sunucunun kullanabilece i ba l k sat r eklenebilen bilgilerin
goumlsterildi i boumlluumlmduumlr Son boumlluumlm olan bo sat r ise iste e ba l olarak BODY boumlluumlmuumlnden
ccedila r labilecek ek verilerin takip edilebilece i sat rd r
HTTP iccedilinde ccedile itli istek tuumlrlerinin tan mlanabilece i ccedilok say da youmlntem vard r Fakat
AJAX sadece GET ve POST youmlntemleriyle ilgilenir
3411 GET Youmlntemi
HTTP GET youmlntemi ccedila r lmak istenen URL adresi ard na eklenen anahtar-de er
ccediliftleri (key-value pair) ile ccedilal r Bir Web taray c dan talep edilen bir URL ccedila r s sunucuya
GET youmlnetemi ile bir istek goumlnderir Basitccedile sunucu kayna getirir ve taray c ya cevab
goumlnderir A a da Get youmlnetemi kullan larak F rat uumlniversitesinin Web sitesine yap lan bir ccedila r
sat r goumlsterilmektedir
GET HTTP11 ltrequest-linegt
Host wwwfiratedutr
User-Agent Mozilla50 (Windows U Windows NT 51 en-US rv176) ltheadersgt
Connection Keep-Alive
25
Oumlrnek kod parccedilas nda da goumlruumllduuml uuml uumlzere ilk sat r GET istek sat r d r Di er boumlluumlm ise
istek hakk nda bilgi goumlnderilen ba l k (header) k sm d r Bu boumlluumlme bir parametre ve her sat r
ba na bir de er ccedilifti gelebilir Host ba l iste in hedef sunucu adresini iccedilerir User-Agent
ba l eri ilebilir her iki sunucu ve istemci tarafl scriptler ve taray c lar n temel ta d r Bu
bilgi ile her istekte otomatik olarak goumlnderilir ve kullan lan taray c tan mlan r Connection
ba l ise taray c i lemleri iccedilin kullan lan tipik ba lant ayarlar nda kullan l r
3412 POST Youmlntemi
POST iste i ise sunucuya request body iccedilinde ek bilgi sa lar Genellikle ccedilevrimiccedili
formlarda doldurulmayan sat r bilgileri POST youmlntemi ile sunucuya bildirilir POST istekleri
a a daki yap dad r
POST HTTP11
Host wwwfiratedutr
User-Agent Mozilla50 (Windows U Windows NT 51 en-US rv176)
Content-Type applicationx-www-form-urlencoded
Content-Length 40
Connection Keep-Alive
Yukar daki kod parccedilas nda gri ile vurgulanan sat rlar GET youmlnteminden farkl olan
sat rlar goumlstermektedir lk sat rda kullan lan youmlntemin ad belirtilmi tir Content-Type sat r
request-body nin nas l kodland n goumlsterir Content-Length sat r nda request-body nin kaccedil
byte uzunlu unda oldu u goumlsterilir [37]
342 HTTP Request Nesnesinin Oumlzellikleri ve Youmlntemleri
Request nesnesi be tane temel fonksiyon bulundurmaktad r [43] Bunlar
Querystring URL iccedilersinde bulunan dosya ismi ile birlikte goumlnderilen bilginin veya
form iccedilerisinden GET
youmlntemi ile goumlnderilen bilgilerin al nmas nda kullan l r
Form POST
youmlntemi genellikle form iccedilerisinden bilgi al nmas iccedilin kullan l r
Servervariables Web sunucu request ile ilgili bilgilere (Http ServerVariables)
ula may sa layan bir youmlntemidir
Cookies(Ccedilerezler) Kullan c n n taray c s sunucudan gelen ccedilerezleri kabul ediyor ise
bu bilgilere ula lmas n sa lar
26
ClientCertificate Dijital bir sertifikad r Sunucu ve istemcinin birbirini tan mlamas
iccedilin kullan l r
343 HTTP Response Nesnesi
HTTP response nesnesi HTTP request nesnesine benzer ekilde goumlsterilir
ltstatus-linegt
ltheadersgt
ltblank linegt
[ltresponse-bodygt]
HTTP request nesnesinden tek fark ilk sat rda istek bilgisinin yerine iccedileri in durum
bilgisi vard r Durum sat r istek kayna
hakk nda temin edilen bir durum kodunu bildirir
A a da basit bir HTTP response kod parccedilas
goumlsterilmektedir
HTTP11 200 OK
Date Sat 31 March 2009 165959 GMT
Content-Type texthtmlcharset=ISO-8859-1
Content-Length 122
lthtmlgt
ltheadgt
lttitlegtFirat Universitesilttitlegt
ltheadgt
ltbodygt
lt-- body buraya gelir --gt
ltbodygt
lthtmlgt
Bu oumlrnekte durum sat r nda 200 eklinde bir HTTP durum kodu ve Tamam (OK)
diye bir mesaj verilmektedir Durum sat r her zaman durum kodu ve her hangi bir kar kl
oumlnlemek iccedilin k sa bir mesaj iccedilerir A a da en yayg n kullan lan durum kodlar verilmektedir
200 (OK) Sunucu ba ar l istekler iccedilin bu kodu kullan r
304 (NOT MODIFIED) Sunucu goumlnderilen istekle ilgili verilerin daha i lenmedi ini
istemciye bildirmek iccedilin bu kod kullan l r Taray c lar n oumln bellek mekanizmalar iccedilin en s k
kullan lan koddur
27
401 (UNAUTHORIZED) stemcinin kaynak eri im yetkisi yoktur
anlam nda
kullan l r Genellikle bu taray c n n sunucudan kullan c ad ve ifre gibi bilgi giri i istemesiyle
olu an hatalarda meydana gelir
403 (FORBIDDEN) Yetki elde etmek iccedilin istemci ba ar s z oldu
hata kodudur 401
hatas ndan sonra e er do ru bir kullan c ad ve ifre ile oturum accedil lmamas halinde genelde bu
hata kodu olu ur
404 (NOT FOUND) Kaynak belirtilen yerde bulunamad nda bu hata kodu uumlretilir
Kod parccedilas n n ikinci sat r nda uumlretilen cevab n tarihi ve saati Date ba l nda
sunucuya goumlnderilir Content-Type ve Content-Length ba l klar POST youmlnteminde oldu u gibi
kullan l r BODY cevab basitccedile istemci kayna (iccedilerik duumlz metin ikili veri ya da farkl
tuumlrden
bilgiler olabilir) HTML kayna n iccedilerir [42]
35 AJAX leti im Teknikleri
Web uygulamalar nda ccedilo unlukla kullan c istekleri bir form uumlzerinden yap l r ve
sunucu cevab h zl bir ekilde Java ya da Php gibi bir programlama dili ile olu turulur Normal
Web uygulama modelinde kullan c daima istek uumlretir boumlylece kullan c lar n h zl ca
t klamalar yla olu an yuumlksek h zlardaki sayfa istekleri genellikle rastgele aral klarla olu ur ve
her bir istek h z n n cevab duuml uumlktuumlr [41]
AJAX uygulamalar nda yukarda bahsedilen eksikli in oumlnuumlne geccedilebilmek iccedilin ccedile itli
ileti im teknikleri geli tirilmi tir Bu teknikler
Gizli Ccedilerccedileve (Hidden Frame) Tekni i stemci-sunucu ileti iminde kullan lan gizli
ccedilerccedileve yap s yuumlksekli i ve geni li i 0 pikselden olu an ekranda goumlruumlnmeyen bir
frameset yap s na dayan r
XMLHttp Requests (XHR) AJAX teknolojisinin temel nesnesidir A a daki ba l kta
ayr nt l bir biccedilimde incelenecektir
351 XMLHttp Requests (XHR) Nesnesi
AJAX la do rudan ilgili teknolojilerin ccedilo u asenkron ve XML tekni i ile yak ndan
ilgilidir Ccediluumlnkuuml veri kodlama yollar ve ileti im katmanlar n n tedarik edilmesi bu teknikler ve
kuumltuumlphaneler uumlzerinden hareket eder Ccedilo u durumda bu XMLHttpRequest nesnesi kullan l r
ancak IFrame lerde popuumllerdir Ccedilerezler veya ActiveX Java goumlmuumlluuml ba ka bir alternatif de
kullan labilir [41]
28
XHR Nesnesi Internet Explorer 50 (IE 5) iccedilindeki ActiveX control ile ortaya ccedil km t r
XHR Javascript ile olu turulur [44] Sayfalar n tamamen yeniden yuumlklenmeden sa lanan parccedilal
guumlncelleme oumlzelli i bu nesne sayesinde olmaktad r Arka planda ccedilal an bu sistem sayesinde
asenkron bir ileti im gerccedilekle ir Yenilenme s ras nda taray c yla ba lant kesilmeksizin yeni bir
istek yap labilir
World Wide Web Consortium (W3C) standart organizasyonu standartla amam
XMLHttpRequest nesnenin tuumlm taray c larda kullan labilen youmlntem ve oumlzelliklerinin genel bir
alt kuumlmesini olu turma ccedilal malar suumlrmektedir u anda kullan lan kural kuumlmesi W3C DOM
Level 3 yuumlkleme ve kaydetme oumlzellikleri iccedilerir kinci ccedilal ma tasla
wwww3orgTRXMLHttpRequest adresinde bulunabilir Henuumlz bir standart haline
gelememesinin nedeni taray c dan taray c ya goumlre farkl davran lar goumlstermesidir
Ccedilal ma tasla na goumlre XHR nesnesinin iki goumlrevi vard r Birincisi HTTP yolu ile
sunucuya programlanabilir ba lant kuran betiklerin ccedilal mas na izin verir kinci ifade ekli ise
normal HTTP istekcevap doumlnguumlsuumlnuumln d nda sunucuyla ileti ime izin verir
XMLHttpRequest Microsoft taray c ccedile itlerinde Mozilla Firefox Konqueror Opera
ve Safari gibi neredeyse tuumlm modern taray c lar taraf ndan desteklenmektedir [42]
3511 XMLHttpRequest Nesnesi Olu turma
Nesneler olu turulurken farkl taray c lar iccedilin farkl kurallar vard r Oumlrne in Microsoft
Internet Explorer XMLHttpRequest nesnesini bir ActiveX nesnesi olarak Safari Mozilla
Firefox ve Opera ise sadece normal bir JavaScript nesnesi olarak yorumlar
Windows un guumlncelleme sisteminin temelini olu turan ActiveX Web sayfalar ndaki
aktif nesneleri etkinle tiren oumlzel bir Microsoft teknolojisidir ActiveX i mevcut Web taray c lar
aras nda u anda sadece Microsoft Internet Explorer desteklemektedir Microsoft IE nin di er
suumlruumlmleri iccedilin MSXML geli tirerek daha aktif ve kararl bir yap olu turulmu tur IE nin farkl
suumlruumlmleri iccedilin a a daki bile enler kullan l r [45]
MicrosoftXMLHttp
MSXML2XMLHttp
MSXML2XMLHttp30
MSXML2XMLHttp40
MSXML2XMLHttp50
29
IE 60+ taray c lar iccedilin a a daki tan mlama yap l r
var nesne = new ActiveXObject(Msxml2XMLHTTP)
IE 55 suumlruumlmleri iccedilin ise a a daki tan mlama yap l r
var nesne = new ActiveXObject(MicrosoftXMLHTTP)
Mozilla Firefox Opera Safari gibi taray c lar iccedilin ise a a daki tan mlama yap l r
var nesne = new XMLHttpRequest ()
Ayn anda birden fazla internet taray c s (ie firefox opera vb) ile uyumlu Web
uygulamalar iccedilin ccedilapraz taray c deste i ifadesi kullan lmaktad r Ccedilapraz taray c deste i bir
arayuumlz kodlamas nda kodlay c lar n en ccedilok zaman harcad konudur Guumlnuumlmuumlzde ccedilapraz
taray c deste i bir zorunluluk haline gelmi tir [46] AJAX uygulamalar n n sorunsuz tuumlm
taray c larla uyumlu bir ekilde ccedilal abilmesi iccedilin JavaScript iccedilerisinde try-catch bloklar
yazarak taray c ya goumlre yeni bir nesne olu turulur
function NesneOlustur()
var nesne
try
nesne = new ActiveXObject(Msxml2XMLHTTP) IE 60+ taray c lar iccedilin
catch(e)
try
nesne = new ActiveXObject(MicrosoftXMLHTTP) IE 55 taray c lar iccedilin
catch(e)
try
nesne = new XMLHttpRequest () Firefox Opera 80+ ve Safari taray c lar iccedilin
30
catch(e)
alert( Maalesef taray c n z AJAX desteklemiyor)
return null
return nesne
Yukar da tan mlanan fonksiyon sayesinde dinamik ve ccedilapraz taray c deste ine sahip bir
XHR nesnesi olu turulmu tur
3512 XHR Nesnesinin Oumlzellik ve Youmlntemleri
XMLHttpRequest nesnesine eklenebilen oumlzellikler Tablo 31 de goumlsterilmektedir [42]
Tablo 31 Standart XHR nesnesinin oumlzellikleri
Oumlzellikler Tan mlar
onreadystatechange
Nesnenin readyState oumlzelli i de i ti inde hangi olay tutucunun (event
handler) ccedila r laca n belirler
readyState ste in durumunu raporlayan tamsay de eridir
0 = uninitialized ( stek haz rlanmad Henuumlz open youmlntemi kullan lmad )
1 = loading ( stek haz rland goumlnderiliyor)
2 = loaded ( stek goumlnderildi)
3 = interactive ( stek de erlendiriliyor ve sonuccedil bekleniyor)
4 = completed ( stek tamamland ve sonuccedil geldi)
responseText Form iccedilindeki metin dizesi sunucu taraf ndan veriye doumlnuuml tuumlruumlluumlr
responseXML Sunucu taraf ndan bir belge nesnesi gibi ifade edilen veri geri doumlnduumlruumlluumlr
Status Sunucu taraf ndan geri doumlnduumlruumllen HTTP durum kodudur Oumlrne in 404
kodu Not Found yani istenilen sayfa bulunamad anlam na gelir 200 ise
OK de eri goumlnderir ve i lemin tamamland n belirtir
31
statusText Status oumlzelli inin metin kar l n verir
XMLHttpRequest nesnesinin fonksiyonunu artt ran ek youmlntemler Tablo 32 de
goumlsterilmektedir Bu youmlntemler sayesinde sunucuyla asenkron ileti im kurulur
Tablo 32 Standart XHR nesnesinin fonksiyonlar
[42]
Youmlntemler Tan mlar
abort() Geccedilerli iste i iptal eder
getAllResponseHeaders()
Gelen cevab n ba l k bilgilerini string olarak getirir
getresponseHeader(x) x gibi bir parametre olarak verilen ba l k bilgisini getirir
setRequestHeader(xy) stekle goumlnderilen ba l k bilgisine istenilen etiketi ya da de eri atar
Tablodaki youmlntemler d nda open ve send youmlntemleri de s kccedila kullan lmaktad r
Open youmlnteminin parametreleri a a da goumlsterilmektedir
nesneopen( POST | GET URL asynch username password)
1 Parametre Web sayfas na yap lacak iste in hangi youmlntemle yap laca n belirtir
2 Parametre stek yap lacak Web sayfas n n URL adresi E er GET youmlntemi
kullan l yorsa querystring lerin de erleri URL e birle tirilerek belirtilmelidir
3 Parametre True de eriyle yap lacak iste in e zamans z olaca false de eri ile
e zamanl
olaca belirlenir E er false de eri verilirse i lem bitene kadar taray c di er
kullan c isteklerine cevap veremeyecektir True yap l rsa istek ayr bir i lem olarak ele
al nacakt r
4 ve 5 Parametre Opsiyonel parametreler olup e er istek yap lan Web sayfas ifre ve
kullan c ad istiyorsa bu ekilde goumlnderilebilir [47]
Open ile haz rlanan istek sunucuya goumlnderilir E er open ile accedil lan istek post metodunu
kullan yorsa send metodu parametre olarak goumlnderilecek veriyi ta yabilir
Send metodu parametresiz veya null parametresi ile de kullan labilinir Send metodunda
cevab n gelip gelmedi inin anla labilmesi iccedilin yani e zamanl haberle menin hangi safhada
oldu unun belirlenebilmesi iccedilin Tablo 31 deki oumlzellikler eklenir Send metodunun kullan m
ekli a a da verilmi tir [42 47 48 49]
nesnesend() veya nesnesend(null)
32
3513 XHR Ccedilal ma Mant
ekil 313 bir AJAX uygulamas nda standart etkile imli bir paradigmay
goumlsterir [49]
lem ad mlar a a da s ralanmaktad r
ekil 313 Standart AJAX etkile imi [49]
1 stemci tarafl bir olay AJAX olay (event) tetikler stemcinin a a daki gibi her
hangi bir hareketi onchange olay n ba lat r
ltinput type=text d=eposta name=eposta onblur=validateEposta()gt
2 Oumlrnek bir XHR nesnesi olu turmak iccedilin open() youmlntemi kullan l r ve ccedila r lar iccedilin
ayarlan r URL ayarlar iste e goumlre kullan lacak HTTP youmlntemlerinden GET ya da
POST a goumlre belirlenir A a daki kod oumlrne inde oldu u gibi istek send() youmlntemi
ile bir ccedila r y tetikler
var xmlHttp
function validateEposta()
var eposta= documentgetElementById(eposta)
var url = validateeposta= + escape(epostavalue)
if (windowActiveXObject)
xmlHttp = new ActiveXObject(MicrosoftXMLHTTP)
else if (windowXMLHttpRequest)
xmlHttp = new XMLHttpRequest()
xmlHttpopen(GET url)
xmlHttponreadystatechange = gericagir
33
xmlHttpsend(null)
3 Sunucuya bir istek yap l r Bu bir servlet CGI script PHP ya da ASPNET ile
yaz lm herhangi bir sunucu tarafl (server-side) script olabilir
4 Sunucu herhangi bir veri ambar na eri ebilir
5 stek taray c ya geri doumlnduumlruumlluumlr XHR nesnesi Content-Type ayar textxml dir
XHR nesnesi sadece texthtml tipindeki sonuccedillar i leyebilir Daha karma k
oumlrneklerde cevap JavaScript DOM manipuumllasyon ya da ba ka benzer teknolojiler
iccedilerebilir
responsesetHeader(Cache-Control no-cache)
responsesetHeader(Pragma no-cache)
Taray c lokal sonuccedillar oumln belle inde depolamaz Bunun iccedilin yukar daki kod sat rlar na
ihtiyaccedil duyar
6 Bu oumlrnekte i lemler geri doumlnduumlruumllduuml uumlnde gericagir() ad ndaki XHR fonksiyonu
ayarlan r Bu fonksiyon sunucudan goumlnderilen durum kodlar na bakar ve XHR
nesnesinin readyState oumlzelli ini kontrol eder gericagir() fonksiyonu beklendi i gibi
i lenmi se a a daki gibi bir kod parccedilas goumlruumlluumlr
function gericagir()
if (xmlHttpreadyState == 4)
if (xmlHttpstatus == 200)
stek Ba ar l
Yukar daki anlat mla XHR nesnesinin ccedilal ma mant na de inilmi tir Genellikle
kullan lan standart ccedila r lar oumlrneklenmi tir Bu ccedila r lar yap l rken bir kuumltuumlphaneden yap lan bir
uygulamadan da faydalan labilir Yeni bir ccedilal ma alan olmas na ra men accedil k kaynak
topluluklar nda hat r say l r etkinlikler yap lmaktad r [49]
Uygulamalar olu turulurken genellikle ccedile itli frameworkler ve toolkitlerden faydalan l r
Bunlardan baz lar sadece istemci tarafl ccedilal r baz lar ise sunucu uumlzerinde ccedilal maya ihtiyaccedil
duyar
34
Bu frameworkler suumlrekli de i en ve geli en bir ortam oldu u iccedilin yeni kuumltuumlphaneler ve
suumlruumlmleri takip edilmelidir En yayg n kullan lan kuumltuumlphanelerin ba nda Prototype
scriptaculous Dojo Toolkit Direct Web Remoting (DWR) Taconite ve Rico gelmektedir [49]
36 AJAX Olu turan Bile enler
Asynchronous JavaScript and XML kelimelerinin ba harflerinden olu an AJAX
kavram kullan l zengin Web uygulamalar geli tirebilmek iccedilin pratik bir araccedilt r [50]
AJAX n A parccedilas veri ileti im tekni ini JA parccedilas ileti im youmlntemini X
parccedilas tekni in veri kodlama k sm n olu turur AJAX tam manas yla anlayabilmek iccedilin onu
olu turan bile enlerin her birini de anlamak gerekmektedir [41]
361 E zamanl Olmayan leti im
AJAX tekni inin ccedilekirde ini olu turan XMLHttpRequest nesnesi hem e zamanl hem
de e zamans z olarak ccedilal abilen bir yap uumlzerine kurulmu tur
Ccedilo u AJAX uygulamas XHR nesnesini asenkron olarak kullan r Asenkron istek
taray c ya goumlnderilir ama sunucudan bir cevap gelmesini beklemektense sonraki istek kodlar
i letilmeye devam eder lenen cevap goumlnderildi inde XHR nesnesinin onreadystatechange
oumlzelli i bir fonksiyona ba lan r Bu fonksiyonun i letilmesinden sonra readystate koduyla
iste in durumu test edilir readystate oumlzelli i 4 de erini ald nda sunucuya istek tamamland
ve sonuccedil geldi mesaj gider [51]
A a daki kod parccedilas nda asenkron bir ileti im goumlsterilmektedir [51]
get recipe using Ajax
function getRecipe(evnt)
if (xmlhttp) xmlhttp = aaGetXmlHttpRequest( )
if (xmlhttp) return
var drink = encodeURIComponent(documentgetElementById(drink)value)
var qry = drink= + drink
var url = recipephp + qry
xmlhttpopen(GET url true)
xmlhttponreadystatechange = printRecipe
xmlhttpsend(null)
if (evnt ampamp evntpreventDefault( ))
evntpreventDefault( )
35
return false
E zamans z ileti imde kullan c ayn zaman diliminde birden fazla i lem yapabilir
Oumlrne in Web sayfas nda bir form dolduruldu unda formdaki bilgiler AJAX ile goumlnderilirken
i lemin bitmesini beklemek gerekmemektedir O zaman diliminde Web sayfas n n ba ka bir
yerinde bulunan anket cevapland r labilir Ccediluumlnkuuml e zamanl
ccedilal l rken bloke edilen JavaScript
motoru e zamans z ccedilal rken serbesttir ve ba ka isteklerin goumlnderilmesine muumlsaade eder Yani
ayn zaman dilimi iccedilerisinde birden fazla iste i kabul edebilir [52]
ekil 314 E zamanl olmayan ileti im modeli
ekil 314 te goumlruumllduuml uuml gibi ayn zaman dilimi iccedilerisinde 4 adet istek yap lm t r
Kullan c bu isteklerin tamamlanmas n beklemek zorunda de ildir Bu sebeple istemci ve
sunucu aras ndaki t kla-bekle-t kla-bekle etkile imi ortadan kalkmaktad r
362 E zamanl leti im
Senkron isteklerde taray c cevap iccedilin beklerken kilitlenir
var state = documentforms[0]elements[0]value
var url = ajaxphpstate= + state
xmlhttpopen(GET url false)
xmlhttpsend(null)
alert(xmlhttpgetAllResponseHeaders( ))
Yukar daki kod dizesiyle bir form alan na Web servisi uumlzerindeki HTTP GET istek
yap s kullan larak eri ilir Uumlccediluumlncuuml sat rdaki open youmlnteminin uumlccediluumlncuuml parametresinin false
olmas n n anlam iste in e zamanl (senkron) oldu unu goumlsterir Herhangi bir parametre
almadan null de erli istek goumlnderilir stek goumlnderildikten hemen sonra uyar mesaj kutusu
36
accedil larak cevap ba l yaz l r [51] Kullan lan Web servisi h zl ysa cevap hemen gelir E er
servis yava sa istek bitinceye kadar di er sayfa aktiviteleri gerccedilekle emez [51]
E zamanl
ileti imde ayn zaman diliminde yaln zca bir i lem yap labilinir Web
taray c m zdan uzaktaki Web sunucusuna goumlnderilen istek Web sunucusunda i lenir ve tekrar
geldi i yoldan Web taray c s na geri doumlner Bu i lem belli bir zaman al r E zamanl
ccedilal rken
bu zaman diliminde ba ka bir istek goumlnderilemez [52]
E zamanl
ccedilal ma oumlzellikle Web sunucusu ayn bilgisayarda ise veya yak n olan bir
LAN uumlzerindeyse sa l kl ccedilal abilir Fakat Web sunucusu a r bir yuumlk alt ndaysa veya Web
taray c s Web sunucusuyla yava bir ba lant uumlzerinden etkile ime geccediltiyse koumltuuml bir
performans verecektir Ccediluumlnkuuml Web taray c s iccedilindeki JavaScript motoru goumlnderdi i istek
tamamlan ncaya kadar bloke edilir ve Web taray c s donmu bir ekilde iste in
tamamlanmas n bekler Bu zaman diliminde kullan c goumlnderilen iste i iptal de edemez Bu
yuumlzden Web sayfas ndaki ba ka bir noktaya t klayamaz veya ba ka bir sekmeye geccedili yapamaz
[52]
ekil 315 E zamanl
ileti im modeli
ekil 315 de goumlruumllduuml uuml gibi Web taray c s ndan goumlnderilen 1 nolu istek Web
sunucusuna iletilmektedir Al nan istek i lendikten sonra Web taray c s na geri
goumlnderilmektedir Bu zaman diliminde ba ka bir istek yap lamaz
363 Javascript
1995 y l nda Brendan Eich ad ndaki yaz l m geli tiricisi taraf ndan Netscape Navigator
20 ile birlikte geli tirilen JavaScript dili istemci tarafl
(client-side) bir betik (script) dilidir
Web sayfalar nda dinamik iccedilerik sa lamak ya da kullan c yla ileti im kurmak iccedilin kullan l r [53]
Bu ileti imin sa lanabilmesi iccedilin ortak kurallar duumlnyada uluslararas standart kurumu olan
Avrupa Bilgisayar Uumlreticileri Birli i (European Computer Manufacturers Association-ECMA)
taraf ndan belirlenir Temel kurallar ECMA Script (ECMA-262) ad verilen bir standartta
toplanm t r [54]
37
Javascript in soumlz dizim kurallar C diline benzerlik goumlsterir Derleme i lemi yap lmayan
ayr t rmal (parsed language) bir dildir Nesne youmlnelimli programlama (Object Oriented
Programming - OOP) yetene ine sahiptir [55]
AJAX n JavaScript le olan ili kisi k saca u ekilde oumlzetlenir Herkes taraf ndan
bilinen goumlnder (submit)-cevap(response) doumlnguumlsuumlnuumln oumlnuumlne geccedilerek kullan c lar n Web
sunucusuyla direk etkile im iccedilinde bulunmas n sa lar [56] AJAX goumlnder duuml mesi olmaks z n
sunucu etkile imini sa lar Veriye ihtiyaccedil duyuldu unda Web sayfas iccedilindeki Javascript kodlar
ile bir istek yapar Sunucu cevab tam bir HTML sayfas olarak de il veri olarak geri doumlnduumlruumlr
ve istemciyi cevaplar Cevab n bu ekilde olu turulmas Web uygulamalar n n masauumlstuuml
uygulamalar gibi ccedilal abilmesini sa lar [56]
Sonuccedil olarak Javascript HTML kodlar aras na goumlmuumllebilen kod parccedilalar d r Bunun
yan s ra tek ba na js uzant l JavaScript kodlar da yaz labilir Bu kodlar Internet Explorer
Firefox Opera vb tuumlm taray c lar taraf ndan desteklendi i iccedilin sorunsuz ccedilal r [57]
3631 JavaScript Ccedilal ma Prensibi
JavaScript kodlar
iccedilin herhangi bir metin editoumlruuml kullan labilir ya da Notepad gibi bir
duumlz yaz program yla da kodlar olu turulabilir Taray c lar n yorumlayabilmesi iccedilin ltSCRIPTgt
etiketiyle ba layan ltSCRIPTgt etiket ile biten JavaScript kodlar HTML belgelerinin ccedile itli
yerlerine eklenebilir Eklenen kodlar kullan c lar n HTML belgesindeki bir ba lant ya t klamas
veya klavyede bir tu a basmas yla tetiklenir ya da HTML sayfas kullan c
Browser nda
goumlruumlntuumllendi i anda otomatik olarak ccedilal maya ba lar Otomatik ccedilal an Javascript kodu ise iki
ayr youmlntemle ccedilal t r labilir lk youmlntem HTML kodlar i letilmeden oumlnce (yani Web sayfas
kullan c n n Web Browser nda goumlruumlntuumllenmeden oumlnce) ccedilal mas ikinci youmlntem sayfa
goumlruumlntuumllendikten sonra script kodlar n n ccedilal mas d r [58] Bu youmlntemler a a da s ras yla
accedil klanmaktad r
HEAD boumlluumlmuumlnde
BODY boumlluumlmuumlnde
HEAD Boumlluumlmuumlndeki Scriptler HEAD etiketleri iccediline ltSCRIPTgt ltSCRIPTgt etiketi
kullanarak istenilen JavaScript kodlar
eklenebilir Bu kodlar HTML sayfas n n BODY boumlluumlmuuml
yuumlklenmeden i lenir
38
ltHTMLgt
ltHEADgt
ltSCRIPT LANGUAGE=Javascript12gt
alert(Merhaba Duumlnya) ltSCRIPTgt
ltHEADgt
ltBODYgt
ltBgtDeneme Sayfas na Ho geldinizltBgtltbrgt
ltBODYgt
ltHTMLgt
Yukar daki oumlrnekte kaynak kodlar yukar dan a a ya do ru i letilirken sayfada ilk
goumlruumlntuumllenecek olan alert( ) komutuyla ekrana yaz lan Merhaba Duumlnya
ileti im kutusu
olacakt r Gelen ileti im kutusunda Tamam butonuna bas ld nda body boumlluumlmuumlndeki
kodlar n i lenmesine s ra gelecektir Ekrana Deneme Sayfas na Ho geldiniz mesaj
yazacakt r
BODY Boumlluumlmuumlndeki Scriptler HTML belgesinin BODY boumlluumlmuumlnde JavaScript
kullanmak iccedilin iki yol vard r
Do rudan ccedilal acak kodlar ve kullan c taraf ndan ccedilal acak kodlar
Do rudan ccedilal acak JavaScript kodlar
ltBODYgtltBODYgt etiketleri aras na
ltSCRIPTgt etiketi kullan larak HTML belgesinin istenilen yerine yaz l r Bu cuumlmleler taray c
taraf ndan okundu u anda yerine getirilir
ltHTMLgt
ltHEADgt
kinci Ornek
ltHEADgt
ltBODYgt
ltSCRIPT LANGUAGE=Javascript12gt
alert(Javascript duumlnyas na ho geldiniz)
ltSCRIPTgt
ltBODYgt
ltHTMLgt
Yukar daki oumlrnekte ise kod i leme s ras na uygun olarak i letilerek oumlnce HEAD
etiketleri yorumlanarak ekrana kinci Ornek yaz p hemen ard ndan ileti im kutusu ccedil karak
39
Javascript duumlnyas na ho geldiniz yazacakt r Kullan lan di er bir youmlntem ise kullan c
taraf ndan bir olay n ba lat lmas yla bir JavaScript kodunun ccedilal t r lmas d r
ltHTMLgt
ltHEADgt
ltSCRIPT LANGUAGE=Javascript12gt
genel de i ken tan mlar
var n = Merhaba Duumlnya
bu fonksiyon uyar kutusu accedilar
function merhaba()
alert(n)
ltSCRIPTgt
ltHEADgt
ltBODYgt
ltbrgtltbrgtltbrgtltbrgtltBgtButona T klad n zda Merhaba Duumlnya yazan ileti im kutusu ekrana
gelecektirltBgtltbrgtltbrgt
ltFORMgt
ltINPUT TYPE=SUBMIT NAME=dugme1 VALUE=TIKLAYINIZ
onclick=merhaba()gt
ltFORMgt
ltBODYgt
ltHTMLgt
Yukar daki oumlrnekte ise HEAD etiketleri aras nda de i ken tan mlama ve fonksiyon
olu turma i lemleri yap lm t r BODY komutu i letildikten sonra FORM ouml esiyle olu turulan
duuml me kullan c taraf ndan t kland nda script kodu tetiklenerek fonksiyon ccedila r l r ve mesaj
kutusu ekrana gelir
Ayr ca ltBODYgt iccedilinde URL kullan larak da a a daki oumlrnek kodla goumlsterildi i gibi
JavaScript kodu ccedila r labilmek muumlmkuumlnduumlr
ltA HREF=javascript alert(Ccedil kmak istedi inizden emin misiniz)gtSiteden Ccedil kltAgt
40
3632 Javascript Dilinin Oumlzellikleri
JavaScript dilinin temel soumlz dizim yap s na a a da incelenecektir
36321 De i kenler
Bir de eri iccedileren bellek adlar n ifade ederler De i kenler verileri saklar ve onlara
eri imi sa larlar De i kenlerin bir ad olur bir de de eri olur Program boyunca de i kenin ad
de i mez fakat iccedileri i de i ebilir
Bir JavaScript de i keni belli kurallara uymak zorundad r
a) De i kenler harfle ya da alt ccedilizgi (_) ile ba lamal d r Rakam veya di er
i aretler birinci karakter olarak kullan lamaz fakat de i ken ad n n di er
karakterlerinde kullan labilir
b) Javascript buumlyuumlk kuumlccediluumlk harfe kar duyarl d r (case-sensitive oumlzellli i) Ayn
kelimenin buumlyuumlk harfle yaz lmas ile kuumlccediluumlk harfle yaz lmas farkl isimler
olarak alg lanmas na neden olur
c) De i ken isimleri iccedilinde bo luk olmamal d r
d) Kullan c lar n bilgisayar nda kullan lan dil setinin ayarlar her bir kullan c iccedilin
farkl l k goumlsterebilece i iccedilin ngilizce alfabede bulunmayan Tuumlrkccedile ve di er
dillerdeki high-ASCII karakterleri ( ile uuml Uuml ouml Ouml ccedil ve Ccedil)
kullanmamakta fayda vard r [58]
36322 Kapsam
Bir de i kene bir de er atand nda bu de erin geccedilerli olaca suumlreyi belirlemek iccedilin
kapsam (scope) kavram kullan l r Bir de i kenin kapsam
global ya da lokal olabilir Bir
global de i kene sayfa uumlzerinde herhangi bir JavaScript ten eri ilebilir Lokal de i ken ise
de erin atand yordam iccedilinde geccedilerlidir
A a daki oumlrnekte bir de i kenin kendisine atama yaparak de er verilir
adi= Zeynep
Bir fonksiyon yaz l rken yerel bir de i ken olu turmak iccedilin a a daki oumlrnekte oldu u
gibi var kelimesiyle tan mlama yap l r
41
function toplama()
var sayi=1
toplam=0
deyimler
Yukar daki oumlrnekte sayi adl de i ken toplama fonksiyonu iccedilin yerel toplam de i keni
ise tuumlm sayfa iccedilin genel (global) de i ken olacakt r De i kenlere atanan de erler Tablo
33 deki de i ken tuumlrlerinden herhangi biri olabilir Verinin tuumlruumlne ba l olarak de er uumlzerinde
belirli i lemler yap labilir ya da yap lamaz Oumlrne in iki string de er uumlzerinde aritmetik i lem
yap lamaz
Tablo 33 De i ken tuumlrleri
De i ken Tuumlrleri
Numbers Tam ve ondal kl
say lar iccedilerir Pozitif 0 ya da negatif olabilir
Booleans Mant ksal veri tuumlruumlduumlr True (Do ru) ya da False (Yanl ) de erini al r Sorgulama
sonunda geriye True iccedilin 1 False iccedilin 0 de erini doumlnduumlruumlr
Strings Karakter bilgi iccedileren bir de i kendir T rnak iccedilinde yaz lan ifadeler de i kene
atan r
Objects Taray c ya ait nesnelerdir nesne= new Object() eklinde kodlamada kullan labilir
Null Oumlzel bir de i kendir ccedili bo ya da de ersiz olarak ifade edilir
Undefined
Bir de i ken yarat ld ktan sonra iccedilerdi i tan ms z de eri simgeler
36323 leccediller (Operators)
leccediller iki ya da daha fazla de er uumlzerinde i lem yap lmas n sa lar De erler ya da
de i kenler aras nda toplama ccedil karma mod gibi i lemler yap labilir
Tablo 34 leccediller ve goumlrevleri
leccediller ve Goumlrevleri
+ Toplama
- Ccedil karma
Ccedilarpma
Boumllme
42
MOD Boumllmede kalan verir (10 3 i lemi 1 de erini verir )
++
Tek art r m De er 1 art r l r
-- Tekli azaltma
- Negatifle tirme lenenin negatif de erini doumlnduumlruumlr
36324 kili leccediller
kili i leccediller birden ccedilok kar la t rma i lemini tek bir ko ul ifadesi olarak birle tirirler
Oumlrne in
sayi =1 AND dongu gt 1000 ise gibi
Tablo 35 kili i leccediller
kili i leccediller
ampamp
Mant ksal Ve And ki ifade de do ruysa True de erini doumlnduumlruumlr
|| Mant ksal Veya Or fadelerden birisi do ruysa True de erini doumlnduumlruumlr
Mant ksal De il Not Negatifle tirme i lemi do ruysa True de erini doumlnduumlruumlr
36325 Atama Deyimi
Atama deyimi (=) bir de i kene sa dan bir de erin atanmas n sa lar De i kenlere
tuumlrlerine ve tan mlamalar na uygun olan herhangi bir de er atanabilir
Oumlrnek sayi=100
Oumlrnek toplam=(fiyat+kdv)
Sa daki de eri soldaki de i kene atayan += -= = = ifadeleri de kullan labilir
Oumlrne in toplam+=fiyat (di er bir de i kenden gelen fiyat de erini toplam de erine
ekler ve sonucu toplam de i kenine atar)
36326 fadeler
De i kenlerin i leccedillerin ve deyimlerin bir araya gelerek olu turduklar yap lar
ifade
eder
Oumlrne in toplam = sayi 1 sayi2 formuumlluuml bir ifadedir
43
36327 Deyimler
Deyimler belli bir komut ya da soumlz dizimi bile enlerine verilen add r Oumlrne in bir komut
ya da bir IF yap s deyim olabilir
Oumlrnek if (basari_notugt50) deyimler else deyimler
36328 Nesneler
Kendi de erleri oumlzellikleri ve i lemleri olan bile enlere nesne (object) denir JavaScript
dilinde ccedilok say da yerle ik nesne vard r
JavaScript buumltuumln Web sayfas n ve taray c y nesneler toplulu u olarak goumlruumlr Bu
sisteme DOM (Document Object Model) denir [59]
JavaScript kullanarak dinamik ve etkile imli goumlruumlnuumlmler elde edilir DOM a JavaScript
ve JScript gibi ECMAScript olan kullan c taraf ndaki bir scripting dili yard m yla eri ilebilinir
DOM la veri al -veri i yeni bir sayfada kullan c ekran na yans t lmaz Parccedilal guumlncelleme
olay n n buumlyuumlk k sm bu modelle gerccedilekle tirilir
Ba lang ccedilta Javascript geli tiricileri kullan c lar na daha zengin uygulama deneyimleri
ya atabilmek ve sayfalardaki etiketlerde dinamik de i imler sa lanabilmesi iccedilin ccedilaba sarf
ediyordu Bu durum sayfalar n bir nesne gibi i lenebilmesini gerekli k ld Boumlylece DOM ortaya
ccedil km t r lk oumlnceleri Javascript ve DOM s k bir ili ki iccedilindeydi sonuccedilta ise iccedilerik ayr larak
geli tirilmi tir DOM sayfalar n JavaScript veya VBScript gibi bir betik dili ile de i tirilebilir
sayfalar n tamamen nesne youmlnelimli goumlsterimidir [60]
DOM ekil 316 da goumlsterilen JavaScript iccedilindeki buumltuumln nesneleri ifade etmektedir
Hiyerar ik olarak ccedilok say da nesneyi iccedilerir NetScape ve Microsoft taray c lar iccedilin DOM
nesneleri farkl oldu u iccedilin yaz lan kodlar uyumlu de ildir [59]
44
ekil 316 Javascript nesneleri [59]
Window nesnesi taray c n n kendisidir Window nesnesi birccedilok youmlnteme oumlzelli e ve
olaya sahiptir Form nesnesi DOM nesnesinin ana nesnesidir Form uumlzerindeki alanlar bu nesne
arac l yla kullan l r [59]
Verilerin yuumlklenmesinde kullan lan XML ile uumlretilen Javascript istemci kodlar ve veri
sunucu uumlzerindeki kodlar aras ndan ayr larak goumlsterilir Bu istemcinin etkilenmeksizin sunucu
uumlzerinde de i iklik yap lmas n sa lar Benzer API iccedileren di er istemciler iccedilin bilgileri accedil a
ccedil kar r [41]
363281 DOM (Document Object Model)
Document Object Model (DOM) XML ve HTMLXHTML iccedilin World Wide Web
Consortium (W3C) taraf ndan geli tirilen bir belgenin a accedil yap s n (tree-based) temsil eden bir
standartt r DOM bir tak m nesneler iccedilin belgenin yap s n temsil etmesinin yan s ra bu
nesnelere eri im iccedilin youmlntemler de sa lar [44]
DOM bir belgenin stilini kaynak dosyas n yap s n ve iccedileri ini guumlnceller ve program
ile scriptlerin belgeye eri imine izin veren bir platformdur Ayn zamanda bir API (application
programming interface) dir [62]
Nesneleri iccedileren belgeler iccedilin standart model olarak DOM uumlccedil boumlluumlme ayr lm t r
Core DOM
XML
HTMLXML DOM - XML
45
HTML DOM
HTML
DOM da her internet sayfas bir belge ve bu belge iccedilerisinde bulunan tuumlm elemanlar ise
nesne olarak kabul edilir DOM sayfa uumlzerindeki her bir XML eleman
iccedilin nesnelerin a accedil
yap s n n resmini goumlrselle tirmenin kolay bir yoludur A a daki oumlrnek basit bir XML
belgesinin doumlrt duuml uumlmden olu an DOM u goumlstermektedir Koumlk Dokuumlman duuml uumlmuuml koumlk etiketi
iccedilin bir Element duuml uumlmuuml alt etiketler iccedilin bir Element duuml uumlmuuml ve alt etiketin sahip olaca
herhangi bir bilgi girilebilen bir metin duuml uumlmuumlduumlr [41]
ltrootTaggt
ltchildTaggtSome TextltchildTaggt
ltrootTaggt
Bir a accedil yap s n n goumlrsel bir temsili a a da goumlsterilmektedir
Dokuumlman
Element (koumlkEtiket)
Element (altEtiket)
Metin
A a daki kod kuumlmesinin [63] DOM goumlsterimi ekil 317 deki gibidir
ltTABLE border=1gt
ltTBODYgt
ltTRgt
ltTDgtOumlgr NoltTDgt
ltTDgtAd Soyad ltTDgt
ltTRgt
ltTRgt
ltTDgt900ltTDgt
ltTDgtZeynep OumlZERltTDgt
ltTRgt
ltTBODYgt
ltTABLEgt
46
ekil 317 DOM a accedil yap s
[63]
Geccedilerli her HTML ve XML belgesindeki element nitelik metin duuml uumlmuuml (text node)
hatta bo luk ve sekme karakterleri(whitespace) bile W3C DOM taraf ndan duuml uumlm (node) olarak
kabul edilir ekil 317 deki gibi belgedeki duuml uumlmlerin kullan m hiyerar isine goumlre
s ralanmas na da duuml uumlm a ac (node tree) denir Belge nesnesi yeni duuml uumlmler olu turmak bu
duuml uumlmlerin oumlzeliklerini de i tirmek ve youmlnetmek iccedilin ccedilok say da youmlnteme sahiptir
363282 DOM Elementinin S k Kullan lan Genel Oumlzellikleri ve Youmlntemleri
A a da duuml uumlmlere eri mek ve youmlnetmek iccedilin s k kullan lan JavaScript youmlntemleri
vard r [64]
getElementById()
Soumlzdizimi
documentgetElementById(herhangiBirID)
Oumlrnek kullan m
element = documentgetElementById(kimlik)
getElementById() youmlntemi id oumlzelli i belirtilen elementlerin referans n n al nmas n
sa lar Ayn id kimli ine sahip ba ka bir element olmas durumunda sadece ilk elementi verir
Di erlerine eri im sa lamaz kimlik
dokuumlman uumlzerinde elementi bulmak iccedilin kullan lacak
e siz bir oumlzelli ini ifade eder
47
getElementsByTagName()
Soumlzdizimi
documentgetElementsByTagName(herhangiBirHTMLElementi)
Oumlrnek kullan m
documentgetElementsByTagName(etiketAdi)
Dokuumlman uumlzerinde belirtilen ayn etiket ismine ait buumltuumln elementlerin bir listesini verir
documentgetElementById(herhangiBirID)documentgetElementsByTagName()
parametresiyle id niteli inin de eri herhangiBirID olan elementin duuml uumlmleri
iccedilindeki tuumlm elementler listelenir
getElementsByName()
Soumlzdizimi
documentgetElementsByName(herhangiBirIsim)
Oumlrnek Kullan m
documentgetElementsByName(baslik)
Bu youmlntem dokuumlman uumlzerinde belirtilen name oumlzelli ine sahip elementlerin bir listesini
verir Oumlrnek kullan mda name niteli inin de eri baslik olan elementleri verir
firstChild
Bu oumlzellik elementin ilk alt elementini verir
Soumlzdizimi
documentgetElementById(herhangiBirID)firstChild
lastChild
Bu oumlzellik elementin son alt eleman n verir
Soumlzdizimi
documentgetElemementById( herhangiBirID )lastChild
48
nodeValue
nodeValue oumlzelli i text comment ve CDATA duuml uumlmlerinin iccedilerdikleri de eri verir
Soumlzdizimi
m= documentgetElemementById( herhangiBirID )lastChildnodeValue
m e er varsa duuml uumlmuumln iccedilerdi i de erin string olarak de eridir document nesnesinin
ve elementlerin nodeValue de eri null doumlner
removeAttribute()
removeAttribute fonksiyonu elementin belirtilen bir oumlzelli inin silinmesini sa lar
Soumlzdizimi
elementremoveAttribute(ozellik)
ozellik silinecek oumlzelli in ad d r
nodeName
Duuml uumlm bilgilerini almak iccedilin kullan l r Geccedilerli duuml uumlmuumln ad n doumlnduumlruumlr
Geccedilerli duuml uumlm element ise elementin tipini doumlnduumlruumlr Nitelik ise nitelik ad n doumlnduumlruumlr
nodeType
Geccedilerli duuml uumlmuumln tuumlruumlnuuml say sal olarak doumlnduumlruumlr
nextSibling
Duuml uumlmler aras gezinti yap labilmesiyi sa lar Geccedilerli duuml uumlmden bir sonrakine referans verir
previousSibling
Geccedilerli duuml uumlmuumln bir oumlncekine referans verir
setAttributeNode
Bir duuml uumlme nitelik atamada kullan l r
Soumlzdizimi
elementsetAttributeNode(nitelik)
49
36329 Fonksiyonlar
Fonksiyonlar birden fazla ad mdan olu an i lemlerin kolayca tek seferde yap lmas n
sa lar Fonksiyonlar bir dizi i lemi yerine getirir ve bir sonuccedil doumlnduumlruumlr Ayr ca fonksiyonlar
parametre olarak kabul edilen birccedilok de er al rlar
Fonksiyonlar n HTML dosyas n n HEAD boumlluumlmuumlne koyulmas yani gerekli buumltuumln
fonksiyonlar alt alta HTML in HEAD boumlluumlmuumlnde yer alacak bir SCRIPT etiketi iccedilinde
olu turulmas taray c n n Javascript yorumlay c s bak m ndan h z kazanmas n sa lar Sonra
ihtiyaccedil duyuldu unda yeni bir SCRIPT etiketi koyarak bu fonksiyon goumlreve ccedila r l r [58]
function fonksiyonun_ad (arguumlman1 arguumlman2 arguumlmanN)
i lemler
deyim 1
deyim 2
deyim N
363210 Accedil klamalar
Programlar n anla l r olmas n sa layan accedil klama sat rlar JavaScriptte bu lt- ve --gt
i aretlerinin aras nda ifade edilir [58]
lt- Accedil klama sat r d r --gt
37 Basit Bir AJAX Oumlrne i
Ekran ccedil kt s ekil 318 de goumlruumllen basit bir oumlrnek uumlzerinde i leyi anlat lacakt r
ekil 318 AJAX oumlrne i
50
indexhtml dosyas accedil ld nda Metnin AJAX la getirilmesi iccedilin tiklayiniz
ba lant s na t kland nda taray c kullan lan AJAX youmlntem sayesinde tuumlm sayfa yeniden
yuumlklenmeden iccedileri i sunucu da depolanan sonuchtm dosyas ndan alarak ekrana yans t r
Yukar daki indexhtml dosyas n n kodlar a a da goumlsterilmektedir
lthtmlgt
ltheadgt
lttitlegtAJAXla oumlrne ilttitlegt
ltscript language=JavaScript type=textjavascriptgt
function getXmlHttpRequestObject()
if (windowXMLHttpRequest)
return new XMLHttpRequest() IE olmayan
else if(windowActiveXObject)
return new ActiveXObject(MicrosoftXMLHTTP) IE
else
alert(Maalesef taray c n z XmlHttpRequest nesnesini desteklememektedir AJAX
destekleyen bir taray c da tekrar deneyiniz)
var receiveReq = getXmlHttpRequestObject()
function cevap()
if (receiveReqreadyState == 4 || receiveReqreadyState == 0)
receiveReqopen(GET sonuchtml true)
receiveReqonreadystatechange = handlecevap
receiveReqsend(null)
function handlecevap()
if (receiveReqreadyState == 4)
documentgetElementById(span_result)innerHTML = receiveReqresponseText
ltscriptgt
ltheadgt
lta href=javascriptcevap()gtMetnin AJAXla getirilmesi icin tiklayinizltagtltbr gt
51
ltspan id=span_resultgtltspangt
lthtmlgt
Oumlrnekte ilk olarak tuumlm taray c larda sorunsuz ccedilal abilmesi iccedilin ccedilapraz taray c deste i
sa lanm t r receiveReq de i keni getXmlHttpRequestObject() ile tan mlanm t r Daha
sonra cevap fonksiyonu olu turulmu tur Sunucudan gelen cevab n durumu ifelse yap s yla
kontrol edilmi tir Sunucudan gelen gelen cevaba goumlre doumlnduumlruumllen de erlerle sonuchtml sayfas
ccedila r larak uygulama sonlan r
AJAX youmlntemi ile ccedilekilen bilginin tutuldu u sonuchtml dosyas nda ise sadece ekil
319 de yazan veri bulunmaktad r
ekil 319 sonuchtml sayfas n n ekran ccedil kt s
38 XML
XML (eXtensible Markup Language) internet te teknik standartlar ve youmlnetim
konusunda yetkili organ olan W3C (World Wide Web Consortium) organizasyonu taraf ndan
geli tirilmi tir XML programc lar n kendi sistemlerini olu turabilecekleri kendi etiketlerini
tan mlayarak ccedilok daha rahat ve etkin programlama yapabilecekleri ve bu belirlenen etiketleri
kendi yap lar iccedilerisinde standartla t rabilece i esnek geli tirilebilir ve kolay uygulanabilir bir
meta-dil (bir dili tan mlamak iccedilin kullan lan soumlzcuumlkler dilbilim dili) dir [65]
XML ile ilgili ilk ve en oumlnemli nokta ba l ba na bir dil olmamas d r Daha ziyade
di er dilleri ya da bir dili olu turan soumlzcuumlkleri olu turmak (vocabularies) iccedilin kullan lan bir
meta-dildir XML bu soumlzluumlklerin olu turulmas iccedilin gerekli kurallar tan mlar [66]
XML bu kural yap s na uygun olarak etiketleri iccedilerik bilgisiyle tan mlayabilir XML nin
esnek yap s sayesinde a a daki oumlrnekte oldu u gibi kullan lan dilde ccedilok farkl tiplerde etiket
olu turulmas na muumlsaittir XML soumlzluuml uumlndeki tek k s tlamas etiketlerin iyi biccedilimlendirilmi
olmas gerekti idir [66]
52
ltnotgt
ltkimegt Melek lt kimegt
ltkimdengt Zeynep lt kimdengt
ltbaslikgt Hatirlatici ltbaslikgt
ltbodygt Bana proje teslim tarihini hatirlat lt bodygt
ltnotgt
Yukar daki not oumlrne i kendi kendini accedil klay c bir oumlrnektir Goumlnderici ve al c bilgisinin
yan nda mesaj metni ve ba l da mevcuttur XML nin HTML de oldu u gibi oumlnceden
tan mlanm etiketleri yoktur XML yazar kendi etiketlerini ve kendi belge yap s n oumlrnekteki
gibi olu turabilir
Her dil farkl d r ama hepsinde iccedileri i i aretlemek iccedilin etiketler kullan l r Etiket
adlar n n seccedilimi ve yap s esnektir ve genellikle gruplarda bilginin payla labilmesi iccedilin standart
XML soumlzluumlkleri kararla t r lm t r [66]
XML 1998 y l nda SGML alt yap s uumlzerine kurulmu tur SGML (Standard
Generalized Markup Language) bir etkinle tirme teknolojisidir HTML gibi uygulamalarda
kullan l r Geni letilebilir aretleme Dili (Extensible Markup Language-XML) nin oldukccedila
basit bir diyalektidir [66]
XML SGML ve HTML sistemlerinin her ikisinin de uygulanmas n kolayla t rmak iccedilin
tasarlanm t r XML ayn zamanda son derece popuumller bir veri format d r Ccediluumlnkuuml ccedilo u
programlama dili taraf ndan desteklenir Bu dil sayesinde geli iguumlzel veri tipleri tan mlamak
kolayd r Ccedilo u kez XML Uzak Yordam Ccedila r s - Remote Procedure Call (RPC) mekanizmas
sayesinde istemci-sunucu ileti imini kolayla t rmak iccedilin kullan lm t r [66] XML elde edilmek
istenen alan bilgileri konfiguumlrasyon parametreleri teknik ccedilizim hesap ccedilizelgesi (spreadsheet)
gibi ouml eleri iccedileren dosyalar n yaz l m nda kullan l r [67]
XML verileri goumlruumlntuumllemek iccedilin de il verilerin platformdan ba ms z bir ekilde
depolanmas ve transferi iccedilin tasarlanm t r XML tuumlm bilgiler duumlz metin format nda saklar Bu
da tuumlm platformlarda sorunsuz bir ekilde kullan labilir olmas n sa lar Bu dosyalar diskte duumlz
metin olarak tutman n bir avantaj
da olu turuldu u programda accedil lmas gerekli de ildir Bu
yaz dosyalar programc n n istedi i bir yaz i leme program nda accedil l p duumlzenlenebilir Ayr ca
XML veriyi duumlz metin (plain text) format nda saklamas ndan dolay veriyi payla t rma
konusunda hem yaz l m hem de donan mdan ba ms z hareket edebilme imkacircn n sunmu tur
53
381 Oumlrnek XML Belgesi Olu turma
XML belgelerinin yap s n n daha iyi kavranabilmesi iccedilin basit bir oumlrnekten yola ccedil k l r
Bir dizi karakter mant ksal bir yap ya ccedilevrilmelidir Bu ccedilevrim a accedil yap s kullan larak
yap labilir Oumlrnek belgede koumlk dizin ya da element ve alt boumlluumlmler iccedilin de dallar belirlenir
denemexml olarak kaydedilecek belgenin iccedileri inde sisteme kay tl kullan c lar n bilgileri
vard r
Haz rlanan denemexml belgesinin a accedil yap s a a daki gibi olu turulmu tur Koumlk
element ve alt dallar ve alt dala ait nitelik belirtilmi tir
ekil 320 denemexml dosyas n n a accedil yap s
A accedil yap s olu turulduktan sonra kodlama k sm na geccedililir XML de kod yaz m n
kolayla t rmak iccedilin Altova XMLSpy MoreMotion XML Editor XMLwriter XML Editor 26
gibi ccedile itli editoumlr programlar kullan labilir Bu tez ccedilal mas nda oldukccedila i levsel oumlzelliklere
sahip Altova XMLSpy yaz l m kullan lm t r Editoumlr kullanarak dokuumlmandaki metinlerin
yap sal elemanlar yaz oumlzellikleri (renk stil biccedilim vb ) belirginle tirilir mlerin otomatik
soyadi
adi
soyadi
eposta
adi
soyadi
eposta
Kullanicilar Kullanici Kullanici_id= 2
Kullanici Kullanici_id= 3
Kullanici Kullanici_id= 1
adi
eposta
54
olarak kapanmas sa lanabilir Olu turulan yap lar n do rulu u ve geccedilerlili i kolayca kontrol
edilebilir Altova XMLSpy editoumlruumlyle olu turulan belge a a daki kodlardan olu maktad r
ltxml version=10 encoding=UTF-8gt lt--Bu XML belgesi kullan c bilgilerini tan mlar --gt ltKullanicilargt
ltKullanici kullanici_id=1gt
ltadigtZeynepltadigt
ltsoyadigtOZERltsoyadigt
ltepostagtz_ozerhotmailcomltepostagt
ltKullanicigt
ltKullanici kullanici_id=2gt
ltadigtYagmurltadigt
ltsoyadigtOZERltsoyadigt
ltepostagty_ozeryahoocomltepostagt
ltKullanicigt
ltKullanici kullanici_id=3gt
ltadigtFatihltadigt
ltsoyadigtAYDOGMUSltsoyadigt
ltepostagtf_aydogmusgmailcomltepostagt
ltKullanicigt ltKullanicilargt
Haz rlanan dokuumlman iyi biccedilimlendirilmi (well-formed) bir yap ya sahiptir ekil 321
de Altova XMLSpy editoumlruumlyle olu turulan belgenin ekran goumlruumlntuumlsuumlnde denemexml
goumlruumllmektedir
55
ekil 321 XML belgesi
382 XML Dokuumlman n n Yap s
XML ile veriler yap bak m ndan moduumllerlik kazanmaktad r Bu sayede verilerin iccedilerik
yap ve sunum k s mlar ayr moduumlller halinde farkl XML dokuumlmanlar nda tutulmaktad r
Her XML belgesini olu turan moduumlller iki boumlluumlmde incelenecektir Bu moduumlller giri
boumlluumlmuuml (prolog) ve belge ya da koumlk duuml uumlm (document node) olarak ayr lm t r
Prolog XML belgesinin ba nda goumlruumlntuumllenir ve belge hakk nda iccedilerikle ilgili bilgiler
iccedilerir XML bildirimleri i lem accedil klamalar yorumlar ve DTD (Document Type
Definition)XML ema iccedilerebilir
yi duumlzenlenmi bir XML dokuumlman tek ve temel bir koumlk duuml uumlm uumlzerine kurulur
Elementler nitelikler metin CDATA (character data) varl k ve yorumlar iste e ba l olarak
eklenebilir
56
ekil 322 Oumlrnek bir XML dokuumlman yap s
[ 66]
3821 Giri Boumlluumlmuuml (Prolog)
Bu boumlluumlmde XML belgesinde bulunabilecek oumln tan mlama konular incelenecektir
3822 XML Bildirimleri
XML dokuumlmanlar genellikle a a daki bildirim sat r yla ba lar Bildirim sat r ndan
oumlnce ba ka komut sat r yaz lmamal d r Tersi bir durumda XML dokuumlman iccedileri i i leme
koyarken do ru bir ekilde okuyamaz ve hata mesaj uumlretir
ltxml version= 10 encoding= UTF-8
gt
Bu i lem sat r nda ba lang ccedil etiketi ve biti etiketi yoktur XML bildiriminin yap ld
ltxml ve gt i lem komut etiketleridir lem komutlar oumlrnekteki gibi biti ik yaz l r Bu oumlrnek
sat rda 2 tane oumlznitelik bar n r Birinci oumlznitelik xml dokuumlman n n hangi suumlruumlm oldu unu bildirir
ve yaz lmas zorunludur En yayg n kullan lan ve en guumlncel suumlruumlmuuml olan 10 yerine ba ka bir
57
de er yaz ld nda dosya i lenmeyebilir kinci oumlznitelik olan encoding belge i lenirken
kullan lacak dil seccediliminin belirtildi i aland r Oumlrnekteki kod birccedilok dili destekleyen UTF-8
karakter dil setini tan mlar
38221 lem Accedil klamalar (Processing Instructions)
Giri boumlluumlmuumlnde di er uygulamalara XML dokuumlman hakk nda bilgi veren i lem
accedil klamalar (Processing Instructions- PIs) dacirchil edilebilir lem accedil klamalar lt karakterleriyle
ba lar ve gt karakterleriyle biter PIs XML belgesinin di er boumlluumlmlerinde goumlruumllebilmesine
ra men genellikle giri boumlluumlmuumlnde goumlruumlluumlr
XML bildirimleri ltxml karakter grubuyla ba lar lem accedil klamalar yla benzerlik
goumlsterir Fakat aralar ndaki fark XML bildirimleri ltxml karakter grubuyla ba larken i lem
accedil klamalar ise lt karakterleriyle ba lar
Bir XSL stylesheet i referans goumlsteren PI goumlsterimi
ltxml-stylesheet type= textxsl
href= stylesheetxsl gt
PI nin ilk ouml esi bir isimdir PI hedefi olarak adland r l r Yukar da goumlsterilen PI xml-
stylesheet ismine sahiptir simler ltxml karakter grubundan - semboluumlyle ayr l r PI ler type=
textxsl href= stylesheetxsl metin karakter dizesine sahiptir Oumlrnek kod sat r nda stylesheet
ad nda metin iccedilerikli bir XSL dosyas referans goumlsterilmi tir
38222 Yorumlar (Comments)
Yorum sat rlar XML belgesinin hemen hemen her yerinde iste e ba l olarak
kullan labilir XML yorum sat rlar XHTML belgelerindeki yap yla ayn d r Ayn karakterlerle
ba larlar
lt--Bu alana yorumlar yaz labilir --gt
Yorum sat rlar XML belgesi i lenirken etkilenmezler Bu sat rlar programc lar n ya da
kullan c lar n program kodlar n kolayca anlayabilmeleri iccedilin yaz l r [68]
58
38223 Dokuumlman Tipi Tan mlama-The Document Type Definition (DTD) ve XML
emalar
XML belgesinin standartla t r lmas iccedilin kullan lan bir yap d r XML belgesinin hangi
elementleri iccedilerece ini ve bu elementlerin oumlzniteliklerinin ne olaca n elementlerin neleri
ta yaca n dokuumlman iccedilerisindeki tekrar eklini ve say s n kurallarla belirtir [69]
382231 DTD kullanman n Avantajlar
Veri depolama XML nin temel amaccedillar ndan birisidir Oumlrne in yaz l m geli tirecek bir
proje ekibi ccedilal rken ortak bir DTD nin olu turulmas yla geli iguumlzel yeni etiketler eklenmesinin
etiketlerle depolanan bilginin hatal s ralanmas n n etiketlere hatal nitelikler eklenmesinin
oumlnuumlne geccedililmi olur Ayr ca i lem yapan program n da bu belgeleri tan mas ve i lemesi kesinlik
kazan r [70] Belge i lenirken geccedilerlilik derleyicileri (validating parsers) XML belgesinin DTD
geccedilerlili i sa lanana kadar tekrar tekrar kontrol eder E er geccedilerlilik kontroluumlnden geccedilemezse
derleyici hata mesaj verir [66]
ccedileri in bir standarda oturtulmas yla AJAX ve dinamik DOM manipuumllasyonunda
istenmeyen gereksiz kod parccedilalar n n ve ccedilal mayan i aretlemelerin oumlnuumlne geccedililir Ayr ca daha
h zl HTML derleyicileri ve daha iyi ccedilapraz taray c performans iccedilin geli mi arama motoru
optimizasyonu sa lan r Bir DOCTYPE belirlemenin en oumlnemli etkisi HTML iccedileri inin nas l
ayr t r ld n ve yorumland n n Web taray c ya goumlsterilmesi gerekti ini belirtmesidir Ayr ca
DOCTYPE ba l olarak CSS yorumlanabilir ve HTML farkl ekilde goumlruumlntuumllenir [71]
Hangi i lem moduna dacirchil oldu u tespit edilerek Web taray c lar
DOCTYPE
doumlnuuml uumlmuumlnuuml destekler Web taray c lar bir Web sayfas n n nas l HTML ve CSS iccedileri ini
yorumlad n
ve de erlendirdi ini sayfalar n DOCTYPE bildirimlerine dayanarak de i tirir
[71]
382232 DTD tan mlama
DTD olu umu iki yolla yap labilir Birinci yol belge iccedilerisinde a a daki oumlrnekte oldu u
ilk standart sat rdan sonra ltDOCTYPE ile ba layan ve gt i areti ile biten aral kla DTD tan m
yap lmas d r DTD alan nda bir kok_element_adi etiketi tan mlanm t r [ ]
i aretleri aras nda
iccedilsel olarak tan mlanm t r Bu etiketin iccedilerisine element_icerigi olarak alt alanlar belirtilir
XML dokuumlman n n iccedilerik k sm na tan mlanan kok_element_adi etiketleri aras na istenilen metin
giri i yap l r
59
ltxml version= 10 encoding= UTF-8 gt
ltDOCTYPE kok_element_adi
[ltELEMENT kok_element_adi (element_icerigi) gt ]
gt
lt kok_element_adi gt Bu basit bir DTDli XML ornegidir lt kok_element_adi gt
kinci yol ise Web sayfalar n n iccedileri i bir geccedilerlilik servisi kullan larak onaylanmas d r
Do rulu u W3C1 taraf ndan garantiye al nan bir DTD ile geccedilerlilik kontroluuml sa lanabilir [71]
HTML XHTML SMIL MathMLvb Web dokuumlmanlar n n httpvalidatorw3org adresinden
URI adresi dosyalar upload edilerek ya da direk i aretleme giri i yap larak geccedilerlilik kontroluuml
yap labilir [72]
DTD tan m a a daki oumlrnekteki gibi HTML belgesine harici olarak
httpwwww3orgTRxhtml1DTDxhtml1-strictdtd adresindeki haz r kural yap s
dacirchil edilir
Kural ak bu adresten sa lan r [72] A a daki kod sat r nda XML veri tan mlamas na goumlre
ltcodegtltcodegt etiketleri olu turulmu tur
ltDOCTYPE html
PUBLIC -W3CDTD XHTML 10 StrictEN
httpwwww3orgTRxhtml1DTDxhtml1-strictdtdgt
lthtmlgt
ltbodygt
ltpgt Bu alana serbest metin giri i yap labilir
ltcodegt
Bu alanda ise XML veri tan mlamas DTD tan m na goumlre yap lm t r
ltcodegt
ltpgt
ltbodygt
lthtmlgt
Programc lar n en ccedilok ihtiyaccedil duyabilece i 6 tane oumlncelikli DOCTYPE belgelerinin
listesi a a da verilmi tir [72]
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401EN
httpwwww3orgTRhtml4strictdtdgt
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN
httpwwww3orgTRhtml4loosedtdgt
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 FramesetEN
60
httpwwww3orgTRhtml4framesetdtdgt
ltDOCTYPE html PUBLIC -W3CDTD XHTML 10 StrictEN
httpwwww3orgTRxhtml1DTDxhtml1-strictdtdgt
ltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalEN
httpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgt
ltDOCTYPE html PUBLIC -W3CDTD XHTML 10 FramesetEN
httpwwww3orgTRxhtml1DTDxhtml1-framesetdtdgt
382233 DTD ccedilinde Element Tipi Bildirimleri
Elementler hakk nda bilgi veren kodlard r Kullan lan yap ELEMENT ile ba lar
element ad ve element iccedileri inin eklenmesiyle sonlan r
ltELEMENT elementName (elementContents)gt
Element iccedileri i a a daki gibi bo olarak ta tan mlanabilir
ltELEMENT elementName (EMPTY)gt
Element iccedileri inde alt dallar-duuml uumlmler olu turulacaksa a a daki oumlrnekte oldu u gibi
DVD koumlk duuml uumlmuumlne le ayr larak s ras yla baslik format tarz element isimleri yaz l r
Belirlenen s ralama XML belgesi iccedilinde goumlruumlnecek s ralamay da olu turur
ltELEMENT DVD (baslik format tarz)gt
Parsed Character Data (PCDATA) veri tuumlruuml element iccedileri inin metinsel ifade olaca n
bildirir XML ayr t r c s bu metindeki karakter ve varl k referanslar n ccediloumlzuumlmler A a da
ltbaslikgt ltformatgt lttarzgt bildirimlerinin iccedilerik tuumlruuml PCDATA olarak tan mlan r
ltELEMENT baslik (PCDATA)gt
ltELEMENT format (PCDATA)gt
ltELEMENT tarz (PCDATA)gt
61
XML belgelerinde tan mlanan bir element herhangi bir veri kombinasyonunu iccedilerebilir
Bu durumda iccedilerik tuumlruuml ANY olarak tan mlan r En serbest iccedilerik tan m d r Oumlrnek kullan m
a a da goumlsterilmektedir
ltELEMENT KATALOG ANYgt
Elementlerin alabilecekleri nitelikler DTD iccedilerisinde tan mlan r Element iccedilerikleri
hakk nda daha detayl bilgiye ula lmas n sa lar Tablo 36 da kullan labilecek niteleyiciler
goumlsterilmektedir
Tablo 36 DTD karakterleri ve accedil klamalar
Karakter Accedil klama
Elemandan s f r veya daha ccedilok bulunabilir
Alt elemanlar s rayla belirler
| Bir grup element aras nda seccedilim yap lmas na izin verir
+ Elemandan bir veya daha ccedilok bulunabilir
Elemandan s f r veya 1 tane bulunabilir
Sembol olmamas o elementin bir kez goumlruumlnmesi gerekti ini bildirir
Oumlrnek goumlsterimde KULLANICI elementine ait alt element olan AD ouml esi birden fazla
de er alabilece ini goumlsterir TEL bildirimi ile kullan c ya ait di er bilgiler girilirken telefon
numaras
giri i eksik olarak kalabilece ini ve sonradan eklendi inde ise yeni kural
tan mlamas na gerek kalmadan etiket tan mlamas n n yap labilece ini bildirir
ltELEMENT KULLANICI (ADI+ TEL)gt
382234 DTD ccedilinde Nitelik Liste Bildirimleri
Nitelik bildirimleri element bildirimlerinden sonra goumlruumlnuumlr ve biraz daha karma k bir
yap ya sahiptir Bir elementin sahip oldu u oumlzellikler bir liste halinde belirtilebilir
Nitelik liste bildirimi a a daki yap yla goumlsterilir
ltATTLIST Element_adi Nitelik_adi Nitelik_tipi varsayilan_degergt
ltATTLIST DVD id CDATA REQUIREDgt
62
Kod parccedilas nda yaz lan varsayilan_deger niteli in gerekli olup olmad n belirtir
Nitelik tipleri Tablo 37 deki de erleri alabilir
Tablo 37 DTD ccedilindeki niteliklerin de er ve accedil klamalar
[73]
De er Accedil klamas
CDATA De er karakter verisi olmal
(en1|en2|) De er parantez iccedilindeki de erlerden birisi olmal
ID a unique identifier- benzersiz bir tan mlay c -kimlik
IDREF De er ba ka bir eleman n ID si olmal
IDREFS De er ba ka ID lerin listesi olmal
NMTOKEN De er geccedilerli XML ad olmal
NMTOKENS De er geccedilerli XML ad listesi olmal
ENTITY De er bir varl k olmal
ENTITIES De er bir varl k listesi olmal
NOTATION De er bir notasyon olmal
xml De er oumlnceden tan mlam bir XML de eri olmal
Varsay lan de er ise Tablo 38 deki de erleri alabilir
Tablo 38 Varsay lan de erler ve accedil klamalar
De er Accedil klama
deger Niteli in Default de eri
REQUIRED Nitelik de eri Eleman iccedilinde geccedilmek zorundad r
IMPLIED Nitelik de eri Eleman iccedilinde geccedilmek zorunda de ildir
FIXED value Nitelik de eri sabittir E er nitelik de eri belirtilirse default de eri
yazmak zorunludur
A a daki oumlrnekte URUN elementinin RENK niteli i seccedilimli olarak k rm z ye il ya da
mavi olas de erleri tan mlanm t r Varsay lan de eri ise k rm z olarak belirtilmi tir [73]
ltATTLIST URUN RENK (red|green|blue) redgt
63
382235 DTD ccedilinde Varl k (Entity) Bildirimleri
Varl k bildirimleri XML belgesinde kullan lan de i ik tuumlr ve biccedilimlerdeki verilerin
XML belgesine aktar lmas n sa lar Di er programlama dillerinde kullan lan moduumll ya da
makrolar gibi s kl kla kullan lan metin bloklar
varl k olarak tan mlanarak sayfan n istenilen
yerine kolayca eklenebilir Eklenen metin uumlzerindeki de i iklikler varl k bildirimiyle
duumlzenlenebilir [73]
Ayr ca d ar dan bir dosyay
varl k olarak tan mlayarak iccedilindeki veri XML belgesinde
kullan labilinir Bu veri metin olmak zorunda de ildir DTD bir varl k olarak tan mlamak iccedilin
a a daki sat r n kullan lmas
gerekmektedir [73]
ltENTITY varl k_ad varl k_degerigt
ltENTITY copyright Copyright 2009 Yayinevigt
Harici bir dosyadan al nacak bir varl k iccedilin soumlz dizimi ise a a daki gibidir
ltENTITY varl k_ad SYSTEM URIURLgt
ltENTITY tableOfContents SYSTEM entitiesdenemexmlgt
(Not URL = Uniform Resource Locator URI = Uniform Resource Identifier )
38224 XML emas
XML emas DTD lere benzer ekilde XML belgesinin yap s n ve bulundurabilece i
verilerin tuumlruumlnuuml tan mlamakta kullan l r XML emalar
xsd dosya uzant l d r ema XML
belgesinde kullan labilecek ouml eleri nitelikleri ve veri tuumlrlerinin yan s ra XML belgesinin soumlz
konusu XML emas iccedilin geccedilerli olmas n sa lamak amac yla uyulmas gereken yap y da
tan mlar [74]
XML emalar DTD yap lar na goumlre daha guumlccedilluuml bir yap ya sahiptir DTD iccedilerisinde
eleman iccedileri i string ve di er birkaccedil veri tipi ile s n rl d r XML ema integer floating point
say lar date time gibi daha geni bir veri tipi deste i sa lamaktad r XML ema ayr ca accedil k
iccedilerik modeli (open content model) ve isim uzay
(namespace integration) gibi ek oumlzellikler de
sunmaktad r XML ema belgeleri olu turulmas s ras nda XML soumlzdizimi kullan l r Bu DTD
lere goumlre ccedilok belirgin bir uumlstuumlnluumlk sa lar Ccediluumlnkuuml yeni bir soumlz dizimi ouml renilmesi yerine
XML in XML emaya oumlzel komutlar n n ouml renilmesi yeterli olur [75]
64
A a daki oumlrnek ema tan mlamas nda xs schema elementi ile ba layan bir koumlk ouml e
vard r
ltxml version=10 encoding=UTF-8gt
ltxsschema
xmlnsxs=httpwwww3org2001XMLSchemagt
ltxsschemagt
ema elementi iki tane oumlzelli e sahiptir
name
xmlns
ema iccedilin bir isim tan mlamas name oumlzelli i ile sa lan r xmlns oumlzelli inin ise oldukccedila
oumlnemli bir goumlrevi vard r Bu oumlzellik sayesinde oumlrne in Microsoft un schema belirtimlerini
kullanabilmesi iccedilin urnschemas-microsoft-comxml-data de erine ayarlanmas gerekir
A a daki oumlrnekte XML ema belgesi iccedilin name ve xmlns niteliklerinin basit kullan m
goumlsterilmektedir [66 75]
ltschema name=kutuphane xmlns= urnschemas-microsoft-comxml-datagt
lt - - ema iccedileri i buraya yaz l r- -gt
ltschemagt
Oumlrnek XML belgesi olu turma ba l alt nda verilen oumlrne in ema dosyas olan
denemexsd nin kodlar ve ekran goumlruumlntuumlsuuml ekil 323 deki gibidir
ltxml version=10 encoding=UTF-8gt ltxsschema xmlnsxs=httpwwww3org2001XMLSchemagt
ltxselement name=Kullanicilargt
ltxscomplexTypegt
ltxssequencegt
ltxselement ref=Kullanici minOccurs=0 maxOccurs=unboundedgt
ltxssequencegt
ltxscomplexTypegt
ltxselementgt
ltxselement name=Kullanicigt
ltxscomplexTypegt
ltxssequencegt
ltxselement name=adi type=xsstringgt
ltxselement name=soyadi type=xsstringgt
ltxselement name=eposta type=xsstringgt
ltxssequencegt
ltxsattribute name=id type=xsinteger use=requiredgt
65
ltxscomplexTypegt
ltxselementgt
ltxsschemagt
ekil 323 denemexsd nin ekran goumlruumlntuumlsuuml
3823 Belge Duuml uumlmleri
XML dokuumlman nlar ndaki belge duuml uumlmleri a a da incelenecektir
38231 Elementler
XML dokuumlmanlar ndan bahsederken etiket ve element terimleri kullan lmaktad r lk
ba ta birbirinin yerine kullan labilir gibi goumlruumlnse de asl nda farkl iki terimdir Element terimi
herhangi bir iccedilerikle birlikte etiketlerin accedil l p kapanmas olarak tan mlanabilir Etiket elementin
bir parccedilas d r Etiketler de kouml eli parantez accedil larak ba lan r ve sonunda kapat larak bitirilir
A a daki oumlrnek sat rda ltxyztgt etiketlerini iccedileren tam bir element goumlruumllmektedir
Accedil l etiketi Kapan etiketi
ltxyztgtXML de etiket ve element fark ltxyztgt
ccedilerik
Element
66
38232 Nitelikler
Her XML belgesi karakter verisi ve biccedilimlendirmeden olu ur Genellikle karakter verisi
ba lang ccedil ve biti etiketleri aras nda metinsel bilgi iccedilerir
XML etiketlerine bir ya da daha fazla nitelik tan mlanabilir
ccedilerik ya da
Nitelik ba ka etiketler
ltKullanici kullanici_id= 1 gt ltKullanicigt
Etiket sim De er
Accedil l etiketi Kapan etiketi
Element
38233 Metin
Accedil lan ve kapat lan tuumlm etiketlerin iccedileri ini olu turur CDATA gibi metin i aretlemesi
yap lmad kccedila tuumlm metin XML kural yap s na goumlre i lenecektir [66]
38234 CDATA Boumlluumlmuuml
CDATA XML yap s iccedilerisinde i lenmeyecek metinleri bloklar halinde i aretlemeye
yarar XML derleyici bu boumlluumlmde metin iccedilerisinde yer alan i aretleme ay raccedillar n ve etiketlerini
normal karakterler olarak alg lar CDATA yap s ltCDATA[ ile ba lar ve]] kouml eli parantezlerin
kapanmas yla sona erer
ltbaslikgtltCDATA[
]]ltbaslikgt
CDATA boumlluumlmleri Javascript gibi goumlmuumlluuml kodlar XML belgelerinde kullanabilir ve bu
boumlluumlmlere i leme ihtiyaccedil duyulmayan iccedilerik eklenebilir Oumlrne in bir uygulamada veritaban ndan
veri okumas ve i aretlemesi buumltuumln iccedileri in XML belgesine goumlmme bilgisini vermede
karakterler i lenirken accedil kccedila ayr lmas n n oumlnuumlne geccedilebilmek iccedilin CDATA boumlluumlmleri kullan l r
[66]
67
38235 Varl klar
Bir karakteri temsil eden sembol grubuna varl k denir Oumlrne in Ampersand i areti
yerine yani ve yerine kullan lan ampamp ya da bir karakterlik bo luk b rakmak iccedilin
nonbreaking space yerine ampnbsp semboluuml kullan l r
ltmatematikgt18 lt 36ltmatematikgt
Yukar daki kod sat r nda bu element i lenmeye ccedilal ld nda hata iletisi verecektir
Ccediluumlnkuuml 36 de erinin oumlnuumlndeki etiket accedilma i areti olarak alg lanacak ve kod sat r n n i leme
al nmas nda yanl l a neden olacakt r Bu hatay duumlzeltmek iccedilin kod sat r n n a a daki gibi
yaz lmas yeterli olacakt r
ltmatemetikgt18 amplt 36ltmatemetikgt
Tablo 39 da s k kullan lan karakterlerin varl k sembolleri goumlsterilmektedir
Tablo 39 XML Belgelerinde kullan lan varl k bildirimleri
Karakter Varl k
amp ampamp
ampapos
gt ampgt
lt amplt
ampquot
383 XML nin Soumlz Dizim Kurallar
XML iccedileri in i aretlenmesi iccedilin etiketleme dili kullan l r Bu etiketlemeler yap l rken
baz kurallar goumlz oumlnuumlnde bulundurulur imdi bu kurallar incelenecektir
1) XML dili buumlyuumlk kuumlccediluumlk harfe kar duyarl d r XML de kuumlccediluumlk harf kullan m esast r
Oumlrnek yaz m a a daki gibidir [76]
lttable WIDTH= 100 gt kullan m yanl t r
lttable width= 100 gt kullan m do rudur
68
2) Her etiket kapat lmal d r Oumlrne in ltkelimegt etiketini takip eden sat r sonuna ltkelimegt
etiketi de eklenmelidir
3) Dokuumlmanda buumltuumln elementleri iccedileren bir koumlk eleman olmas gerekir Oumlrnek yaz mda
oldu u gibi alt ouml eler duumlzenli bir yap da yaz lmal d r [76]
ltrootgt
ltchildgt lt childgt
ltsubchildgt lt subchildgt
lt rootgt
4) Etiketler belirlenirken bir element ba ka elementleri iccediline alacak ekilde tasarlanabilir
ccedilten d a do ru etiketlerin hepsi kapat lmal d r
ltbgtltigtBu metin koyu ve e ikltbgtltigt yanl kullan m
ltbgt ltigt Bu metin koyu ve e ik lt igt lt bgt do ru kullan m
5) XML elementleri oumlzel karakter verileri bo elementler CDATA ya da yorumlar
bar nd rabilir
6) Oumlznitelik de erleri t rnak iccediline al nm olmal d r Tek t rnak ya da ccedilift t rnak olabilir
lttable width=100gt kullan m yanl t r
lttable width= 100 gt kullan m do rudur
7) Element adlar harfler rakamlar tire alt ccedilizgi iki nokta i aretlerini ve noktalar
iccedilerebilir ki nokta i areti sadece namespace kullan m iccedilindir xml ile ba layan eleman
isimleri oumlnceden tan mlanm oumlzel isimlerdir [86]
ltkullanilabilirIsimlergt
ltisimgt
ltxslcopy-ofgt
ltUzun_bir_isimgt
ltNoktalarlaayrilmisbirisimgt
lth823323123-231-231gt
lt_23gt
ltkullanilabilirIsimlergt
8) Etiketleme yap l rken rakamla ba lamamas na dikkat edilmelidir Bo luk yer
almamal d r
69
384 XML Dokuumlmanlar n n leyi i ve Sunumu
XML i lemleri a accedil tabanl ve olay tabanl olmak uumlzere iki kategoriye ayr l r Verilerin
i lenmesinde XML parser yani ayr t r c kullan l r XML i lemciler genellikle XML ayr t r c
olarak da adland r l r A accedil tabanl ayr t r c lar DOM (Document Object Model) yakla m na
goumlre olay tabanl ayr t r c lar ise SAX (Simple API for XML) yakla m na goumlre veriyi ema
yap s ile birlikte XMLye oumlzguuml hiyerar ik yap da i ler lenen veriler uygulama ve
sorgulamalara haz r hale getirir [66 76]
Genellikle bir XML dokuumlman n XML formatl veri iccedilerik dosyas XSD (DTD yerine)
formatl ema dosyas ve XSL (CSS yerine) formatl stylesheet dosyas olmak uumlzere 3 dosyayla
tan mlanabilir Bu uumlccedil dosya tipi de XML destekli tuumlm sunucu ve veri tabanlar nda ccedilal t r labilir
Verinin yal n (native) olarak sakland veritaban youmlnetim sistemleri di er veritabanlar nda
kar la lan harici veri tipleri veya farkl format doumlnuuml uumlmlerine gerek duymad ndan sorgu
transfer ve entegrasyon i lemlerinin performanslar
oldukccedila yuumlksektir Ayr ca XML veritaban
youmlnetim sistemlerinde verinin yal n biccedilimde kendi iccedil format nda tutuluyor olmas n n bir
avantaj da eri imi kolayla t rmas d r Ba ka veritaban youmlnetim sistemi yakla mlar nda buna
benzer bir arama iccedilin karma k ccediloklu tablolar ara t r l r ve daha sonra XML verisine
doumlnuuml tuumlruumlluumlr Bu da i lem performans n n duuml mesine ve maliyet art r c ek uygulamalar
eklenmesine neden olur [66 76]
39 AJAX Prensipleri
AJAX yeni bir teknoloji olmas itibariyle henuumlz emekleme doumlnemindedir Bununla
birlikte birkaccedil Web tasar mc s bu yenili i ba a ccedil k lmas gereken bir sorun gibi alg lamaktad r
Bu sorun iyi bir AJAX Web uygulamas yapabilmek iccedilin s radan ya da koumltuuml bir uygulamaya
kar ne yap lmas gerekti i olarak tan mlanabilir Michael Mahemoff (wwwmahemoffcom)
bir yaz l m geli tirici ve kullan labilirlik uzman iyi Ajax uygulamalar iccedili birkaccedil temel ilke
belirlemi tir [37]
Minimal Trafik nternet trafi i internet uumlzerindeki veri ak d r Goumlnderilen ve al nan
mesajlar n miktar youmlnuuml web sitesine giren ziyaretccedililerin say s ziyaret ettikleri
sayfalar ccedilevrimiccedili trafi i olu turmaktad r AJAX uygulamalar nda amaccedil bu internet
trafi ini en alt seviyede tutmak iccedilin sunucudan muumlmkuumln olabildi i kadar az bilgi
goumlnderip almakt r Ayr ca bilgi ak nda gereksiz bilgilerin her seferinde goumlnderilip
al nmas n n oumlnuumlne geccedililmesiyle uygulamaya sa laml k kat l r
70
Kullan c etkile imli model Genellikle AJAX uygulamalar geleneksel Web
uygulamalar ndan farkl olarak de i ik kullan c etkile imli modeller sunar Web
standartlar ndaki t kla-bekle anlay na kar AJAX uygulamalar nda an nda suumlruumlkle
b rak ya da ccedilift t klamayla yak nla t rma gibi di er kullan c arayuumlz paradigmalar
vard r E er kullan c
etkile imli modeller seccedililirse kullan c
ne yapaca n bilir
Sade arayuumlz Yan p soumlnen sayfa boumlluumlmuuml ya da suumlrekli doumlnen animasyonlar gibi dikkat
da t c ve gereksiz sayfa elementlerinden kaccedil n l r Kullan c lar goumlze hitabeden
uyumlu ve sade sayfalar tercih etmektedir
Eri ilebilirlik nsanlar n ba lant h zlar ndan fiziksel engellerine ya ad uumllkenin
toplumsal yap s ndan ya l l a kadar birccedilok youmlnden eri ilebilirlik standartlar
incelenebilir Birincil ve ikincil kullan c lar n beklentilerine en uygun olacak AJAX
uygulamalar na eri im seccedilenekleri goumlz oumlnuumlnde bulundurulmal d r Oumlzel yaz l mlarla m
yoksa kullan lacak taray c oumlzellikleriyle mi adaptasyonun sa lanaca belirlenmelidir
Boumlylece yeni hedef kitleler de tamamen d ar da b rak lm olmayacakt r
Sayfan n tamam n indirilmesinden kaccedil nma Tetikleyici sayfa indirildikten sonra
tuumlm sunucu ileti imi AJAX motoru taraf ndan youmlnetilmektedir Boumlylece kuumlccediluumlk bilgi
al -veri leri iccedilin tuumlm sayfan n tekrar yuumlklenmesinin oumlnuumlne geccedililmi olur
lk kullan c AJAX uygulamalar nda tasar m kullan c lar n daha oumlnce
kar la mad klar bir biccedilimdedir Etkileyici efektler ve s k c olmayan bilgilendirici
reklamlarla genel kullan m durumlar n kolayca ba armaktad r
Buumltuumln bu ilkelerde bulunan ortak nokta kullan labilirliktir AJAX oumlncelikle kullan c lar
iccedilin web deneyimini geli tirmeye ccedilal rken arkas ndaki teknoloji sadece bunun iccedilin bir araccedilt r
Yukar daki ilkelere sad k kalarak AJAX uygulamalar oldukccedila faydal ve kullan l olacakt r
[37]
310 AJAX Kuumltuumlphaneleri ve Araccedillar
Kuumltuumlphaneler haz r fonksiyonlara kolayca eri im sa lar Ayr ca s k kullan lan var olan
kodlar tekrar yazarak zaman kaybedilmemesini sa lar A a da en ccedilok kullan lan AJAX
kuumltuumlphanelerine oumlrnekler verilmi tir
3101 Prototype
Prototype dinamik web uygulamalar yaratmak iccedilin kullanabilecek geli mi bir
kuumltuumlphanedir Accedil k kaynakl ve nesne tabanl kod kuumltuumlphanesidir Ajax iccedilin yaz lan
71
kuumltuumlphanelerin ilk oumlrneklerindendir ve di er haz r kuumltuumlphanelerin bir k sm prototypejs
kullanmaktad r [78]
3102 AJAX Gear Toolkit
AJAX olarak bilinen istemci tarafl tekni in buumltuumln avantajlar ndan faydalanmay
muumlmkuumln k lan bir araccedilt r XMLHttpRequest nesnelerini kullanarak internet taray c s n n
asenkron ccedila r yapmas n sa lar [78]
3103 AspNet Ajax
ASPNET AJAX ASPNET ile yap lan ve tuumlm nternet taray c lar nda ccedilal abilen
uygulamalar iccedilin Microsoft taraf ndan geli tirilen bir kuumltuumlphanedir Oumlnce Atlas daha sonra
ASPNET Ajax ad n alm t r ASPNET 20 ile kolay entegrasyon ASPNET 35 ile tam
entegrasyon sa lar Yeni nesil etkile imli arayuumlzler olu turmak iccedilin kullan l r [78]
3104 Dojo Toolkit
Accedil k kaynak kodlu bir javascript toolkit olup dhtml sorunlar n buumlyuumlk oumllccediluumlde ccediloumlzmuuml tuumlr
Arayuumlz programlama karma k kodlar n basite indirgenmesi toolkitin sa lad avantajlard r
Ayr ca dinamik web sitesi ya da ba ka ortamlar haz rlamay kolayla t ran ve sitenin daha
kullan l olmas n sa layan iccedilerikler sunar [78]
3105 MochiKit
Dreamweaver web uygulamalar iccedilin kullan lan ajax kuumltuumlphanelerinden birisidir E
zamanl olmayan davran lar iccedilin erteleme uygulamas n kulland ndan sunucuyla etkile im
halinde olan web sayfalar n n geli tirilmesinde tercih edilir [78]
3106 PHPLiveX
PHP ile yap lan uygulamalar iccedilin kullan lan bir kuumltuumlphanedir Versiyon 25 ile gelen
yenilikler ve optimizasyonlar kuumltuumlphanenin potansiyelini ciddi biccedilimde artt rm t r Di er php
tabanl kuumltuumlphaneler gibi php fonksiyonlar n javascript koduyla ccedila r r fakat di erlerine goumlre
daha az kodla kullan m sa lar [78]
72
3107 Sardalya (Sarmal Dinamik Altyap s )
Sardalya Dinamik AJAX Kuumltuumlphanesi DOM deste i olan tuumlm guumlncel taray c larda
ccedilal mak iccedilin tasarlanm bir AJAX Kuumltuumlphanesi dir Linux windows freebsd osx sun gibi
platformlarda ccedilal abilir Tuumlm taray c lardan ba ms z olarak ccedilal r ve kullan m s ras nda az
yer kaplar [78]
3108 Sajax
Sajax n accedil l m Simple Ajax Toolkit tir ASP ve PHP tabanl programlarda AJAX
uygulamalar geli tirmek iccedilin kullan lan bir kuumltuumlphanedir Buumltuumln sunucu tarafl platformlara
ccedila r goumlnderebilme yetene ine sahiptir [78]
3109 Solvent
AJAX uygulamalar n moduumller bir yap da gerccedilekle tiren farkl bir kuumltuumlphanedir
JavaScript ile yaz lm t r ve tuumlm taray c lardan ba ms z olarak ccedilal an bir AJAX uygulamas d r
Web uygulamalar n kuvvetlendirmek ve uygulamalar n geli tirme suumlrecini h zland rmak iccedilin
kullan l r [78]
31010 AjaxAC
AjaxAC accedil k kaynak kodlu php tabanl bir kuumltuumlphanedir AjaxAC ile varolan PHP
s n flar na ve MySQL veritaban na ek istek verilerini doumlnduumlrmek iccedilin geccedili oldukccedila kolayd r
[78]
31011 Xajax
Xajax Php JavaScript HTML XMLHttp ve XML kullanarak taray c ve sunucu
aras ndaki al veri i ve verileri goumlstermeyi gerccedilekle tirir Xajax ile geli tirilmi
uygulamalar sunucudaki php fonksiyonlar n ccedila rabilir ve sayfay yeniden yuumlklemeden
iccedileri ini guumlncelle tirebilir [78]
73
31012 Scriptaculous
Prototype tabanl bir js framework tuumlr Yap lan AJAX i lemleri prototype iccedilerisinde
bulunan nesneler ve fonksiyonlar ile yap l r [78]
311 AJAX Uygulamalar nda Kullan lan Di er Teknolojiler
AJAX istemci ile sunucu aras nda e zamanl olmayan ileti im sa layan bir teknolojiler
buumltuumlnuumlduumlr
3111 HTMLXHTML
stemci tarafl (client side) bir metin i aretleme dili olan XHTML (Extensible
HyperText Markup Language- Geli tirilebilir Metin aretleme Dili) dili XML soumlz dizimi ile
olu turulmu tur XHTML standart etiket ayarlar n tan mlarken spesifik bir yol kullan lmal d r
World Wide Web Consortium (W3C) duumlnyadaki Web geli tiriciler iccedilin olu turulmu ayn
standartla t r lm yakla m benimserler [66]
3112 CSS
XHTML de stil biccedilimlendirmesini sa lar Yuumlzlerce sayfan n tek merkezden
youmlnetilmesini sa lar Geleneksel youmlntemlerde her sayfan n biccedilimlendirme ayarlar birccedilok kod
sat r aras ndan stillerle ilgili olanlar n seccedililip duumlzeltilmesiyle yap l r CSS kullan lan
youmlntemlerde a a daki gibi bir kod parccedilas
tuumlm sayfalardaki stil ayarlar n n yap lmas n tek
merkeze ba lam t r
kabuk
width760px
background-colorEE7700
spot
colorEE7700
font-familyVerdana Comic Sans MS Helvetica sans-serif
74
AJAX ve CSS birlikte kullan larak masauumlstuuml ccedilal t r labilir EXE yaz l mlar ile ayn
h zda ve performansta ccedilal an web uygulamalar geli tirmek muumlmkuumln hale gelmi tir Google
belgelerinde Gmail bunun en buumlyuumlk oumlrne idir
Web sayfalar ndaki tuumlm iccedilerik biccedilimlendirmeler resimler vb istemciye
HTMLXHTML kodlar halinde goumlnderilir Bu kodlar sade ve basittir Bu da oldukccedila fazla
kullan c ya hitap edebilen web siteleri iccedilin oumlnemlidir Ccediluumlnkuuml internete ba land nda k s tl bir
bant geni li ine sahip kullan c lar daha az say da karakter iccedileren sayfalar daha k sa suumlrede
indirebilecektir Boumlylece kullan c lar toplam suumlrede daha fazla sayfa ziyaret edecektir
Sayfalar n h zl yuumlklenmesi kullan c lar n o siteler hakk ndaki memnuniyetini art racakt r
Ayr ca bu durum yaz c dostu sayfalar n olu turulmas nda etkilidir [79]
3113 XSLT
XSLT (Extensible Stylesheet Language Transformations Geni letilebilir
Biccedilimlendirme Dili Doumlnuuml uumlmleri) XML tabanl doumlkuumlmanlar n orijinal halini de i tirmeden
yeni bir dokuumlman olu turmak iccedilin kullan lan bir dildir [80] Oumlrne in bir XML doumlkuumlman n
XHTML ye doumlnuuml tuumlrmek iccedilin XSL doumlnuuml uumlmuuml (transformation) kullan labilir XMLnin iccedilindeki
hangi data nas l doumlnuuml tuumlruumllecek sorular ndan hangi sorusunun cevab XPath ile belirtilirken
nas l sorusunun cevab ise yine XML ile belirtilir [81]
75
4 FLEX
Flex MXML ActionScript 30 ve Flex s n f kuumltuumlphanelerinin birle iminden olu an
sunucu-istemci tabanl yeni bir teknolojidir Ayr ca Flex Flash uygulamalar ile derlenebilen
XML tabanl bir dil olarakta tan mlanabilir [84] Flex in ccedilal ma sistemati inin i lem ak
emas ekil 41 de goumlsterilmektedir
ekil 41 Flex uygulamalar n n i lem ak emas
ekil 41 de sol alt kouml eden sa uumlst kouml eye do ru i lem ak emas takip edildi inde
Flex Builder 3 ile geli tirlen appmxml uygulamas MXML derleyicide ccedilal t r ld nda bir swf
dosyas uumlretmektedir Ayr ca uumlretilen swf dosyas n n sunucu uumlzerinde test edilebilmesi iccedilin
birde html uzant l dosya olu turulur Flex in en oumlnemli oumlzelli i uumlretilen son uumlruumlnuumln swf
format nda olmas d r Ayr ca olay tutucu komut dizelerinin kolay kullan m
yaz l m n
olu turulmas nda Flex program n tercih nedeni olmas n sa lam t r
Adobereg Flexreg 3 yayg n olarak kullan lan taray c lar masauumlstleri ve i letim
sistemlerinde kolayl kla etkileyici web uygulamalar olu turmaya ve bak mlar n yapmaya
youmlnelik verimlili i yuumlksek bir programd r Accedil k kaynak (open source) altyap s na sahiptir
Eclipse tabanl bir plugin kuumlmesidir
Adobe firmas taraf ndan Flex Builder 3 Pro lisans
herhangi bir e itim kurumuna
ouml renci e itmen ya da ccedilal an olarak ba l olduklar n belgeleyenlere tamamen uumlcretsiz olarak
verilmektedir Kurulum tamamland ktan sonra ilk accedil l ekran ekil 42 de goumlsterildi i gibidir
[83]
76
ekil 42 Flex arayuumlzuuml
41 Adobereg Flexreg 3 Kurulumu ccedilin Gereken Minimum Sistem Gereksinimleri
Uygulama gerccedilekle tirmek iccedilin farkl i letim sistemleri iccedilin gerekli sistem
gereksinimleri a a da belirtilmi tir
411 Windows ccedilin Flex Builder 3 (Standart ve Profesyonel)
Flex in Windows kurulumu iccedilin gerekli minimum sistem gereksinimleri a a da
goumlsterilmektedir [83]
Intelreg Pentiumreg 4 i lemci
Microsoftreg Windowsreg XP Service Pack 2 veya Windows Vistareg Home (Premium
veya Basic) Business veya Ultimate
1 GB RAM (2 GB oumlnerilir)
500 MB kullan labilir sabit disk alan (eklenti yap land rmas iccedilin ek 500 MB gerekir)
Java Virtual Machine Sun JRE 142 Sun JRE 15 (dacirchildir) IBMreg JRE 15 veya
Sun JRE 16
Eklenti yap land rmas iccedilin Eclipse 322 33 ve 34 (Eclipse 33 Windows Vista iccedilin
oumlnerilir)
Adobe Flashreg Player 9 yaz l m
BEA Workshop 101
77
IBM Rational Software Architect 7003 (Yaln zca Eclipse 33 eklenti yap land rmas )
412 Macintosh ccedilin Flex Bu lder 3 (Standart ve Profesyonel)
Macintosh bilgisayarlar iccedilin gerekli minimum sistem gereksinimleridir [83]
PowerPCreg G4 125 GHz veya Intel i lemci
Mac OS X v1047 10410 veya 105
1 GB RAM (2 GB oumlnerilir)
500 MB kullan labilir sabit disk alan
Java Virtual Machine Appledan JRE 15 veya JRE 16
Eclipse 322 33 ve 34 (eklenti yap land rmas iccedilin)
Adobe Flash Player 9 yaz l m
78
5 CcedilEVR M Ccedil KATALOG TASARIMI F rat Uumlniversitesi Oumlrne i
AJAX teknolojisi AdobeMacromedia firmas n n geli tirdi i Flex program
ve
bile enleri kullan larak F rat Uumlniversitesinin 2009 ccedilevrimiccedili katalog ccedilal mas
herhangi bir
teknik bilgi gerektirmeden guumlncellenebilen alt yap s yla gerccedilekle tirilmi tir Kullan c arayuumlzuuml
olu turulurken XML tabanl bir gramer yap s
ve Flex program
kullan lm t r Bu tez
ccedilal mas nda sunucu olarak WampServer 20 kullan lm t r Katalog uygulamas n n kaynak
kodlar na ek boumlluumlmuumlnden bak labilir
AJAX teknolojisiyle ortaya ccedil kmaya ba layan ccedilevrimiccedili bro uumlrler ve kataloglar
internetteki Web uygulamalar uumlzerinde ccedilevrimiccedili hedeflerin oumlnemli bir boumlluumlmuumlne hacirckim
olmaktad r [37] Bu tez ccedilal mas da buna oumlrnek te kil etmektedir
Ccedilal man n olu um haritas na literatuumlr taramas yla ba lanm t r Bir sonraki ad mda
haz rlanacak olan program n oumlzellikleri belirlendi Bu a amadan sonra yaz l m iccedilin kullan lacak
program n seccedilimi yap ld Yaz l m algoritmas planlan p ekil 51 deki kodlama algoritmas
olu turulmu tur Yaz l m test edildi inde olu an hatalar giderilmi tir Ccedilal man n sayfa tasar m
yap larak son ekli verilmi tir
79
ekil 51 Kodlama algoritmas
Ba la
Harici verilerin XML dosyas ndan okunmas iccedilin HttpService s n f tan mland
De i ken tan mlamalar
Flex s n flar eklendi
Uygulamada kullan lacak resim boyutland rmas iccedilin maskeleme yap ld
Sunucu ile taray c ileti iminde AJAX scriptler kullan ld
Tuumlm sayfalar ekran goumlruumlntuumlsuuml iccedilin uygulama boyutland rmas yap ld
Zoom oumlzelli i iccedilin etiket tan mlamas ve buumlyuumltuumllmuuml sayfa goumlruumlntuumlsuuml iccedilin goumlruumlnuumlm
ayarlar fonksiyonu yaz ld
Navigasyon duuml meleri olu turuldu
XML format na uygun duuml uumlmler olu turuldu
Sayfa tasar m yap ld
Dur
A a daki kod sat rlar yla katalog ccedilal mas n n uygulama dosyas olan catamxml
dosyas na Flex iccedilinde ccedilal ma youmlntemlerini belirleyen faydal
s n flar dacirchil edilmi tir
lt[CDATA[
import mxutilsStringUtil
import mxrpcsoapLoadEvent
import mxcontrolsAlert
import mxrpceventsFaultEvent
import qscontrolsFlexBook
import qscontrolsflexBookClassesFlexBookPage
import qscontrolsflexBookClassesFlexBookEvent
import qscontrolsflexBookClassesWBookPageImpl
import qscachingContentCache
import mxrpceventsResultEvent
import mxrpchttpHTTPService
import mxcoreUIComponent
import mxmanagersPopUpManager
import compResimSec
import Kullan
import mxcoreScrollPolicy
import mxcollectionsArrayCollection
XML tan mlamalar diziler sunucu ba lant lar ve zoom i lemleri iccedilin gerekli de i ken
tan mlamalar a a daki kod sat rlar yla yap lm t r
private var aXML
[Bindable]
private var resimlerArrayCollection
private var dataSetHTTPService
private var resimdiziArray=new Array()
private var zoomYapBoolean=false
Katalo un local sunucu uumlzerinde ccedilal t r labilmesi iccedilin kaynak dosyas
Wamp kurulumu
sonras nda olu an www klasoumlruuml iccediline yerle tirilir E-katalog resimleri dinamik olarak data
dizinindeki imagesxml dosyas nda ccedilekilmektedir Katalog resimlerini de i tirmek iccedilin bu
dosyadaki xml duuml uumlmlerinin de i tirilmesi yeterlidir De i iklik yap lacak duuml uumlm oumlrne i
a a da goumlsterilmektedir
81
ltimage source=images2jpg thumb=images2jpg zoom=images2jpggt
Yukardaki sat rdaki duuml uumlmleri accedil klamak gerekirse source duuml uumlmuumlnde katalogda
goumlruumlnecek resim thumb duuml uumlmuumlnde e er as l resim (source) resmi yuumlklenene kadar ba ka bir
resim goumlruumlnmesi isteniyorsa o resmin kayna goumlsterilir Zoom duuml uumlmuuml ise sayfaya zoom
yap lmas esnas nda goumlruumlnecek resmin kayna n goumlsterir
Yukardaki 3 duuml uumlmden thumb duuml uumlmuuml iste e ba l olarak kullan l r Zoom
duuml uumlmuumlndeki resim as l resmin 100 buumlyuumlk hali olmal d r
ekil 52 Katalo un ilk sayfas n n ekran goumlruumlntuumlsuuml
E-katalog sayfalar n boyutunu kataloghtmlde tan ml olan object nesnesinin geni lik ve
yuumlkseklik oumlzelliklerinden almaktad r ekil 52 nin kaynak kodu a a da verilmi tir
ltscript src=ScriptsAC_RunActiveContentjs type=textjavascriptgtltscriptgt
ltscript type=textjavascriptgt
AC_FL_RunContent( idkatalogwidth894height653codebasehttpfpdownloadm
acromediacomgetflashplayercurrentswflashcabmoviekatalogqualityhighbgcolor
000000allowscriptaccesssameDomain ) end AC code
ltscriptgtltnoscriptgtltobject classid=clsidD27CDB6E-AE6D-11cf-96B8-444553540000
id=katalog width=894 height=653
82
codebase=httpfpdownloadmacromediacomgetflashplayercurrentswflashcabgt
ltparam name=movie value=katalogswf gt
ltparam name=quality value=high gt
ltparam name=bgcolor value=000000 gt
ltparam name=allowScriptAccess value=sameDomain gt
ltembed src=katalogswf quality=high bgcolor=000000
width=984 height=653 name=katalog align=middle
play=true
loop=false
quality=high
allowScriptAccess=sameDomain
type=applicationx-shockwave-flash
pluginspage=httpwwwadobecomgogetflashplayergt
ltembedgt
ltobjectgtltnoscriptgt
ekil 53 Katalo un 23 sayfa goumlruumlntuumlsuuml
Oumlrne in ekil 53 te kullan lan resimlerin width=447 height=613 boyutunda ise
resimlerin sayfada goumlruumlnmesi iccedilin html etiketindeki width oumlzelli ini 447x2=984 ve height
83
oumlzelli ini 613+40=653 eklinde duumlzenlenmesi gereklidir Yani width=resim geni li i X 2 ve
height=resim yuumlksekli i + 40 olmal d r
ekil 54 Katalo un sayfa ccedilevirme efektli goumlruumlntuumlsuuml
ekil 54 te goumlruumllen e-katalogun sayfay ccedilevirme oumlzelli i ile h z gibi i lemleri stylecss
dosyas nda tutulmaktad r Gerekli olmad kccedila bu dosya uumlzerinde de i iklik yap lmamas tavsiye
edilir Olu turulan stylecss dosyas n n kodlar a a da goumlsterilmi tir
FlexBook
color 000000
textRollOverColor 000000
border-thickness 0
border-style none
page-slope06
active-grab-area page
page-shadow-strength 1
curve-shadow-strength 1
auto-turn-duration 1500
Application
color F1F1CC
textRollOverColor FFFFFF
84
backgroundGradientColors FFFFFF FFFFFF
backgroundColor FFFFFF
SuperImage
border-thickness 0
border-style none
ekil 55 de goumlruumllen navigasyon ccedilubu unda 1 numara ile goumlsterilen alan istenilen
sayfaya konumland rma yap labilmesi iccedilin sayfa numaras n n girildi i kutudur 2 numara ile
goumlsterilen alan Sayfaya Git duuml mesine t kland nda istenilen sayfan n accedil lmas n sa layan
duuml medir 3 ve 4 numara ile goumlsterilen duuml meler Geri leri duuml meleridir Fare kontroluuml
olmadan da sayfalar aras nda gezinti yap labilmesini sa lar 5 numara ile goumlsterilen alan Tuumlm
Sayfalar duuml mesidir
ekil 55 Katalo un navigasyon ccedilubu u
Tuumlm sayfalar n accedil l r pencere iccedilerisinde goumlruumlntuumllenmesini sa layan fonksiyon a a daki
gibidir Kullanmxml sayfas nda ccedilekilen resimler pencerede goumlster komutuyla geni lik ve
yuumlksekli i ayarlan r Seccedililen nesneler customMoveend() komutuyla ekrana ta n r
private function tumsayfalar()void
Kullanshow_window(thisfalseapplicationwidth-10(applicationheight-60)2)
customMoveend()
customMoveplay()
ekil 56 da goumlruumllduuml uuml uumlzere ccedilevrimiccedili katalogdaki yuumlkluuml olan tuumlm sayfalar yukar dan
accedil lan bir pencere yard m yla goumlsterilir Tuumlm sayfalar
goumlster duuml mesi t kland nda goumlruumlnecek
resimler ile ilgi ayarlar ise data klasoumlruumlndeki onizlexml dosyas ndan ayarlanabilir Xml nin
esnek etiketleme yap s sayesinde onizlexml dosyas nda olu turulan ltsayfalargt etiketi aras na
a a daki kod sat rlar ccedilo alt larak olu turulmu tur
85
ltsayfagt
ltresim1gtimages2jpgltresim1gt
ltresim2gtimages3jpgltresim2gt
ltgitgt2ltgitgt
ltpagesgt23ltpagesgt
ltsayfagt
ekil 56 Tuumlm Sayfalar duuml mesi t kland ndaki ekran goumlruumlntuumlsuuml
Son olarak 6 numaral duuml me t kland nda + ve - konumlar n alarak buumlyuumlteccedil
oumlzelli i kullan l r ekil 57 de goumlsterildi i gibi imleccedil sayfa uumlzerinde gezdirilirken bu alan
uumlzerinde zoom yap larak yan sayfada buumlyuumltuumllmuuml goumlruumlntuuml sa lan r
86
ekil 57 Zoom oumlzelli i
Zoom oumlzelli inde resimler uumlzerindeki geni lik ve yuumlkseklik de erleri iccedilin if else blok
yap s kullan larak maskeleme fonksiyonu yaz lm t r Maskeleme fonksiyonu a a daki kod
sat rlar nda goumlsterilmektedir Fare nin x-y koordinatlar nda alaca de erlere goumlre fare nin
buumlyuumltuumllecek alan uumlzerinde gezinmesiyle yan sayfada buumlyuumltuumllmuuml goumlruumlntuuml elde edilmi tir
private function maskele(eMouseEvent)void if(zoomYap) if((mouseXgt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) )
maskex=0
img2visible=false img1visible=true img1x=(applicationwidth2)-mouseX img1y=-1mouseY else if((mouseXlt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) ) maskex=applicationwidth2 img1visible=false img2visible=true img2x=-1mouseX img2y=-1mouseY
Sayfa goumlruumlntuumllerinin maskelenmesinden sonra resimlerin kaynak dosyadan ccedilekilerek
ekrana buumlyuumltuumllmuuml hallerinin yans t lmas iccedilin a a daki fonksiyon olu turulmu tur
87
private function zoom()void
if(zoomerlabel==+) zoomerlabel=- if(img2source=aimage[bookcurrentPageIndex2]zoom) yuklemevisible=true
img2addEventListener(EventCOMPLETEbuyuk2_yuklendi) img2source=aimage[bookcurrentPageIndex2]zoom
if(aimagelength()gtbookcurrentPageIndex2+1) img1addEventListener(EventCOMPLETEbuyuk1_yuklendi)
img1source=aimage[bookcurrentPageIndex2+1]zoom
zoomYap=true else if(zoomerlabel==-)
zoomerlabel=+
setGorunum()
private function setGorunum()void zoomYap=false zoomerlabel=+ img1visible=false img2visible=false
88
6 SONUCcedil
Web 20 ak m ve zengin internet uygulamalar guumlnuumlmuumlz popuumller konular ndand r Bu
nedenle tez ccedilal mas
bu amaca youmlnelik olarak son teknolojiler kullan larak geli tirilmi tir
AJAX teknolojisi kullan larak kullan c n n istekleriyle sayfan n tamamen yenilenmeden
ilgili i lemin yuumlruumltuumllebilmesi sa lanmaktad r Geli tirilen sistem ccedilapraz taray c deste ine sahip
esnek ve kolay kullan labilir bir yap ya sahip oldu undan herhangi bir programlama bilgisine
sahip olmadan ki ilerin istenilen de i iklikleri yap labilece i bir alt yap ya sahiptir Bu ccedilal ma
nda en yenilikccedili internet yaz l mlar konusunda uygulama yapmak isteyen yaz l m
uzmanlar na kaynak te kil edecek bir ccedilal ma gerccedilekle tirilmi tir Yaz l m geli tiricileri ve
yaz l m mimarlar AJAX Flash Flex Appletler ve di er teknolojileri uygulamalar na kolayca
entegre edebilirler
Bu tez ccedilal mas kapsam nda Web de Ajax Tekni inin Bant Geni lik Optimizasyonuna
Etkisi ba l kl bir makale haz rlanm t r [85] Bu makalede Web Performance Suite 355941
program yla AJAX n performans testi yap lm t r Bu oumllccediluumlmler sonucunda elde edilen de erler
goumlstermi tir ki bir ebeke uumlzerinden goumlnderilecek sinyalin en duuml uumlk ve en yuumlksek frekanslar
aras nda gereksiz yere kullan lan aral n optime edilmesinde AJAX etkili bir youmlntemdir
AJAX n ccedilal ma prensibi sayesinde uygulamalar en iyi performansla gerccedilekle tirilir
AJAX teknolojisinin hala geli imi devam etmekte oldu undan baz eksik yanlar da
bulunmaktad r Oumlrne in taray c
uumlzerindeki Geri
fonksiyonu bazen beklendi i gibi
ccedilal mayabilir Dinamik olarak olu turulan sayfalar taray c n n oumlnceden i ledi i sayfalar
youmlneten mekanizmalar na kendini otomatik olarak kaydetmez bu yuumlzden taray c n n Geri
tu una bas ld nda istenen sayfa elde edilemeyebilir [86] Ba ka bir dezavantaj ise AJAX ile
olu turulan iccedileri in kodlar kaynak kodlar k sm nda goumlruumllememektedir Ayn zamanda Google
ve Yahoo gibi arama motorlar n n Web sayfalar na goumlnderdi i robot yaz l mlar da bu kodlar
goumlrememektedir Dolay s yla tamamen AJAX ile olu turulan iccedilerik arama motorlar n n sonuccedil
sayfalar nda listelenmezler Guumlnuumlmuumlzde yap lan Web sayfas n n arama motorlar nda
goumlruumlntuumllenmesi oldukccedila oumlnemlidir Fakat bir Web uygulamas ziyaretccedililer hakk nda oumlnemli
ki isel bilgilere sahipse bu bilgilerin arama motorlar nda herkes taraf ndan goumlruumlntuumllenmesini
sa lamas bir avantaja doumlnuuml uumlr [87] AJAX yerinde ve do ru bir ekilde kullan ld nda
uygulamalarda performans art n sa lar
Bu tez ccedilal mas nda Web 20 ak m n n ortaya ccedil k nedenleri ve RIA konseptine
duyulan ihtiyac n temeli irdelenmi tir Web 20 ak m nda oumlne ccedil kan uygulamalar ve ccedilal ma
sistematikleri incelenmi tir Oumlne ccedil kan bu uygulamalar n site tasar m nda dikkat ccedileken
89
oumlzelliklerine de inilmi tir AJAX teknolojisini olu turan bile enler incelenmi tir Bu inceleme
ve ara t rma sonucunda zengin internet uygulamalar na oumlrnek te kil edecek Web 20 ak m n n
ccedilekirde i olan AJAX teknolojisi kullan larak F rat Uumlniversitesi iccedilin ccedilevrimiccedili bir katalog
tasarlanm t r Bu tasar mda flexBook flexbookpage landscape wrapper zoomer gibi ek
bile enler kullan lm t r Navigasyon paneli tasarlanm t r Olu turulan tasar mda yerli ve
yabanc literatuumlr taramas yap larak emsallerindeki kullan l oumlzellikler projeye dahil edilmi tir
Projenin geli tirilmesi s ras nda izlenen ad mlar resimlenerek ortaya bir yol haritas ccedil kar lm t r
61 Oumlneriler
Bu tez ccedilal mas esas al narak ileride bu uygulamalar mobil cihazlar arac l yla
kullan labilirli i uumlzerine ara t rmalar suumlrduumlruumllebilir AJAX n uumlstuumln oumlzellikleri sayesinde Web
uumlzerinden yay nc l k ve mobil ileti im alanlar farkl bir boyut kazanm t r Birccedilok irket art k
ta nabilir cihazlar iccedilin Web 20 uygulamalar n AJAX la optimize etmeye ba lam t r Yeni bir
teknoloji olan AJAX la ta nabilir cihazlardaki performans bellek youmlnetimi s n rl tu giri i
gibi sorunlar n uumlstesinden gelinmesi hedeflenmelidir
AJAX kullan larak IDE (Integrated Development Environment) entegrasyonu Eclipse
iccedilin ba lant lar yaz labilir veya yap m servisi arac l yla do rudan IDE den yap m paketleri
geli tirilebilir Guumlnuumlmuumlzde oldukccedila popuumller olan accedil k kaynak kodlu yaz l m geli tirme
ortamlar nda entegre uygulamalar geli tirilebilir
Kullan c Arabirimi aretleme Beti i (User Interface Markup Language) s n f na dacirchil
edilecek gelece in en popuumller web tabanl teknolojilerinden biridir Flex geli tiricileri Adobe
Flex Builder - IDE ortam nda LiveCycle Data Services Java Coldfusion ASPNET JSP PHP
gibi popuumller web programlama dilleri yard m yla etkile imli ve guumlvenli web tabanl projeler
geli tirilebilir [82]
90
KAYNAKLAR
1 nternet Web 20 httptrwikipediaorgwikiWeb_20 Eri im tarihi 03092008
2 Oumlzer Z Web Teknolojileri ve AJAX Seminer Ccedilal mas Fen Bilimleri Enstituumlsuuml sf2
2007
3 nternet Web 20 Nedir wwworeillynetcompubaoreillytimnews20050930what-is-
web-20html Eri im tarihi 04102008
4 nternet httpravenyoungspaceslivecomblogcns17376F4C11A91E0E3717entry
Eri im tarihi 03092008
5 Mcluhan M Povers B R Ccedileviren Bahar Oumlcal Duumlzgoumlren Global Koumly 21 Yuumlzy lda
Yeryuumlzuuml Ya am nda ve Medyada Meydana Gelecek Doumlnuuml uumlmler Scala Yay nc l k 2001
6 nternet RIA konsepti httpwwwademaktepecomGunlukDetayaspxId=122 Eri im
Tarihi 26062008
7 Onat F A man Ouml K l ccedil A Sosyal A Sitelerinin Reklam Ve Halkla li kiler Ortamlar
Olarak De erlendirilmesi Sayfalar 3-6 2008
8 nternet httpi8tinypiccom6kymb0kgif Eri im tarihi 11072008
9 nternet DFA httpwwwdoubleclickcomproductsdfaindexaspx Eri im tarihi
14022009
10 nternet Adsensecom
httpswwwgooglecomadsensesupportbinanswerpyanswer=9712amptopic=13488 Eri im
tarihi 15112008
11 nternet DoubleClickcom wwwdoubleclickcom Eri im 13102008
12 nternet Adsense ho geldiniz wwwgooglecomadsense Eri im 18112008
13 nternet Flicker Tan m httptrwikipediaorgwikiFlickr Eri im tarihi 09032009
14 nternet Flicker Foto raf Payla m Sitesi httpwwwflickrcom Eri im 18022009
15 nternet BitTorent httptrwikipediaorgwikiBitTorrent Eri im tarihi 05012009
16 nternet Bittorent kulan m rehberi httpwwwbittorrentcombtusersguidesbeginners-
guide Eri im tarihi 05012009
17 nternet Bittorent kullan m k lavuzu httpwwwshukkocombittorrent_kilavuzu Eri im
tarihi 05012009
18 nternet Bittorent ccedilal ma mant httpwwwforumelbizbittorent-nedirgne-ise-
yarargresimli-detayli-super-anlatim-
t12836htmls=17f7b3147d97799d31c32b09e87d43e4ampamp Eri im tarihi 05012009
19 nternet Soumlzluumlk
91
httpwwwparliamentvicgovauSARCE-DemocracyFinal_ReportGlossaryhtm Eri im
tarihi 05012009
20 FU F LIU L WANG L Empirical Analysis of Online Social Networks in the Age of
Web 20 2007 Physica A Statistical Mechanics and its Applications Volume 387 Issues 2-3
Sayfalar 675-684
21 nternet Facebook httptrwikipediaorgwikiFacebook Eri im tarihi 06012009
22 nternet Facebook makale httpturkinternetcomhaberyazigosterphp3yaziid=22787
Eri im tarihi 06012009
23 nternet Facebook istatistiksel bilgiler
httpwwwinsidefacebookcom20090107facebook-growth-continuing-surpasses-150-
million-monthly-active-users Eri im tarihi 06012009
24 nternet Peter Thiel Facebook haberleri
httpwwwbusinessweekcomtechnologycontentmar2009tc2009031_743025htm Eri im
tarihi 06012009
25 nternet Blog httptrwikipediaorgwikiBlog Eri im tarihi 13022009
26 nternet Technorati httptechnoratimediacom Eri im tarihi 13022009
27 nternet Blog ara t rmas httpwwwmmistanbulcommakaletitlebloglarin-satin-alma-
kararlarina-etkisi-uzerine-bir-arastirma Eri im tarihi 13022009
28 nternet Wiki nedir httpyunushacettepeedutr~b0343579baglantilerwikinedirhtm
Eri im tarihi 13022009
29 nternet nternette wikinin yeri
httpogrencihacettepeedutr~besstindexphp20080603internette-wikinin-yeri Eri im
tarihi 14022009
30 Bergstedt S Wiegreffe S Wittmann J Moller D Content Management Systems and e-
Learning-Systems
A Symbiosis Proceedings of the The 3rd IEEE International Conference
on Advanced Learning Technologies (ICALT 03)
31 nternet ccedilerik Youmlnetim Sistemleri
httptrwikipediaorgwikiC4B0C3A7erik_yC3B6netim_sistemi Eri im tarihi
17022009
32 nternet ccedilerik Youmlnetim Sistemleri httpwwwmsxlabsorgforuminternet-bilgisayar-
dunyasi22262-icerik-yonetim-sistemi-cms-content-management-systemhtml Eri im tarihi
17022009
33 nternet Web 20 Tasar m Araccedillar httpwwweburhancomhazir-web-20-tasarim-
araclari Eri im tarihi 06022009
92
34 nternet Tasar m rehberi httpwwwhasanyalcincomweb-20-tasarim-rehberi-yansima-
ikon-ve-flaslarref=GuzelsTV Eri im tarihi 06022009
35 nternet AJAX kaynak makalesi
httpadaptivepathcompublicationsessaysarchives000385php Eri im tarihi 06022009
36 Keith J Bulletproof Ajax New Riders yay nc l k Sayfa 3 2007
37 Zakas N C McPeak J Fawcett J Professional Ajax 2nd Edition Wiley Publishing Inc
Sayfalar 5-18 2007
38 Gehtland J Galbraith B Almaer D Pragmatic Ajax A Web 20 Primer The Pragmatic
Programmers LLC sf1 2005
39 Babin L Beginning Ajax with PHP From Novice to Professional Apress Yay nc l k
Sayfa 6 2007
40 Crane D B beault B Sonneveld J Goddard T Gray C Venkataraman R Ve Walker J
Ajax in Practice Manning Publications Co Sayfalar 56 2007
41 Eichorn J Understanding AJAX Using JavaScript to Create Rich Internet Applications
August 11 2006 Sayfalar5-50
42 Ballard P SAMS Teach Yourself Ajax in 10 Minutes Sayfalar 6-78 28 Nisan 2006
43 nternet httpwwwipucuwebtraspders17php Eri im tarihi
44 Ullman C Dykes L Beginnig AJAX Wiley Publishing Inc Sayfa 44-100 2007
45 Zakas N C McPeak J Fawcett J Professional Ajax Wrox Press Chapter 2 Ajax
Basics Ajax Communication Techniques 2006
46 nternet Cross-Browser (Ccedilapraz Taray c Deste i) httpblogceyhunaksancomcross-
browser-capraz-tarayici-destegi Eri im 11032009
47 nternet
httpwwwyazgelistirnetviewtopicphpp=160ampsid=a49d3c26dd8e14e02e65bb222d6bcc39
Eri im 31032009
48 Jacobi J Fallows J R Pro JSF and Ajax Building Rich Internet Components Apress
Sayfa 175 2006
49 Schutta N T Asleson R Pro Ajax and Java Apress Sayfa 10 2006
50 Lauriat S M Ajax Architecture and Best Practices Pearson Education Inc Sayfa 25
2008
51 Powers S Adding Ajax OReilly yay nc l k June 01 2007
52 nternet Asenkron ve Senkron Meselesi httpAJAX-trcomasenkron-ve-senkron-meselesi
Eri im tarihi 02112008
53 Holzner S Ajax For Dummies Wiley Publishing Inc sf 40 2006
93
54 nternet httpwwwecma-internationalorgpublicationsfilesECMA-STEcma-262pdf
Eri im tarihi 06032009
55 Darie C Brinzarea B Chereche -To a F Bucica M AJAX and PHP Building
Responsive Web Applications Packt Publishing Sayfa42 2006
56 Olson S D Ajax on Java OReilly Yay nc l k Chapter 2 February 23 2007
57 nternet httpiibferciyesedutrggwebjavascriptpdf Eri im tarihi 06032009
58 nternet httpwwwmutasyonnetkitaplarasp hakk oumlcal javascript ders notu sf8 Eri im
tarihi 06032009
59 nternet httpwwwbilgisayarogrencomjava5doc Eri im tarihi 06032009
60 Asleson R Schutta N T Foundations of Ajax 2006 sf29
61 Wells C Securing Ajax Applications O Reilly Media Inc sf86 July 2006
62 nternet httpwwww3schoolscomdomdom_introasp Eri im tarihi 19032009
63 nternet httpwwww3orgTRREC-DOM-Level-1introductionhtml Eri im tarihi
19032009
64 nternet httpwwwberkerpeksagcomblogdom-document-object-model-belge-nesne-
modeli Eri im tarihi 19032009
65 nternet httpwwwrssnedircomxml_nedirphp Eri im tarihi 19032009
66 Jacobs S Beginning XML with DOM and Ajax From Novice to Professional Apress
Yay nc l k sf2631 2006
67 nternet
httpwwwcclubmetuedutrnenedirXML+(Extensible+Markup+Language)+Nedir3F
Eri im tarihi 20032009
68 nternet httpbelgelerorgelkitabixmldoc-howto_structhtml Eri im tarihi 20032009
69 nternet httpwwwverivizyoncomdetailaspcid=149 Eri im tarihi 20032009
70 nternet httpwwwbilgisayardershanesicomxml1htm Eri im tarihi 21032009
71 Johnson D White A Charland A ENTERPRISE AJAX Strategies for Building High
Performance Web Applications Prentice Hall Yay nc l k Sayfa 108 2008
72 nternet httpwwww3orgTRxhtml1dtds Eri im tarihi 01042009
73 nternet httpwwwcsharpnedircommakalegosteraspMId=51 52 Eri im tarihi
01042009
74 nternet httpofficemicrosoftcomtr-trinfopathHP010967301055aspx Eri im tarihi
01042009
75 nternet
httpwwwkodpaylascomviewtopicphpt=959ampsid=e5167bdea935943ed9bbdc91ee218c53
Eri im tarihi 01042009
94
76 nternet httpwwww3schoolscomXhtml Eri im tarihi 02042009
77 nternet httpwwwzvonorgxxlXMLTutorialOutput_turexample6html Eri im tarihi
02042009
78 nternet httpwwwbidbituedutrd=837 Eri im tarihi 03042009
79 nternet httpwwwcssnedircom Eri im tarihi 03042009
80 nternet httptrwikipediaorgwikiXSLT Eri im tarihi 03042009
81 nternet httpwwwbilisim-kulubucomsozluksozlukphpe=XSLT Eri im tarihi
08042009
82 nternet httpwwwsanalkursnetadobe-flex-nedir--1081html Eri im tarihi 10042009
83 nternet httpwwwadobecomtrproductsflex Eri im tarihi 11042009
84 nternet httpwwwtrflexcomp=4 Eri im tarihi 11042009
85 Oumlzer Z Varol A Web de Ajax Tekni inin Bant Geni lik Optimizasyonuna Etkisi
Bilimde Modern Youmlntemler Sempozyumu 2008
86 nternet httptrwikipediaorgwikiAJAX(programlama) Eri im tarihi 01062009
87 nternet httpajax-trcomajaxi-anlamak Eri im tarihi 01062009
95
OumlZGECcedilM
Zeynep OumlZER AYDO MU
zeynep_ozermsncom
F rat Uumlniversitesi Teknik E itim Fakuumlltesi
Elektronik Bilgisayar E itimi Boumlluumlmuuml
ELAZI
1983 y l nda Elaz da do du lk orta ve lise ouml renimini Elaz da tamamlad ktan
sonra 2002 y l nda F rat Uumlniversitesi Teknik E itim Fakuumlltesi Elektronik Bilgisayar E itimi
Bilgisayar Ouml retmenli i Boumlluumlmuuml nuuml kazand 2006 y l nda bu boumlluumlmden mezun oldu 2006
y l nda F rat Uumlniversitesi Fen Bilimleri Enstituumlsuuml Elektronik Bilgisayar E itimi Ana Bilim Dal
Bilgisayar Sistemleri Bilim Dal nda yuumlksek lisans e itimine ba lad 2007 y l ubat ay nda
Elaz n Karakoccedilan ilccedilesinin Yenice koumlyuumlnde h J Kd Uumlt m Mahir Oumlzdemir lkouml retim
Okulu nda Bilgisayar Ouml retmeni olarak goumlreve ba lad uan Elaz Korgeneral Hulusi Say n
Lisesi nde Bilgisayar Ouml retmeni olarak goumlrevini suumlrduumlrmektedir Yabanc dili ngilizce dir
Fatih AYDO MU ile evlidir
96
EK
Katalog ccedilal mas n n uygulama dosyas olan catamxml kullanmxml ve
imagepagemxml dosyalar n n kaynak kodlar a a daki gibidir
Catamxml
ltxml version=10 encoding=utf-8gt
ltmxApplication xmlnsmx=httpwwwadobecom2006mxml
layout=absolute
xmlnscontrols=qscontrols
backgroundColor=FFFFFF
creationComplete=init() color=FFFFFF xmlnslocal= xmlnscomp=comp
horizontalScrollPolicy=off verticalScrollPolicy=off borderColor=050505 borderStyle=solid
borderThickness=2gt
ltmxStyle source=stylecss gt
ltmxScriptgt
lt[CDATA[
import mxutilsStringUtil
import mxrpcsoapLoadEvent
import mxcontrolsAlert
import mxrpceventsFaultEvent
import qscontrolsFlexBook
import qscontrolsflexBookClassesFlexBookPage
import qscontrolsflexBookClassesFlexBookEvent
import qscontrolsflexBookClassesWBookPageImpl
import qscachingContentCache
import mxrpceventsResultEvent
import mxrpchttpHTTPService
import mxcoreUIComponent
import mxmanagersPopUpManager
import compResimSec
import Kullan
import mxcoreScrollPolicy
import mxcollectionsArrayCollection
private var aXML
[Bindable]
private var resimlerArrayCollectioncomboresim
97
private var dataSetHTTPService
private var resimdiziArray=new Array()
private var zoomYapBoolean=false
private function init()void
maskex=0
maskey=0
maskewidth=applicationwidth2
maskeheight=applicationheight-40
addEventListener(MouseEventMOUSE_MOVEmaskele)
addEventListener(tamam sayfa_secildi)
dataSet = new HTTPService()
dataSeturl = (dataimagesxml)
dataSetresultFormat = e4x
dataSetsend()
dataSetaddEventListener(FaultEventFAULT onFault)
dataSetaddEventListener(ResultEventRESULT onResult)
var wNumber=new Number
var hNumber=new Number
w=Applicationapplicationwidth
h=Applicationapplicationheight
bookwidth=w
bookheight=h-40
yuklemevisible=false
yuklemesource=assetsloadinggif
yuklemeaddEventListener(EventCOMPLETEyukleme_yuklendi)
private function yukleme_yuklendi(eventEvent)void
yuklemex=(applicationwidth2)-100
yuklemey=(applicationheight-40)2
private function maskele(eMouseEvent)void
if(zoomYap)
98
if((mouseXgt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) )
maskex=0
img2visible=false
img1visible=true
img1x=(applicationwidth2)-mouseX
img1y=-1mouseY
else if((mouseXlt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) )
maskex=applicationwidth2
img1visible=false
img2visible=true
img2x=-1mouseX
img2y=-1mouseY
maskex=mouseX
maskey=mouseY
private function onFault(eEvent)void
trace(e)
private function onResult(eResultEvent)void
a=new XML(eresult)
bookcontent = dataSetlastResultimage
bookaddEventListener(FlexBookEventTURN_STARTloadContent)
bookaddEventListener(FlexBookEventTURN_ENDloadContent)
private function sayfa_secildi(eventResimSec)void
99
sayfatext=eventyeniResim
git()
mxcontrolsAlertshow(sseventyeniResim)
private function loadContent(eventFlexBookEvent)void
setGorunum()
var pageImagePage = ImagePage(eventrenderer)
pageload()
sayfatext=(bookcurrentPageIndex2)toString()
resimdizi[bookcurrentPageIndex]=pagethumbsource
mxcontrolsAlertshow(bookcurrentPageIndextoString())
private function buyuk1_yuklendi(eventEvent)void
yuklemevisible=false
img1width=applicationwidth
img1height=(applicationheight-40)2
img1x=0
img1y=0
private function buyuk2_yuklendi(eventEvent)void
yuklemevisible=false
img2width=applicationwidth
img2height=(applicationheight-40)2
img2x=0
img2y=0
private function tumsayfalar()void
Kullanshow_window(thisfalseapplicationwidth-10(applicationheight-60)2)
customMoveend()
customMoveplay()
private function zoom()void
if(zoomerlabel==+)
zoomerlabel=-
if(img2source=aimage[bookcurrentPageIndex2]zoom)
yuklemevisible=true
img2addEventListener(EventCOMPLETEbuyuk2_yuklendi)
100
img2source=aimage[bookcurrentPageIndex2]zoom
if(aimagelength()gtbookcurrentPageIndex2+1)
img1addEventListener(EventCOMPLETEbuyuk1_yuklendi)
img1source=aimage[bookcurrentPageIndex2+1]zoom
zoomYap=true
else if(zoomerlabel==-)
zoomerlabel=+
setGorunum()
private function setGorunum()void
zoomYap=false
zoomerlabel=+
img1visible=false
img2visible=false
private function next()void
mxcontrolsAlertshow(bookcurrentPageIndextoString() bookpageCounttoString())
if(bookcurrentPageIndex+1 lt bookpageCount)
mxcontrolsAlertshow(--resimdizi[bookcurrentPageIndex])
setGorunum()
bookturnToPage(bookcurrentPageIndex + 1)
private function previous()void
if(bookcurrentPageIndex gt 0)
setGorunum()
bookturnToPage(bookcurrentPageIndex -1)
private function git()void
var s_nouint = new uint
s_no=Mathfloor(uint(sayfatext)2)
101
if(s_nogt0 ampamp s_noltbookpageCount)
bookturnToPage(s_no)
setGorunum()
]]gt
ltmxScriptgt
lt-- 614x453 --gt
ltmxParallel id=customMove target=Kullangt
ltmxMove duration=2000 xTo=(100) 2 yTo=(200) 2 gt
ltmxWipeRight duration=2000 gt
ltmxParallelgt
ltmxVBoxgt
ltmxHBoxgt
ltcontrolsFlexBook id=book width=100 height=100 x=0 y=0 horizontalCenter=0
verticalCenter=0
animateCurrentPageIndex=true
showCornerTease=false
edgeAndCornerSize=150
itemRenderer=ImagePage
animatePagesOnTurn=true
itemSize=halfPage cornerRadius=0 themeColor=1D99E8
backgroundAlpha=10 alpha=10gt
ltcontrolsFlexBookgt
ltmxHBoxgt
ltmxHBox height=30 width=100 verticalAlign=middle
horizontalAlign=center color=B65F5F backgroundColor=121313gt
ltmxSpacer width=10gt
ltmxSpacergt
ltmxTextInput borderColor=FFFFFF width=34 height=24 id=sayfa
color=FFFFFF fontSize=11 text=0 alpha=001gt
ltmxButton click=git() color=ffffff fontWeight=bold fontSize=11
width=114 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label=Sayfaya Git themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxSpacer width=60gt
102
ltmxSpacergt
ltmxButton click=previous() color=ffffff fontWeight=bold fontSize=11
width=70 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label=Geri themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxButton click=next() color=ffffff fontWeight=bold fontSize=11
width=70 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label= leri themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxButton click=tumsayfalar() color=ffffff fontWeight=bold fontSize=11
width=134 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label=Tuumlm Sayfalar themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxButton id=zoomer click=zoom() color=ffffff fontWeight=bold
fontSize=14 width=44 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00
00] label=+ themeColor=EDF2F5 textRollOverColor=EDD617 fontFamily=Arialgt
ltmxSpacer width=5gt
ltmxHBoxgt
ltmxSpacer height=10gt
ltmxVBoxgt
ltmxCanvas id=maske x=224 y=168 width=200 height=168
verticalScrollPolicy=off horizontalScrollPolicy=off borderThickness=0 borderColor=000000
borderStyle=solidgt
ltmxImage id=img1 x=0 y=0gt
ltmxImage id=img2 x=40 y=0gt
ltmxCanvasgt
ltmxImage x=10 y=144 id=yuklemegt
ltmxApplicationgt
103
Kullanmxml
ltxml version=10 encoding=utf-8gt
ltmxTitleWindow xmlns= xmlnsmx=httpwwwadobecom2006mxml
creationComplete=on_creation_complete()
styleName=popupWindow showCloseButton=true
paddingBottom=0 paddingTop=0 paddingLeft=0 paddingRight=0
height=200 width=100 alpha=09 borderAlpha=1gt
ltmxScriptgt
lt[CDATA[
import mxcontrolsAlert
import mxcollectionsArrayCollection
import mxrpceventsResultEvent
[Bindable]
private var sayfalarArrayCollection
[Bindable]
private var introString =
import mxeventsCloseEvent
import mxmanagersPopUpManager
import mxcoreApplication
import mxeventsDragEvent
import mxmanagersDragManager
import mxcoreDragSource
import compResimSec
import koraxcontrolsColorPickerResimSecEvent
private var m_parentDisplayObject = null
private function myResult(eventResultEvent)void
sayfalar = eventresultsayfalarsayfa
private function sayfaac(eventEvent)void
wndwith_last_preved()
mxcontrolsAlertshow(myTileselectedItemgittoString())
uyeler = eventresultsayfalarsayfa
104
private function on_creation_complete()void
myHTTPsend()
private static var wndKullan = null
public static function show_window(parentDisplayObject
modalBooleanwNumberhNumber)void
if (wnd == null)
wnd = new Kullan()
wndaddEventListener(mxeventsCloseEventCLOSE on_close_event)
wndm_parent = parent
if (wndisPopUp)
PopUpManageraddPopUp(wnd DisplayObject(Applicationapplication) modal)
PopUpManagercenterPopUp(wnd)
else
PopUpManagerbringToFront(wnd)
wndstart_init()
wndx=0
wndy=0
wndwidth=w
wndheight=h
wndmyTilewidth=w-20
wndmyTileheight=h-40
private function with_last_preved()void
if (m_parent = null) m_parentdispatchEvent(new ResimSec(tamam
myTileselectedItemgit))
private static function on_close_event(eventCloseEvent)void
if (wnd == null) return
PopUpManagerremovePopUp(wnd)
wnd = null
105
private function yardim()void
Kullanshow_window(thisfalse)
]]gt
ltmxScriptgt
ltmxHTTPService id=myHTTP url=dataonizlexml
result=myResult(event) showBusyCursor=truegt
ltmxTileList id=myTile dataProvider=sayfalar change=sayfaac(event)
itemRenderer=compUyeSayfasi width=100 height=147 rowHeight=110 columnWidth=120
rowCount=2gt
ltmxTitleWindowgt
106
ImagePagemxml
ltxml version=10 encoding=utf-8gt
ltmxCanvas xmlnsmx=httpwwwadobecom2006mxml width=600 height=400
xmlnscontrols=qscontrols
backgroundColor=FFFFFF horizontalScrollPolicy=off verticalScrollPolicy=offgt
ltmxstatesgt
ltmxState name=loadingStategt
ltmxAddChild position=lastChildgt
ltmxImage id=loadingContent horizontalCenter=0 verticalCenter=-6
source=assetsloadinggif gt
ltmxAddChildgt
ltmxStategt
ltmxstatesgt
ltmxtransitionsgt
ltmxTransition fromState= toState=loadingStategt
ltmxFade alphaTo=1 target=loadingContent duration=1000gt
ltmxTransitiongt
ltmxTransition toState= fromState=loadingStategt
ltmxSequencegt
ltmxFade alphaTo=0 target=loadingContent duration=1000gt
ltmxRemoveChildAction target=loadingContent gt
ltmxSequencegt
ltmxTransitiongt
ltmxtransitionsgt
ltmxScriptgt
lt[CDATA[
import mxcontrolsAlert
private var _loadedBoolean = false
public function load()void
if(_loaded)
return
_loaded = true
fullsource = datasourcetoString()
mxcontrolsAlertshow (fullsource)
107
currentState = loadingState
]]gt
ltmxScriptgt
ltcontrolsSuperImage left=0 right=0 top=0 bottom=0 id=thumb
source=datathumbtoString() gt
ltcontrolsSuperImage left=0 right=0 top=0 bottom=0 id=full complete=currentState = gt
ltmxCanvasgt
This document was created with Win2PDF available at httpwwwwin2pdfcomThe unregistered version of Win2PDF is for evaluation or non-commercial use onlyThis page will not be added after purchasing Win2PDF
III
412 Macintosh ccedilin Flex Bu lder 3 (Standart ve Profesyonel) 77
5 CcedilEVR M Ccedil KATALOG TASARIMI F rat Uumlniversitesi Oumlrne i 78
6 SONUCcedil 88
61 Oumlneriler 89
KAYNAKLAR 90
OumlZGECcedilM
95
EK 96
IV
EK LLER L STES
Sayfa
ekil 21 Web 20 kavram
2
ekil 22 Web 20 ak m nda oumlne ccedil kan uygulamalar 3
ekil 23 Doubleclick ve Google Adsense sitelerinin logolar 4
ekil 24 Flickr sitesinin logosu 5
ekil 25 ccedilerik da t m sitelerinde bittorrent site logosu 5
ekil 26 Torrent program n n anasayfas
6
ekil 27 Torrent program n n arayuumlzuuml 7
ekil 28 Facebook kullan c say s n n aylara goumlre da l m grafi i 9
ekil 29 Aylara goumlre facebook ve myspace site analizi 10
ekil 210 Vikipedi oumlzguumlr ansiklopedi sitesinin logosu 12
ekil 211 Oumlrnek etiket bulutu 14
ekil 212 Yans mal logo oumlrne i 15
ekil 213 Web 20 da buton oumlrnekleri 15
ekil 214 Web 20 da arka plan oumlrnekleri 15
ekil 215 Web 20 da ccedilerccedileve yap s na oumlrnek 16
ekil 216 Web 20 da menuuml oumlrne i 16
ekil 31 Jesse James Garrett in makale goumlruumlntuumlsuuml 17
ekil 32 Google Suggest ekran goumlruumlntuumlsuuml 18
ekil 33 Google Maps ekran goumlruumlntuumlsuuml 18
ekil 34 Geleneksel sunucularda istekcevap modeli 20
ekil 35 AJAX n asenkron istekcevap modeli 20
ekil 36 Klasik Web uygulamalar nda t kla-bekle doumlnguumlsuuml 21
ekil 37 T kla-T kla interaktif AJAX uygulamas
21
ekil 38 Geleneksel Web ileti im modeli ile AJAX ileti im modeli 21
ekil 39 Web uygulamas ndaki cevap ak
22
ekil 310 AJAX uygulamalar ndaki istek ak
22
ekil 311 Normal Web ile AJAX uygulamalar n n kar la t rmas
23
ekil 312 Geleneksel istekcevap (requestresponse) youmlntemi 23
ekil 313 Standart AJAX etkile imi 32
ekil 314 E zamanl olmayan ileti im modeli 35
ekil 315 E zamanl ileti im modeli 36
ekil 316 Javascript nesneleri 44
V
ekil 317 DOM a accedil yap s
46
ekil 318 AJAX oumlrne i 49
ekil 319 sonuchtml sayfas n n ekran ccedil kt s
51
ekil 320 denemexml dosyas n n a accedil yap s
53
ekil 321 XML belgesi 55
ekil 322 Oumlrnek bir XML dokuumlman yap s
56
ekil 323 denemexsd nin ekran goumlruumlntuumlsuuml 65
ekil 41 Flex uygulamalar n n i lem ak emas
75
ekil 42 Flex arayuumlzuuml 76
ekil 51 Kodlama algoritmas
79
ekil 52 Katalo un ilk sayfas n n ekran goumlruumlntuumlsuuml 81
ekil 53 Katalo un 23 sayfa goumlruumlntuumlsuuml 82
ekil 54 Katalo un sayfa ccedilevirme efektli goumlruumlntuumlsuuml 83
ekil 55 Katalo un navigasyon ccedilubu u 84
ekil 56 Tuumlm Sayfalar duuml mesi t kland ndaki ekran goumlruumlntuumlsuuml 85
ekil 57 Zoom oumlzelli i 86
VI
TABLO L STES
Tablo 21 Facebook ve myspace in buumlyuumlme tablosu 10
Tablo 31 Standart XHR nesnesinin oumlzellikleri 30
Tablo 32 Standart XHR nesnesinin fonksiyonlar
31
Tablo 33 De i ken tuumlrleri 41
Tablo 34 leccediller ve goumlrevleri 41
Tablo 35 kili i leccediller 42
Tablo 36 DTD karakterleri ve accedil klamalar
61
Tablo 37 DTD ccedilindeki niteliklerin de er ve accedil klamalar
62
Tablo 38 Varsay lan de erler ve accedil klamalar
62
Tablo 39 XML Belgelerinde kullan lan varl k bildirimleri 67
VII
KISALTMALAR L STES
AJAX Asenkron JavaScript ve XML
API Application Programming Interface (Uygulama Program Arayuumlzuuml)
ASP Active Server Pages (Aktif Sunucu Sayfalar )
CDNs Content Distributed Networks ( ccedilerik Da t c A lar)
CMS Content Management System ( ccedilerik Youmlnetim Sistemi)
CGI Common Gateway Interface (Genel Geccedili Arayuumlzuuml)
CSS Cascading Style Sheets (Basamakl Stil Sayfalar )
DFA DART for Advertisers
DOM Document Object Model (Doumlkuumlman Nesne Modeli)
DTD The Document Type Definition (Dokuumlman Tipi Tan mlama)
DWR Direct Web Remoting ( Direkt Web Eri imi)
ECMA European Computer Manufacturers Association (Avrupa Bilgisayar
Uumlreticileri Birli i)
GOumlBL GNU Oumlzguumlr Belgeleme Lisans
HTML Hyper Text Markup Language (Yard ml Metin aretleme Dili)
HTTP Hypertext Transfer Protocol (Yard ml Metin Aktar m Protokoluuml)
IDE Integrated Development Environment (Tuumlmle ik Geli tirme Ortam )
JSP Java Server Pages (Java sunucu Sayfalar)
LAN Local Area Network (Yerel Alan A )
MIYS E-ticaret ve Muuml teri li kileri Youmlnetim Sistemleri
MSN Microsoft Network
OOP Object Oriented Programming (Nesne Youmlnelimli Programlama)
PHP Hypertext Preprocessor (Yard ml Metin Oumlni leme)
PIs Processing Instructions ( lem Accedil klamalar )
RIA Rich Internet Applications (Zengin nternet Uygulamalar )
VIII
RPC Remote Procedure Call (Uzaktan Yordam Ccedila rma)
SAX Simple API for XML (XML iccedilin Basit API)
WIKI What I Know is (Ne Biliyorsam)
W3C World Wide Web Consortium (Duumlnya Ccedilap nda A Birli i)
XML eXtensible Markup Language (Geli tirilebilir aretleme Dili)
XHR XMLHttpRequest
XHTML Extensible HyperText Markup Language (Geli tirilebilir Yard ml Metin
aretleme Dili)
XSD eXtensible Schema Document(Geni letilebilir ema Dokuumlman )
XSL Extensible Stylesheet Language (Geli tirilebilir Biccedilimlendirme Dili)
XSLT Extensible Stylesheet Language Transformations (Geli tirilebilir
Biccedilimlendirme Dil Doumlnuuml uumlmleri)
IX
OumlZET
Yuumlksek Lisans Tezi
AJAX TEKNOLOJ S KULLANARAK CcedilEVR M Ccedil
KATALOG TASARIMI
Zeynep OumlZER AYDO MU
F rat Uumlniversitesi
Fen Bilimleri Enstituumlsuuml
Elektronik-Bilgisayar E itimi Anabilim Dal
2009 Sayfa 107
Gerccedilekle tirilmi olan bu uygulama kapsam nda Flex program ve Web 20 n
ccedilekirde ini olu turan AJAX (Asynchronous JavaScript and XML) teknolojisi kullan larak F rat
Uumlniversitesini tan tan kolayl kla guumlncellenebilen Zengin nternet Uygulamalar na (RIA- Rich
Internet Applications) oumlrnek bir ccedilevrimiccedili katalog tasar m ve gerccedilekle tirimi yap lm t r
Projenin gerccedilekle tirim a amalar nda kullan lan teknolojilerin ve izlenen youmlntemlerin
anlat mlar n iccedileren bir yol haritas olu turulmu tur
Anahtar soumlzcuumlkler AJAX RIA Web 20 ccedilevrimiccedili katalog e-dergi
X
ABSTRACT
Master Thes s
ONLINE CATALOG DESIGN USING AJAX TECHNOLOGY
Zeynep OumlZER AYDO MU
F rat University
Graduate School of Natural and Applied Sciences
Department of Electronic and Computer Education
2009 Page 107
Embracing in this comparison F rat University is introduced by using Flex program and
AJAX (Asynchronous JavaScript and XML) technology which forms Web 20 Also RIA (Rich
Internet Applications) is easily renowated which is instance for online catalog design A road
map including realization of the project and tracing methods are illustrated
Keywords AJAX RIA Web 20 online catalog e-journal
1
1 G R
Web in geli im suumlrecinde ccedile itli youmlntemler kullan l r Bu youmlntemlerin farkl amaccedillara
hizmet etmeye ba lamas yla Web te ak mlar meydana gelmi tir Bu ak mlardan ilki Web 10
ak m olarak adland r l r Bu ak mda kullan c lar bilgilendirmeye youmlnelik iccedilerik sunumu
yap lmaktad r [1]
Web 20 ak m ise internet sitelerinin bilgi bar na olmas ndan i leyen platformlara
ta nmas
olarak tan mlanabilir Web 20 RIA (Rich Internet Applications- Zengin nternet
Uygulamalar ) i lemleri internet sunucu mimarisi temeline dayanmaktad r RIA da beraberinde
kulland AJAX Flex gibi teknolojiler uumlzerine kuruludur [1]
Baz yeni teknolojilerle de i en World Wide Web duumlnyas Web 20 RIA AJAX
(Asynchronous JavaScript and XML- E zamanl olmayan JavaScript ve XML) terimleriyle izah
edilmektedir
11 Tez Ccedilal mas n n Amac
Bu tez ccedilal mas yla Web 20 n ccedilekirde ini olu turan AJAX (Asynchronous JavaScript
and XML) teknolojisi ve Flex program kullan larak F rat Uumlniversitesini tan tan kolayl kla
guumlncellenebilen Zengin nternet Uygulamalar na (RIA-Rich Internet Applications) oumlrnek bir
ccedilevrimiccedili (online) katalog tasar m yap lmas hedeflenmi tir Projenin gerccedilekle tirim
a amalar nda kullan lan teknolojilerin ve izlenen youmlntemlerin anlat mlar n iccedileren bir yol
haritas olu turulmas amaccedillanm t r Bu tez ccedilal mas sonucunda geli tirilen yaz l mla kolay
guumlncellenebilen katalog haz rlanmas na katk sa lanmas amaccedillanm t r
12 Tez Ccedilal mas n n Kapsam
Bu tez ccedilal mas 6 boumlluumlmden olu mu tur 1 Boumlluumlm giri i olu turmaktad r 2Boumlluumlmde
Web 20 ak m incelenecektir 3 Boumlluumlmde AJAX teknolojisi accedil klanacakt r 4 Boumlluumlmde
yaz l m gerccedilekle tirme arac olarak kullan lan Flex tan t lacakt r 5 Boumlluumlmde gerccedilekle tirilmi
ccedilevrimiccedili katalog hakk nda bilgi verilecektir 6 Boumlluumlmde ccedilal man n sonuccedillar
ve gelece e
youmlnelik oumlneriler bulunmaktad r
2
2 WEB 20 AKIMI
Ccedilo u teknolojilerde oldu u gibi yenilik aray ihtiyaccediltan do ar Yeni Web ak mlar n n
do u u da 2001 y l ndaki tuumlm duumlnyay etkileyen kriz sonras nda iflas eden irketlerin yeniden
aya a kalkma ccedilabalar n n bir sonucu olarak ortaya ccedil km t r [2 3] Web 20 ak m 2005 te ilk
kez OReilly ve MediaLive International aras nda gerccedilekle en bir beyin f rt nas s ras nda
uumlretilmi bir kavramd r [3] Web 20 kavram World Wide Web teknolojisinde kullan lan
de i en ve geli en e ilimlere verilen bir ad olarak da tan mlanabilmektedir
ekil 21 Web 20 kavram
[4]
Web 20 kavram ekil 21 de goumlsterildi i uumlzere Web bir uygulama platformu ve sosyal
etkile imli olma oumlzelliklerini bar nd r r Ccedilevrimiccedili hayat n ba lang c ve devam n temsil eder
Say sal ortamda kendini ifade etme imkacircn sunar Kullan c lar (oku-yaz oumlzelli i ile) Web te
kat l mc kimlik kazan r
Asl nda Web 20 ortam n 1964 y l nda McLuhan Global Koumly terimini kullanarak
ortaya atm t r McLuhan Global Koumlyuuml gelecekte ileri teknolojiye geccedililmesiyle ve toplumlar
aras nda s n rlar n kalkmas yla duumlnyan n her kouml esinde teknolojiyi kullanan herkesin co rafi
s n rlar ve s n rlamalar olmaks z n diledikleri ki iyle ileti im kurabilecekleri
haberle ebilecekleri ve payla mda bulunabilecekleri bir ortam olarak tan mlam t r [5]
Mc Luhan n n tan m ndan guumlnuumlmuumlze kadar geccedilen suumlreccedil iccedilinde kullan c ihtiyaccedillar
da
de i im ve geli im goumlstermi tir Bu ihtiyaccedillar kar lamak iccedilin genel olarak internet
uygulamalar n n daha zengin bir arayuumlz ile sunulmas n sa layan uygulamalar Zengin nternet
Uygulamalar ad alt nda k sa zaman oumlnce hayat m za girmi tir
RIA uygulamalar s radan HTML web uygulamalar ile standart masauumlstuuml uygulamalar
aras ndaki bo lu u dolduran bir geli tirme platformudur Web arayuumlzuumlnde basit HTML ile
3
s n rl kalmadan masauumlstuumlndeki zengin goumlrsel ouml eleri program niteli inde kullanabilecek her
tuumlrluuml araccedil RIA konseptini uygulamaktad r [6]
Kullan c lar art k iccedilerik uumlreticilerin s n rlar n kald rarak kullan c n n yan s ra kat l mc
olarak ta nitelendirilerek etkile imli bir rol uumlstlenmi lerdir nternetin bu yeni gereksinimlere
cevap vermesiyle ortaya ccedil kan Web 20 doumlnuuml uumlmuuml hem kullan c say s nda art a neden
olmu tur hem de kullan c lar n iccedilerikleri yani mesajlar olu turdu u ve payla t buumlyuumlk bir
guumlce doumlnuuml muuml tuumlr Bu guumlcuumln oumlnemini ccedilabuk anlayan kurulu lar mimarilerine AJAX da dacirchil
ederek oumlnce arama motorlar n Google Yahoo yu daha sonra MSN yi Hotmail i bloglar
(Myspace Bloggercom Blogcucom gibi) Youtube u Wikileri ve sosyal a sitelerini
(Facebook Twitter Orkut vb) ke fetmi lerdir Bu ke iflerin sonucunda McLuhan n Global
Koumly uumlnuumln 21 Yuumlzy lda tam olarak gerccedilekle ti i soumlylenebilir Bu interaktif siteler sayesinde
ayn anda milyarlarca ki inin rk dil din ya am tarz e itim ya cinsiyet statuuml goumlzetmeksizin
e zamanl payla mda bulunup kendi ccedilevreleri ve ba ka ccedilevrelerle ileti ime geccedilebilmektedirler
ekil22 de goumlsterilen irketler Web 20 ak m nda oumlne ccedil kan sitelerin oumlzellikle ccedilevrimiccedili
faaliyet goumlsteren reklacircm irketleri pazarlama ve ticari irketler perspektifinden bak ld nda da
oumlnemli bir potansiyele sahip kitle ileti im araccedillar olarak goumlruumlluumlr [7]
ekil 22 Web 20 ak m nda oumlne ccedil kan uygulamalar [8]
Kitle ileti im arac olarak kullan labilen bu uygulamalar iccedilin birccedilok geli tirme ortam
mevcuttur Adobe Flex AJAX Java Applet Adobe Flash ve Microsoft Silverlight uygulamalar
en ccedilok bilinen RIA uygulamalar d r A a da da bu uygulamalarla olu turulmu Web 20
platformunda oumlne ccedil kan popuumller uygulama oumlrnekleri incelenecektir [7]
4
21 Web 20 Platformunda Oumlne Ccedil kan Popuumller Uygulamalar
kinci nesil internet hizmeti olarak literatuumlre giren Web 20 ak m yla internet sitelerinin
ccedilehresi de i mi tir nternet siteleri art k masauumlstuuml uygulamalar ile internet uygulamalar
aras nda bir koumlpruuml goumlrevi uumlstlenmi tir A a da bu ak m n popuumller uygulamalar ndan oumlrnekler
bulunmaktad r
211 Double Click - Google AdSense
Google firmas na ait iki uygulama da reklacircm verenlerin ve yay nc lar n web uumlzerinden
reklacircm hizmeti sunmas n sa layan sitelerdir Her reklacircmc n n hedefi tuumlketicilerin isteklerine
uygun ccediloumlzuumlmler sunmakt r Bu ccediloumlzuumlm ise Web 20 la reklacircmlar n profilini de i tirmi tir Art k
istenmeyen kendili inden accedil lan reklacircm pencerelerinin yerini kullan c n n bilgisayar na
yerle tirilmi ccedilerezlerden ccedilekti i bilgilere dayanarak kullan c n n ilgisini ccedilekebilece ini tahmin
etti i rahats z edici olmayan metin ya da resim tabanl
reklacircmlar alm t r
DoubleClick in di er reklacircm firmalar ndan ayr lan youmlnuuml reklacircmc lar iccedilin DART
oumlnerisiyle k saca DFA (DART for Advertisers) ile reklacircm youmlnetimi ve servis ccediloumlzuumlmlerinde
kullan c lar na dijital pazarlama programlar n n tuumlmuumlnuuml kapsayan youmlnetimi kolay daha iyi bir
arayuumlze sahip h zl geni bir arama sistemine sahip de eri artan sitelerin trafik ak n
belirleyen bir ccediloumlzuumlm olmu tur DoubleClick daha ccedilok grafiksel reklacircmlar yay nlamaktad r
Oumlnceleri Web 10 uygulamalar aras nda say lan bu site Web 20 doumlnuuml uumlmuumlnuuml ba ar yla
gerccedilekle tirmi tir [9]
Google AdSense ise web sitesi yay nc lar n n site iccedileri iyle alakal dinamik ve goumlze
batmayan Google reklacircmlar n
web sitelerinde goumlstererek kullan c lar n bu reklacircmlara
t klamalar yla para kazanmalar n sa laman n h zl ve kolay bir yoludur Uumlcretsiz olan bu
program sayesinde her t klama ve goumlsterim iccedilin site sahiplerine oumldeme yap l r [10] Bu
uygulamalar sayesinde Web de daha ak ll bir sisteme do ru youmlnelim ba lam t r
ekil 23 Doubleclick ve Google Adsense sitelerinin logolar [11 12]
5
212 Flickr
Yahoo nun sundu u bir hizmet olan uumlcretsiz foto raf arama ve payla m sitesi Flickr
ayn zamanda web servisi ve ccedilevrimiccedili topluluk platformudur Web 20 n ilk uygulamalar ndan
biridir Foto raf payla m nda en popuumller sitelerin ba nda gelmektedir ccedileri inde yakla k
olarak 3 milyar
a an foto raf bulunmaktad r Yenilikccedili ccedilevrimiccedili topluluk araccedillar foto raflar
etiketlemeye ve s n fland rmaya yard mc olur Bu da popuumllaritesindeki ciddi art n
nedenlerinden biridir
Flickr a imaj yuumlkleyebilmek iccedilin Yahoo dan bir e-mail adresiyle sisteme giri
yap lmal d r Payla lmak istenen foto raflar uumlcretli uumlyelik olmadan her imaj iccedilin 5 Mb l k
s n rlamayla ayda toplam 100 Mb a kadar yuumlkleme yap labilir Sadece foto raf eklemenin
d nda imajlar uumlzerinde duumlzenlemeler yap labilir Belirlenen alanlara notlar eklenebilir
Be enilen foto raflara yorumlar eklenebilir Ccedile itli gruplara uumlye olunup ileti im kurulabilir
Ayr ca API leri sayesinde XML-RPC (Remote Procedure Call- Uzaktan Yordam Ccedila rma)
arabirimi kullanarak flickr sitesindeki foto raflarla ilgili bilgileri proseduumlrler sayesinde XML
format nda al p ayr t rarak ba ka bir programda kullan labilinir Flickr daki blog grup ve
etiketleme alt yap s bu API lere dayanmaktad r [13]
ekil 24 Flickr sitesinin logosu [14]
213 BitTorrent
BitTorrent internet uumlzerinden yuumlksek h zlarla iccedileri in da t ld duumlnya ccedilap nda bir
standartt r Ayr ca 150 milyondan fazla kullan c ya sahip en son p2p (peer to peer) dosya
payla m youmlntemlerinden biridir Di er p2p payla m programlar ndan fark sabit olmayan
ba ms z sunucu tan mlama dosyalar sayesinde sabit bir sunucuya ihtiyaccedil olmaks z n belirli bir
protokol ccedilerccedilevesinde indirme (download) yaparken yuumlkleme (upload) yap lmas na da izin
vererek payla ma devam edebilmesidir [15]
Python programlama diliyle yaz lm bir uygulamad r [15]
ekil 25 ccedilerik da t m sitelerinde bittorrent site logosu [16]
6
Bit Seli olarak da ccedilevirebilece imiz ccedilok h zl bir sistemdir BitTorrent sayesinde
oldukccedila buumlyuumlk boyutlu videolara ses ya da yaz l m dosyalar na daha h zl daha ucuz ve daha
kolay bir ekilde ula labilmeyi sa lar
Guumlnuumlmuumlzde ccedilerik Da t c A lar (Content Distributed Networks-CDNs) guumln geccediltikccedile
popuumllaritesini art rmaktad r Bittorent kullan m n n 2004 te internet te teknik standartlar ve
youmlnetim konusunda yetkili organ olan W3C (World Wide Web Consortium - Duumlnya Ccedilap nda
A Birli i) taraf ndan yap lan bir ccedilal maya goumlre P2P ba lant lar n toplamda 60 n tuumlm
internet trafi inin ise 30 unu a aca tahmin edilmektedir
BitTorrent le dosya transferi yap l rken oumlncelikle bilgisayarda BitTorrent stemci
(Client) yuumlkluuml olmal d r stemci yaz l mlara oumlrnek Flashget Azureus BitTorrent Torrent
ABC LimeWire vb yaz l mlar olabilir ekil 26 ve ekil 27 de en popuumller uygulamalardan
Torrent yaz l m n n kurulum ve arayuumlz oumlrne i goumlruumllmektedir
ekil 26 Torrent program n n anasayfas
7
ekil 27 Torrent program n n arayuumlzuuml
BitTorrent istemciler BitTorrent Protokol uygulamalar n yapar Her istemci bu
protokoluuml kullanarak dosyalar n kullan c lar n BitTorent in kulland protokole sahip
duumlnyadaki tuumlm iccedileriklere h zl ve guumlvenilir bir ekilde eri mesine izin verir stenilen iccedileri in
indirilebilmesi iccedilin gerekli tan mlama bilgilerinin bar nd
torrent uzant l bir dosyaya
ihtiyaccedil vard r Bu torrent dosyalar n ccedile itli duyuru sitelerinden ya da Web den temin edildikten
sonra istemciler yukar da bahsedilen herhangi bir torrent yaz l m kullanarak bu dosyay accedilarlar
ndirme ba lad anda indirilmek istenen dosyay payla an kullan c lar n olu turdu u kuumlccediluumlk
a a (swarm) dacirchil olurlar Bu kuumlccediluumlk a daki her kullan c dosyan n indirdi i boumlluumlmuumlnuuml di er
kullan c larla payla mas gerekir Tuumlm bu i lemleri de takipccedili (tracker) isimli bir sunucu kontrol
eder Yakla k olarak 256 Kb buumlyuumlkluuml uumlndeki bu kuumlccediluumlk boyutlu dosyalara indeksleyici
(indexer) de denmektedir Kuumlccediluumlk bir a
kurulmas iccedilin tuumlm dosyaya sahip en az bir da t c n n
(seeder) olmas gerekir Da t c lar herhangi bir dosyay yuumlkleyen kaynaklard r O dosyan n
tamam n
kendi bilgisayar na indiren her kullan c art k bir da t c
olur Fakat da t c olmak
kullan c lar n insiyatifindedir ndirme i lemi bittikten sonra o dosya payla ma accedil k tutulmazsa
di er kullan c lar da t c dan bu dosyay ccedilekerek indirme i lemini h zland ramazlar Da t c
say s
ne kadar artarsa indirme i lemi o kadar h zl olur ndirme yapan kullan c lara da grup
uumlyeleri (peers) denilmektedir Torrent dosyas n indiren kullan c lar izleyicilere (tracker) dosya
hakk nda bilgi goumlnderirler di er kullan c lar (peers) ise izleyicilere ba lanarak kimde hangi
dosyan n hangi parccedilalar n n oldu unu ouml renirler zleyiciler uumlzerinden kesinlikle dosya transferi
8
gerccedilekle mez sadece kaynak payla l r Hangi kullan c ne kadar dosya ccedilekti ve ne kadar
yuumlkledi gibi istatistiksel bilgileri de bar nd rabilir [16 17]
Sadece indirme i lemi yap p kaynak olmay istemeyen ki ilere leecher (suumlluumlk) denir Bu
anlay a sahip ki iler gruplar iccedilinde ho kar lanmazlar Bir torrent dosyas payla m nda
kaynak (seed) say s s f r ise yani dosyan n tamam na sahip ki iler payla mdan ccedilekilmi lerse
eksik dosyaya sahip buumltuumln uumlyeler (peer) birbirleri aras nda veri al veri i yaparak eksik
parccedilalar indirebilecekleri bir kaynak olmad ndan belli bir yuumlzdesi tamamlanm dosyaya
sahip olarak kal rlar Bu durumda daha oumlnce dosyay indirmi ve dosyan n tamam na sahip olan
bir kullan c
eksik parccedilalar goumlndermek iccedilin dosyay yeniden payla ma accedilabilir (seed eder) Bu
olaya reseed etme denir [18]
214 Sosyal A Siteleri
Sosyal a lar bireyler aras ndaki ki isel veya profesyonel ili kilerin olu turuldu u
duumlzenlendi i a d r [19] Son y llardaki bilgi teknolojilerindeki geli meler sosyal a lar n gerccedilek
ya amdakinden daha farkl bir ekilde yeniden yap lanmas n
sa lam t r Herhangi bir
irketteki yerel a iccedilinde personelin e-posta al p-goumlndermesiyle olu an etkinlik ve e-posta
gruplar ilk ccedilevrimiccedili sosyal a oumlrneklerinden say labilir Daha sonra h zla hayat m za giren
bloglar wikiler ve sosyal a siteleri gibi sosyal i birli i sa layan teknolojilerin geli mesi
insanlar n ileti im kurduklar bilgi resim muumlzik video payla t klar ve birbirleriyle suumlrekli
haberle tikleri ccedilevrimiccedili sanal topluluklar n olu mas n sa lam t r [20] Bu topluluklar n h zla
yay lmas n n temelinde kullan c lar n bireysel aktivitesine ba l olarak duygu ve duuml uumlncelerini
bilgiyi guumlncel haberleri tavsiyelerini be enilerini payla ma fikri vard r A a da sosyal a
sitelerinden en popuumller olanlar iccedilinde yer alan Facebook incelenecektir [7]
2141 Facebook
En yayg n sosyal a sitesi Facebook Amerika Birle ik Devletleri nde 4 ubat 2004
tarihinde Harvard Uumlniversitesinde ouml renci Mark Zuckerberg taraf ndan kurulmu tur Facebook
oumlncelikle Harvard ouml rencileri iccedilin kurulmu tu Daha sonra h zla tuumlm duumlnyaya yay lm t r
Kullan c lar siteyi uumlcretsiz uumlye olarak kullanabilmektedir Site gelirini banner reklamlar ndan ve
sponsor gruplar ndan almaktad r Duumlnyan n en popuumller Web 20 blogu TechCruncha goumlre
Amerika Birle ik Devletleri ndeki uumlniversitelerdeki ouml rencilerin 85inin facebookda bir
hesab bulunmakta ve bunlar n 60 her guumln ba lanmaktad r 85 her hafta 93 her ay
ba lananlar aras ndad r [21] Facebook sitesinden ba ms z Web 20 ak m n yak ndan takip
9
eden bir blog sitesi olan insidefacebook 2009 Ocak ay n n ba nda yay nlad habere goumlre
facebook kullan c say s a a daki grafikte goumlruumllduuml uuml gibi yakla k 140 milyonu bulmu tur
Milyonlar a k n aktif uumlye say s yla guumlnde ortalama 150 bin aktif kullan c yla sanal duumlnyan n en
popular sitesi olmu tur [22]
ekil 28 Facebook kullan c say s n n aylara goumlre da l m grafi i [23]
Aktif kullan c lar n iccedileri e katk s a a daki istatistik sonuccedillar n do urmu tur [22]
13 milyon kullan c durumlar n en az ndan guumlnde bir kez guumlncellenmektedir
25 milyon kullan c her guumln Sayfa hayran (fan of Pages) olmaktad r
Siteye her ay 700 milyon foto raf yuumlkleniyor ki toplam foto raf rakam yakla k 10
milyar bulmaktad r
Her ay 4 milyon video yuumlklenmektedir
Her ay 15 milyon iccedilerik parccedilas (web linki yeni hikacircyeler blog yaz lar notlar
foto raflar vb) payla ma sunulmaktad r
Her ay 2 milyon etkinlik olu turulmaktad r
Sitede 19 milyon adet aktif grup varl n suumlrduumlrmektedir
Yukar da belirtilen bu rakamlar sosyal ileti im a lar n n ne kadar ciddi boyutlarda bir
kapasiteye sahip oldu unu goumlstermektedir
10
ekil 29 Aylara goumlre facebook ve myspace site analizi [22]
Facebook ve ona en yak n rakibi sosyal ileti im web sitesi olan MySpace compete de
kar la t r ld nda yukar daki grafik elde edilmektedir
Tablo 21 Facebook ve myspace in buumlyuumlme tablosu
Tarih 032008 032009 Kullan c
Ayl k Y ll k
facebookcom
91054535 234
1951
myspacecom
55594761 48
-114
Tablo 21 de Mart 2008 ile Mart 2009 aras ndaki ayl k aktif ziyaretccedili say s n
goumlstermektedir Compete verilerine goumlre Aral k 2008 de facebook myspace in kullan c say s n
yakalam t r Tablo 21 deki verilere goumlre bir oumlnceki y la goumlre Facebook taki kullan c say s nda
ayl k 234 luumlk bir art varken MySpace 48 lik bir buumlyuumlmeye sahiptir Yakla k olarak
ayl k MySpace Facebook u 5 kat geriden takip etmektedir Facebook taki bir oumlnceki y la
goumlre 1951 lik buumlyuumlmeye kar n myspace de 114 luumlk kuumlccediluumllme goumlruumllmektedir Elde edilen
veriler ileriki y llarda bu rakamlar aras ndaki uccedilurumun artaca n i aret etmektedir
Facebooktaki bu h zl buumlyuumlme ekonomi ve ticari sektoumlruumlnuumln de ilgisini ccedilekmektedir Oumlnemli bir
yat r m alan olarak giri imcileri cezbetmektedir
Facebook youmlneticilerinden Peter Thiel ise Facebookun iccedil de erinin 8 Milyar dolar
oldu unu ve proje gelirlerinin 2015 y l iccedilin 1 milyar dolar oldu unu soumlylemektedir [24]
Duumlnyaca tan nm Microsoft irketi 24 Ekim 2007 de Facebooku 16l k hissesini 240 milyon
dolara sat n alm t r Google ve di er irketler de gittikccedile de er kazanan Facebook hisselerine
youmlnelmektedir [24]
11
215 Web Guumlnluumlkler
ngilizcedeki Web
ve log kelimelerinin birle iminden olu an Blog kelimesi internet
uumlzerinden ki ilerin istedikleri konu hakk nda fikir beyan edebilecekleri kendilerini kolayca
ifade etmelerini sa layacak bir ortamd r
Bloglar genellikle en yeni yorum ve yaz lardan eski tarihli yorum ve yaz lara do ru
s ralanm web tabanl yay nlar
belirtir Bloglar n iccedileri i suumlrekli guumlncellendi i iccedilin sadece
bloglar iccedilin kurulmu oumlzel indeksleme mekanizmalar ve arama motorlar bulunmaktad r [25]
Duumlnya ccedilap nda indeksleme mekanizmalar n n en oumlnde geleni Technorati firmas
milyonlarca blog okuyucusu iccedilin her geccedilen guumln 15 milyondan fazla yeni blogu
indekslemektedir [26] Forrester in ara t rma irketlerinden internet ile ilgili ciddi bir ara t rma
kurumu olan JupiterResearch uumln 2008 A ustos unda bloglar uumlzerine gerccedilekle tirdi i
ara t rmada internet kullan c lar na 40 soruluk kapal uccedillu soru youmlneltilmi tir Bu ara t rma
sonucunda geccedilti imiz doumlrt y l iccedilerisinde bloglar n okunma oranlar nda 300 oran nda bir art
oldu u ortaya ccedil km t r Belki ilgimi ccedilekecek bir bloga ula abilirim duuml uumlncesi ile kullan c lar
okuduklar bloga eklenmi
olan di er linkleri de takip edebiliyorlar S k blog okuruyum
diyenlerin 38 i yeni bir blogu okudu u blogun linklerinden ke fetti ini belirtmi tir
Ara t rmaya kat lan blog okurlar n n 34 uuml Web te dola rken yeni bir blogla tan t n 11 i
blog arama motorlar n kulland n
belirtmi [27]
Bloglar n bu kadar yayg nla mas n n nedenlerinde biri de internet gezginler sanal
acirclemdeki tek duumlze yorumsuz hatta bazen oldukccedila bilimsel bir dille yaz lm yaz lardan
s k ld klar iccedilin bloglar tercih etmektedir Bloglarda ki iler gittikleri bir seminer hakk ndaki
yorumlar n kulland klar bir uumlruumln hakk ndaki fikirlerini k saca hayata dair kendi yorumlar n
katarak ba ka ki ilerle payla abilmektedirler
216 Wiki
Bilgiye ula mak iccedilin eskiden oldu u gibi kitap ya da ansiklopediler kullan lmamaktad r
Guumlnuumlmuumlzde kuumlreselle menin ve geli en teknolojinin etkisiyle tuumlm kaynaklara bilgisayar
uumlzerinden ula lmas elde edilen bilgilerin k sa suumlrede derlenebilmesine imkacircn vermi tir
Wiki ler kullan c lar n uumlzerinde istedi i gibi duumlzenlemeler yapmas na izin veren bilgi
sayfalar toplulu udur ngilizce What I Know is soumlzcuumlklerinin k saltmas
olan Wiki
Bildi im kadar yla anlam na gelir [28]
12
Wikilerin ccedilal ma prensibi u ekilde accedil klanabilir Bir web program script ya da script
grubu sayesinde veritaban na yaz lm olan ya da sadece dosya halindeki verileri okur bu
verileri HTML kodlar ile de i tirir ve Web taray c s na yans t r
ekil 210 Vikipedi oumlzguumlr ansiklopedi sitesinin logosu
Wiki dilini kullanan ve internetin en geni iccedileri ine sahip ccedilevrimiccedili ansiklopedisi
Vikipedi 22 Ocak 2007de Alt n Oumlruumlmcek 2006 En yi ccedilerik oumlduumlluumlnuumln sahibi oldu
Wikipediaorg taraf ndan geni kitlelere tan t lan Wiki dili pek ccedilok farkl programlama
platformunda Javascript ASP PHP C++ vb kullan labilmektedir
2161 Wiki Kullanman n Avantajlar
Web proje gruplar
projeleri olu tururken ekiplere ayr ld iccedilin programc lar kendi
goumlrevi d ndaki ccedilal malarda neler yap ld n
tam olarak bilemez ccedileri in yap land r lmas nda
geli melerden sadece iccedilerik koordinatoumlrleri haberdard r An nda yap goumlster oumlzelli iyle Wikiler
bu sorun iccedilin pratik bir ccediloumlzuumlm te kil eder
ndekslenme yapan sitelerde bile arama yap l rken defalarca ayn siteye girilebilir yahut
aran lan bilgiyi bulmak ccedilok zaman alabilir Wiki gereksiz tekrarlardan kurtar r steyen herkes
wiki iccedileri indeki bilgileri eksik ya da hatal
ise de i tirilebilir veya kald rabilir Bu i lemleri
yapan wiki youmlneticilerine wikipedist denir Wikipedistler sayfa duumlzenlemelerine ve iccedilerik
zenginle tirmeye yard mc olurlar
Wiki de de i iklik yap ld nda de i iklik yapan ki inin bir hesab yoksa IP adresiyle
varsa kullan c ad yla kaydedilerek hemen sonuccedil goumlzlenebilir Yap lan iccedileriksel herhangi bir
hata ba kalar taraf ndan fark edildi inde duumlzeltilir Geccedilmi sekmesiyle duumlzeltilen sayfalar n
oumlnceki suumlruumlmleri kronolojik s ralamayla takip edilebilir hatta sayfalar aras nda kar la t rma
bile yap labilir Sayfa iccedilerikleri hakk nda Tart ma
sekmesiyle fikir beyan nda bulunulabilinir
Tart malara yorum eklenebilir Denetleme mekanizmas sayesinde telif haklar n n ihlali gibi
durumlarda ihlali yapan kullan c lar engellenebilmektedir
13
Wiki di er ansiklopedilerden farkl olarak Vikipedi GNU Oumlzguumlr Belgeleme Lisans
(GOumlBL) kullanmaktad r Kullan c lar na oumlzguumlr iccedilerik kat l m e it tarafs z ve uumlcretsiz kat l m
hakk verir Ayr ca diluumllkekonuya goumlre geli mi kategorilendirme sistemine sahiptir Diff
oumlzelli i sayesinde sayfalar aras ndaki fark izlenebilir [29]
217 ccedilerik Youmlnetim Sistemleri
ngilizce Content Management System ya da k saca CMS olarak tan nan ccedilerik
Youmlnetim Sistemleri - YS bilgiyi olu turmak ar ivlemek ara t rmak denetlemek ve
yay nlama olana sa layan buumlyuumlk bir veritaban na sahip moduumlllerden olu an buumltuumlnle ik bir
ortamd r YS lerde iccedilerik iki ayr boumlluumlmden olu ur Bunlardan birincisi uumlzerinde i lem
yap lmam olan ham bilgiyi bar nd ran veritaban
di eri ise bu bilginin yerle imini goumlsteren
ablondur ablonda bilginin goumlsterilece i sayfan n goumlrsel boumlluumlmuumlnuuml olu turan yaz tipleri
renkleri gibi tuumlm biccedilim bilgileri saklan r Genellikle PHP benzeri dillerle kodlan r Boumlylece daha
esnek hale gelebilirler [30]
ccedilerik Youmlnetim Sistemleri uluslararas platformda birccedilok organizasyon iccedilin zorunluluk
haline gelen modern bir veri youmlnetimi tekni idir Guumlnuumlmuumlzde iccedilerik youmlnetim sistemleri kendi
iccedilerisinde boumlluumlnmuuml bir yaz l m enduumlstrisi haline gelmi tir Kendi iccedilerisinde portal sistemleri
Wiki sistemleri web-based grupware vb alt dallara ayr lan enduumlstri guumlnuumlmuumlzde halen
geli imini suumlrduumlrmektedir [31]
Web yay nlama sistemi kullan c lar arad klar iccedileri e goumlre veritaban iccedilinde anahtar
kelimeler yazar olu turulma tarihi gibi ccedile itli oumllccediluumltlere goumlre arama yapabilirler Web iccedilerik
youmlnetim sistemleri bilgi portallar olu turmak iccedilin bilgi youmlnetimi hizmeti sunar YS buumlnyesinde
bar nd rd
yaz l m moduumllleri sayesinde herhangi bir kullan c n n web sitesi uumlzerindeki
i lemleri yapabilmesi iccedilin grafiksel kullan c arayuumlzuuml sunar
YSnin temeli iccedileri in olu turulmas ndan son hali olan yay nlanma evresine kadar tuumlm
evrelerde iccedileri i youmlnetme esas na dayan r Ayr ca YS nin iccedileri i E-ticaret ve Muuml teri li kileri
Youmlnetim Sistemleri (MIYS) (ing CRM - Customer Relationship Management System) ile de
payla labilir YS sayesinde iccedilerik yay n
teknik bilgisi olmayan kullan c lar taraf ndan bile
yap labilir Kullan c lar na sade basit ama guumlccedilluuml web taray c s destekli bir uygulama arayuumlzuuml
sunar [32]
14
218 Etiketleme (Folksonomi)
Web 20 sitelerinde goumlze ccedilarpan etiket bulutlar ile kullan c lara ilgilendikleri konulara
ili kin kolay ve h zl ba lant lar sa lanmaktad r Site iccedileri iyle ilgili konular ccedile itli etiketler ad
alt nda s n fland r l r Her etiket iccedilinde bar nd rd makale yaz ba l k ile farkl boyutlarda
olabilmektedir Yani etiketin yaz boyutu ne kadar buumlyuumlkse iccedilinde bar nd rd iccedilerik o kadar
fazlad r ekil 211 de bir etiket bulutu goumlruumllmektedir
ekil 211 Oumlrnek etiket bulutu
22 Web 20 da Site Tasar m nda Dikkat Ccedileken Oumlzellikler
Yukar daki popuumller uygulamalar olu turulurken dikkat ccedileken ortak oumlzellikler bu ba l k
alt nda incelenecektir Genel olarak Web sitelerindeki de i im ve geli im tasar m ve arayuumlz
accedil s ndan de erlendirilecektir
221 Logolar
Logolara daha parlak bir goumlruumlntuuml verilirken yans ma efekti bolca kullan lmaktad r
Yans ma efekti dinamik olmayan tuumlm objelere kullan larak siteye derinlik hareket ve modern
bir goumlruumlnuuml kazand r l r Kullan c lar n dikkatini ccedilekmek iccedilin ekil 212 de goumlruumllduuml uuml gibi
logolara rozet eklinde yenilik bildiren kelimeler eklenebilmektedir [33] Bu yenilik bildiren
kelimelerden Beta ifadesiyle s k s k kar la l r Bunun nedeni Web 20 ak m na goumlre
kullan c lar birer yard mc -geli tiriciler olarak benimsenir Sonuccedil olarak ortaya ccedil kan site suumlrekli
geli mekte ve de i mektedir Logolara yerle en Beta bu geli imin bir simgesi haline gelmi tir
[34]
15
ekil 212 Yans mal logo oumlrne i [34]
222 Butonlar
Butonlarda ise klasik butonlar yerine resim olarak haz rlanan butonlarda oumlzellikle cam
efekti ve renk geccedili (gradient) efekti hacirckimdir Gradient efekti butonlarda logolarda ya da arka
planlardaki renk geccedili lerini daha yumu at r Bir renkten farkl bir renge keskin geccedili lerin oumlnuumlne
geccedililmi olur [33] Ccedile itli buton oumlrnekleri ekil 213 de goumlruumllmektedir
ekil 213 Web 20 da buton oumlrnekleri
223 Arka Planlar
Web 20 ile sitelerde arka planlar olu turulurken yatay eritlerden ya da duumlz renk
geccedili lerinden faydalan labilinir Her iki ekilde de hedeflenen ortak amaccedil ekil 214 te oldu u
gibi goumlzuuml yormayan tasar mlar gerccedilekle tirmektir [33]
ekil 214 Web 20 da arka plan oumlrnekleri
16
224 Ccedilerccedileveler
Site iccedilinde goumlruumlnmez iframe ler yerine ekil 215 deki gibi ccedilerccedilevelerin yuvarlak kouml eli
kutular olarak tasarlanmas
oumln plana ccedil km t r Kouml eleri keskin duumlz kare veya dikdoumlrtgen
biccedilimde kutular art k kullan lmamaktad r Yuvarlak kouml eli kutu yap m iccedilin farkl tekniklerle
olu turulabilecek programlar mevcuttur Resim css ve html teknikleri kullan lacaksa Spiffy
Corners RoundedCornr ve CSS Rounded Box Generator gibi araccedillar kullan labilirken Nifty
Corners Cube ve curvyCorners gibi araccedillar da JavaScript tekni i ile kullan labilinir [33]
ekil 215 Web 20 da ccedilerccedileve yap s na oumlrnek
225 Menuumller
Site iccedileri inden etkin bir ekilde faydalanabilmek iccedilin menuuml ve sekmeler sade kolay
anla labilir olmal d r Hem goumlrsel hem kullan l menuumller CSS kodlarla olu turulabilir [33]
ekil 216 Web 20 da menuuml oumlrne i
Yukar da bahsedilen konu Web 20 platformunda olu turulan sitelerin genel oumlzellikleri
olarak alg lanabilir Bu oumlzellikler d nda da tasar mlar olabilmektedir
17
3 AJAX
AJAX kavram n n ilk ccedil k noktas
ubat 2005 de Jesse James Garrett taraf ndan the
Adaptive Path Web sitesinde Ajax A New Approach to Web Applications ba l yla
yay nlanan makaledir [35]
ekil 31 Jesse James Garrett in makale goumlruumlntuumlsuuml [36]
Bu makalede Web uygulamalar olu turulurken tasar mlardaki buumlyuumlleyici geli meler
yenilikccedili ccedilevrimiccedili projelerle desteklenirken bunun yan nda h zl cevap verebilir daha zengin
goumlrsellere sahip masauumlstuuml uygulamalar aras ndaki bo lu a dikkat ccedilekilmi tir Bu bo lu u
dolduran Google Suggest ve Google Maps uygulamalar Adaptive Path sitesinde AJAX olarak
adland r lan Web uygulamalar na yeni yakla m n en iyi oumlrnekleri oldu u belirtilmi tir Klasik
Web uygulamalar n n ccedilal ma modeliyle AJAX l uygulamalar n ccedilal ma modeli
kar la t r lm t r AJAX di er uygulama youmlntemlerinden ay ran oumlzellikleri belirtilmi tir
AJAX yakla m na buumlyuumlk yat r mlar yapan Google n neden AJAX tercih etti i accedil klanm t r
Google Groups Google Suggest Gmail Google Maps ve ard ndan Flickr Amazon nun
A9com servisleriyle kullan c lar n oda haline geldi ine de inilmi tir [35]
AJAX n ccedilekirde i olan XMLHttpRequest (XHR) nesnesi sayesinde de iyi haz rlanm
sa lam ve kolay anla labilir-kullan labilir sitelerin olu umuna dikkat ccedilekilmi tir [35] A a da
18
ise AJAX tekni i kullanan en populer servislerden Google Suggest ve Google Maps hakk nda
k sa bilgi verilecektir
31 Google Suggest
ekil 32 Google Suggest ekran goumlruumlntuumlsuuml
Google Suggest a httpwwwgooglecomigcomplete=1amphl=en
adresine girildi inde
ekil 32 de goumlruumlnen ana sayfaya ula lmaktad r Google Suggest servisinin oumlzelli i arama
motorunda aranacak kelimenin harfleri girilmeye ba land andan itibaren filtreleme yaparak
text alan n n alt na accedil lan boumllmede oumlneriler sunulmaktad r Sadece oumlneri sunmakla da kalmay p
oumlnerileri popuumllarite s ras na goumlre s ralar Kelime tamamlama oumlzelli i sayesinde aranan kelime
tam yaz lmadan gelen oumlnerilerden biri t klanarak istenen sonuca ula labilinir Ayr ca oumlnerilerin
yan nda o kelimeye ait kaccedil sonuccedil oldu u da belirtilir ve bu i lem sadece 1-2 sn iccedilinde
gerccedilekle ir
32 Google Maps
ekil 33 Google Maps ekran goumlruumlntuumlsuuml
19
Google Maps sitesine httpmapsgooglecom
adresinden ula labilinir Google n
etkile imli harita servisi ile arama motorunda goumlruumlntuumllenmek istenen konum yaz larak
Haritalarda Ara butonu ile o konuma odaklan l r Bir yerden bir yere gitmek iccedilin Yol
Tariflerini Al butonu kullan l r Konumun iste e goumlre uydu arazi ve sokak haritas
goumlruumlnuumlmlerine ula labilinir Daha fazla seccedilene i ile resim video ve wikipedia katmanlar da
goumlruumlntuumlye eklenir Hatta yurtd ndaki ba lant larda yoldaki trafik ak n n h z hakk nda bile
bilgi katman mevcuttur
Di er harita web uygulamalar ndan farkl olarak Google Maps te harita uumlzerinde ccedile itli
youmlnlere ula mak iccedilin suumlrekle b rak youmlntemi kullan l r Harita bir imaj serisi halinde ayr larak
boumlluumlnuumlr Biti ik imajlar n birlikte goumlruumlntuumlsuumlnuumln olu turulabilmesi iccedilin bu serilerden faydalan l r
Goumlruumlntuumllenen haritada kullan lan imaj say s s n rl d r Bu da her seferinde yeni imajlar n
olu turulmas gerekti ini goumlsterir Kullan c n n harita uumlzerindeki h zl hareketleri haf za
problemlerine yol accedilabilir Bunun yerine ayn imajlar haritan n farkl segmentlerinde tekrar
tekrar goumlruumlntuumllenir [37]
stemci-sunucu ileti imi gizli bir IFRAME uumlzerinden yap l r Bir arama yap ld nda
veya yeni bir yol soruldu unda bu bilgiler goumlnderilir ve IFRAME iccedilinde doumlnduumlruumlluumlr Veri XML
format nda ccedilevrilir ve bir Javascript fonksiyonunda (AJAX Motorunda) kullan lmak iccedilin
aktar l r Bu XML verisi sonra farkl ccedile itli ekillerde kullan l r Bazen hatas z harita imajlar n n
ccedila r lmas nda bazen de XML dokuumlmanlar n n XSLT (Extensible Stylesheet Language
Transformations Geni letilebilir Biccedilimlendirme Dili Doumlnuuml uumlmleri) sayesinde HTML kodlar na
doumlnuuml tuumlruumllerek ana pencerede goumlruumlntuumllenmesinde kullan l r [37]
Bunlar n d ndaki daha birccedilok accedil k kaynak projeler ve ticari uumlruumlnler bu yeni Web
uygulama modelinin avantajlar ndan faydalanarak geli tirilmeye ba lanm t r [37]
33 Neden AJAX
AJAX terimi oldukccedila guumlccedilluuml bir kelimedir Guumlcuumlnuuml daha zengin geni enduumlstri trendlerinin
olu umunda kullan labilmesinden ve oumlzguumlr Web uygulamalar n n kurulumunda odak noktas
olmas ndan al r Ayr ca programc lar yabanc olduklar yeni programlama dilleri ouml renmelerine
gerek kalmadan geli tirdikleri Web uygulamalar na istedikleri etkiyi katabilmektedirler Bunu
yaparken de sunucu tarafl teknolojileri kullan rken var olan yat r mlar n n d nda ba ka
masraflar olmaz AJAX guumlccedilluuml bir teknik olmas n n yan s ra di er teknolojilerle birlikte
kullan ld nda daha etkili sonuccedillar al nabilmektedir [38] AJAX Java 2 Enterprise Edition
(JAVA EE) Net PHP Flex CGI scriptler ve di er birccedilok uygulama geli tirme ortam nda
ccedilal abilir
20
AJAX uygulamalar n n gittikccedile yayg nla mas n n bir nedeni de geleneksel uygulamalara
goumlre istekcevap modelleri aras ndaki farkt r ekil 34 te goumlsterildi i uumlzere geleneksel Web
uygulamalar nda sunucuya yap lan her istekte olu turulan cevap Web sayfas n n tuumlmuumlnuuml
etkileyerek yeniden yuumlklenmesine neden olmaktad r
ekil 34 Geleneksel sunucularda istekcevap modeli [39]
AJAX n asenkron metodolojisiyle klasik Web mimarilerindeki gibi sunucuya gidip
parametreleri i lemek yerine ekil 35 te goumlruumllduuml uuml uumlzere birccedilok sunucu iste i tuumlm sayfan n
yenilenmesine ihtiyaccedil duymadan cevaplanabilmektedir
ekil 35 AJAX n asenkron istekcevap modeli [39]
Yukar da anlat lan durum kullan c lar ekil 36 da goumlruumllen t kla-bekle doumlnguumlsuumlnden
kurtar r AJAX kullan c lara ekil 37 deki gibi kesintisiz gezinti (soumlrf) imkacircn sunar
21
ekil 36 Klasik Web uygulamalar nda t kla-bekle doumlnguumlsuuml [40]
ekil 37 T kla-T kla interaktif AJAX uygulamas
[40]
stek i lem basamaklar ekil 38 te goumlsterildi i gibi AJAX motoru sayesinde JavaScript
kod betikleri kullan larak sunucuya HTTP tabanl ba lant sa lan r Bu ba lant
XMLHttpRequest protokoluumlnuuml kullanarak mesaj transferi yap lmas n sa lar Bu sayede hem h z
artar hem de bant geni li i verimli bir ekilde kullan lm olur
ekil 38 Geleneksel Web ileti im modeli ile AJAX ileti im modeli [37]
AJAX sunucuya kullan c n n Web taray c s uumlzerinden Javascript ortam nda ikinci bir
ileti im yoludur AJAX n kullan m normal Web uygulamalar nda goumlruumllen tipik sayfa ak nda
de i ikliklere neden olur AJAX ile istekler daha s k ve daha kuumlccediluumlk cevaplar halinde HTML
olmayan veri formunda cevaplan r Daha iyi anlayabilmek iccedilin normal bir Web uygulamas n n
ileti im ak ekil 39 da goumlruumllmektedir [41]
22
ekil 39 Web uygulamas ndaki cevap ak
Bir AJAX Web uygulamas bir Web uygulamas n n normal ileti im ak n al r ve yeni
bir istek tipi ekler Bu durum sunucuya normal sayfa iste i gibi goumlruumlnuumlr ama Web taray c iccedilin
farkl formatta bir giri i vard r Kullan c taraf ndan do rudan tetiklenmeyen ve sayfan n
tamam n n yeniden yuumlklenmesini gerektirmeyen bir istektir Ccedilo u durumda bu AJAX istekleri
baz verilerin oumln yuumlklenmesi ya da bir formdaki baz alanlar n do rulama istekleri gibi kuumlccediluumlk
de i iklikler olabilir Bazen de JavaScript ile bir form goumlnderimi veya HTML sayfalar n n bir
parccedilas uumlzerindeki iccedileri i de i tirmek iccedilin kullan l r Oumlrnek bir AJAX ileti im ak ekil
310 da goumlruumllmektedir AJAX uygulamalar ndaki istek biti zamanlar ve bunun normal Web
uygulamalar yla kar la t rmas ekil 311 de goumlruumllebilir Boumlylece ikisinin aras ndaki istek
frekanslar n n fark na var labilinir [41]
ekil 310 AJAX uygulamalar ndaki istek ak
23
ekil 311 Normal Web ile AJAX uygulamalar n n kar la t rmas
AJAX Web uygulamalar yla frekanstaki bu de i im hostlar iccedilin buumlyuumlk etki yapabilir
Boumlylece sunucular ayn kullan c say s yla yuumlksek h zlarda veri al -veri ini yapabilecek duruma
gelir Bu oumlzellikle daha fazla i lem gerektiren normal sayfa yuumlklemelerinde oldukccedila zor bir
i lemdi [41]
34 AJAX Metodolojisi
World Wide Web istemci-sunucu a mimarisine uygun ccedilal r [42] A aktiviteleri iki
tiptir Bunlardan birincisi kullan c taraf ndan tetiklenen HyperText Transfer Protocol (HTTP)
istekler (URL yazarak ya da bir link t klanarak olu turulur) di eri ise sunucu cevaplar d r
HTTP protokoluuml soru ve cevaplar serisinden olu an bir ileti im yoludur [41]
ekil 312 Geleneksel istekcevap (requestresponse) youmlntemi [39]
24
Web taray c dan bir istekte bulunuldu unda HTTP kullan larak cevap goumlnderilir Web
taray c bir istemci internet sayfas n n sunucusu ise HTTP sunucudur AJAX sunucu
cevaplar n HTTP kullanarak goumlnderir Sunucu taraf ndan geri doumlnduumlruumllen farkl tuumlrlerdeki
HTTP istek ve cevaplar n n tan nmas oumlnemlidir AJAX uygulamalar n sunucudan gelecek olan
HTTP cevaplar n iccedileri inin ne oldu u hakk nda karar verebilmesi iccedilin sunucunu
sorgulanmas nda HTTPRequest nesnesine ihtiyaccedil duyar [42]
341 HTTP Requests Nesnesi
HTTP request nesnesinin kullan m format a a daki ekildedir
ltrequest-linegt
ltheadersgt
ltblank linegt
[ltrequest-bodygt]
HTTP request nesnesinin ilk sat r genellikle iste in tipini belirten uumlccedil boumlluumlmden olu ur
Youmlntemin ad gerekli olan sunucu kayna n n yolu HTTP suumlruumlmuumlduumlr Birinci istek sat r (accedil l
sat r ) olmal d r kinci boumlluumlm sunucunun kullanabilece i ba l k sat r eklenebilen bilgilerin
goumlsterildi i boumlluumlmduumlr Son boumlluumlm olan bo sat r ise iste e ba l olarak BODY boumlluumlmuumlnden
ccedila r labilecek ek verilerin takip edilebilece i sat rd r
HTTP iccedilinde ccedile itli istek tuumlrlerinin tan mlanabilece i ccedilok say da youmlntem vard r Fakat
AJAX sadece GET ve POST youmlntemleriyle ilgilenir
3411 GET Youmlntemi
HTTP GET youmlntemi ccedila r lmak istenen URL adresi ard na eklenen anahtar-de er
ccediliftleri (key-value pair) ile ccedilal r Bir Web taray c dan talep edilen bir URL ccedila r s sunucuya
GET youmlnetemi ile bir istek goumlnderir Basitccedile sunucu kayna getirir ve taray c ya cevab
goumlnderir A a da Get youmlnetemi kullan larak F rat uumlniversitesinin Web sitesine yap lan bir ccedila r
sat r goumlsterilmektedir
GET HTTP11 ltrequest-linegt
Host wwwfiratedutr
User-Agent Mozilla50 (Windows U Windows NT 51 en-US rv176) ltheadersgt
Connection Keep-Alive
25
Oumlrnek kod parccedilas nda da goumlruumllduuml uuml uumlzere ilk sat r GET istek sat r d r Di er boumlluumlm ise
istek hakk nda bilgi goumlnderilen ba l k (header) k sm d r Bu boumlluumlme bir parametre ve her sat r
ba na bir de er ccedilifti gelebilir Host ba l iste in hedef sunucu adresini iccedilerir User-Agent
ba l eri ilebilir her iki sunucu ve istemci tarafl scriptler ve taray c lar n temel ta d r Bu
bilgi ile her istekte otomatik olarak goumlnderilir ve kullan lan taray c tan mlan r Connection
ba l ise taray c i lemleri iccedilin kullan lan tipik ba lant ayarlar nda kullan l r
3412 POST Youmlntemi
POST iste i ise sunucuya request body iccedilinde ek bilgi sa lar Genellikle ccedilevrimiccedili
formlarda doldurulmayan sat r bilgileri POST youmlntemi ile sunucuya bildirilir POST istekleri
a a daki yap dad r
POST HTTP11
Host wwwfiratedutr
User-Agent Mozilla50 (Windows U Windows NT 51 en-US rv176)
Content-Type applicationx-www-form-urlencoded
Content-Length 40
Connection Keep-Alive
Yukar daki kod parccedilas nda gri ile vurgulanan sat rlar GET youmlnteminden farkl olan
sat rlar goumlstermektedir lk sat rda kullan lan youmlntemin ad belirtilmi tir Content-Type sat r
request-body nin nas l kodland n goumlsterir Content-Length sat r nda request-body nin kaccedil
byte uzunlu unda oldu u goumlsterilir [37]
342 HTTP Request Nesnesinin Oumlzellikleri ve Youmlntemleri
Request nesnesi be tane temel fonksiyon bulundurmaktad r [43] Bunlar
Querystring URL iccedilersinde bulunan dosya ismi ile birlikte goumlnderilen bilginin veya
form iccedilerisinden GET
youmlntemi ile goumlnderilen bilgilerin al nmas nda kullan l r
Form POST
youmlntemi genellikle form iccedilerisinden bilgi al nmas iccedilin kullan l r
Servervariables Web sunucu request ile ilgili bilgilere (Http ServerVariables)
ula may sa layan bir youmlntemidir
Cookies(Ccedilerezler) Kullan c n n taray c s sunucudan gelen ccedilerezleri kabul ediyor ise
bu bilgilere ula lmas n sa lar
26
ClientCertificate Dijital bir sertifikad r Sunucu ve istemcinin birbirini tan mlamas
iccedilin kullan l r
343 HTTP Response Nesnesi
HTTP response nesnesi HTTP request nesnesine benzer ekilde goumlsterilir
ltstatus-linegt
ltheadersgt
ltblank linegt
[ltresponse-bodygt]
HTTP request nesnesinden tek fark ilk sat rda istek bilgisinin yerine iccedileri in durum
bilgisi vard r Durum sat r istek kayna
hakk nda temin edilen bir durum kodunu bildirir
A a da basit bir HTTP response kod parccedilas
goumlsterilmektedir
HTTP11 200 OK
Date Sat 31 March 2009 165959 GMT
Content-Type texthtmlcharset=ISO-8859-1
Content-Length 122
lthtmlgt
ltheadgt
lttitlegtFirat Universitesilttitlegt
ltheadgt
ltbodygt
lt-- body buraya gelir --gt
ltbodygt
lthtmlgt
Bu oumlrnekte durum sat r nda 200 eklinde bir HTTP durum kodu ve Tamam (OK)
diye bir mesaj verilmektedir Durum sat r her zaman durum kodu ve her hangi bir kar kl
oumlnlemek iccedilin k sa bir mesaj iccedilerir A a da en yayg n kullan lan durum kodlar verilmektedir
200 (OK) Sunucu ba ar l istekler iccedilin bu kodu kullan r
304 (NOT MODIFIED) Sunucu goumlnderilen istekle ilgili verilerin daha i lenmedi ini
istemciye bildirmek iccedilin bu kod kullan l r Taray c lar n oumln bellek mekanizmalar iccedilin en s k
kullan lan koddur
27
401 (UNAUTHORIZED) stemcinin kaynak eri im yetkisi yoktur
anlam nda
kullan l r Genellikle bu taray c n n sunucudan kullan c ad ve ifre gibi bilgi giri i istemesiyle
olu an hatalarda meydana gelir
403 (FORBIDDEN) Yetki elde etmek iccedilin istemci ba ar s z oldu
hata kodudur 401
hatas ndan sonra e er do ru bir kullan c ad ve ifre ile oturum accedil lmamas halinde genelde bu
hata kodu olu ur
404 (NOT FOUND) Kaynak belirtilen yerde bulunamad nda bu hata kodu uumlretilir
Kod parccedilas n n ikinci sat r nda uumlretilen cevab n tarihi ve saati Date ba l nda
sunucuya goumlnderilir Content-Type ve Content-Length ba l klar POST youmlnteminde oldu u gibi
kullan l r BODY cevab basitccedile istemci kayna (iccedilerik duumlz metin ikili veri ya da farkl
tuumlrden
bilgiler olabilir) HTML kayna n iccedilerir [42]
35 AJAX leti im Teknikleri
Web uygulamalar nda ccedilo unlukla kullan c istekleri bir form uumlzerinden yap l r ve
sunucu cevab h zl bir ekilde Java ya da Php gibi bir programlama dili ile olu turulur Normal
Web uygulama modelinde kullan c daima istek uumlretir boumlylece kullan c lar n h zl ca
t klamalar yla olu an yuumlksek h zlardaki sayfa istekleri genellikle rastgele aral klarla olu ur ve
her bir istek h z n n cevab duuml uumlktuumlr [41]
AJAX uygulamalar nda yukarda bahsedilen eksikli in oumlnuumlne geccedilebilmek iccedilin ccedile itli
ileti im teknikleri geli tirilmi tir Bu teknikler
Gizli Ccedilerccedileve (Hidden Frame) Tekni i stemci-sunucu ileti iminde kullan lan gizli
ccedilerccedileve yap s yuumlksekli i ve geni li i 0 pikselden olu an ekranda goumlruumlnmeyen bir
frameset yap s na dayan r
XMLHttp Requests (XHR) AJAX teknolojisinin temel nesnesidir A a daki ba l kta
ayr nt l bir biccedilimde incelenecektir
351 XMLHttp Requests (XHR) Nesnesi
AJAX la do rudan ilgili teknolojilerin ccedilo u asenkron ve XML tekni i ile yak ndan
ilgilidir Ccediluumlnkuuml veri kodlama yollar ve ileti im katmanlar n n tedarik edilmesi bu teknikler ve
kuumltuumlphaneler uumlzerinden hareket eder Ccedilo u durumda bu XMLHttpRequest nesnesi kullan l r
ancak IFrame lerde popuumllerdir Ccedilerezler veya ActiveX Java goumlmuumlluuml ba ka bir alternatif de
kullan labilir [41]
28
XHR Nesnesi Internet Explorer 50 (IE 5) iccedilindeki ActiveX control ile ortaya ccedil km t r
XHR Javascript ile olu turulur [44] Sayfalar n tamamen yeniden yuumlklenmeden sa lanan parccedilal
guumlncelleme oumlzelli i bu nesne sayesinde olmaktad r Arka planda ccedilal an bu sistem sayesinde
asenkron bir ileti im gerccedilekle ir Yenilenme s ras nda taray c yla ba lant kesilmeksizin yeni bir
istek yap labilir
World Wide Web Consortium (W3C) standart organizasyonu standartla amam
XMLHttpRequest nesnenin tuumlm taray c larda kullan labilen youmlntem ve oumlzelliklerinin genel bir
alt kuumlmesini olu turma ccedilal malar suumlrmektedir u anda kullan lan kural kuumlmesi W3C DOM
Level 3 yuumlkleme ve kaydetme oumlzellikleri iccedilerir kinci ccedilal ma tasla
wwww3orgTRXMLHttpRequest adresinde bulunabilir Henuumlz bir standart haline
gelememesinin nedeni taray c dan taray c ya goumlre farkl davran lar goumlstermesidir
Ccedilal ma tasla na goumlre XHR nesnesinin iki goumlrevi vard r Birincisi HTTP yolu ile
sunucuya programlanabilir ba lant kuran betiklerin ccedilal mas na izin verir kinci ifade ekli ise
normal HTTP istekcevap doumlnguumlsuumlnuumln d nda sunucuyla ileti ime izin verir
XMLHttpRequest Microsoft taray c ccedile itlerinde Mozilla Firefox Konqueror Opera
ve Safari gibi neredeyse tuumlm modern taray c lar taraf ndan desteklenmektedir [42]
3511 XMLHttpRequest Nesnesi Olu turma
Nesneler olu turulurken farkl taray c lar iccedilin farkl kurallar vard r Oumlrne in Microsoft
Internet Explorer XMLHttpRequest nesnesini bir ActiveX nesnesi olarak Safari Mozilla
Firefox ve Opera ise sadece normal bir JavaScript nesnesi olarak yorumlar
Windows un guumlncelleme sisteminin temelini olu turan ActiveX Web sayfalar ndaki
aktif nesneleri etkinle tiren oumlzel bir Microsoft teknolojisidir ActiveX i mevcut Web taray c lar
aras nda u anda sadece Microsoft Internet Explorer desteklemektedir Microsoft IE nin di er
suumlruumlmleri iccedilin MSXML geli tirerek daha aktif ve kararl bir yap olu turulmu tur IE nin farkl
suumlruumlmleri iccedilin a a daki bile enler kullan l r [45]
MicrosoftXMLHttp
MSXML2XMLHttp
MSXML2XMLHttp30
MSXML2XMLHttp40
MSXML2XMLHttp50
29
IE 60+ taray c lar iccedilin a a daki tan mlama yap l r
var nesne = new ActiveXObject(Msxml2XMLHTTP)
IE 55 suumlruumlmleri iccedilin ise a a daki tan mlama yap l r
var nesne = new ActiveXObject(MicrosoftXMLHTTP)
Mozilla Firefox Opera Safari gibi taray c lar iccedilin ise a a daki tan mlama yap l r
var nesne = new XMLHttpRequest ()
Ayn anda birden fazla internet taray c s (ie firefox opera vb) ile uyumlu Web
uygulamalar iccedilin ccedilapraz taray c deste i ifadesi kullan lmaktad r Ccedilapraz taray c deste i bir
arayuumlz kodlamas nda kodlay c lar n en ccedilok zaman harcad konudur Guumlnuumlmuumlzde ccedilapraz
taray c deste i bir zorunluluk haline gelmi tir [46] AJAX uygulamalar n n sorunsuz tuumlm
taray c larla uyumlu bir ekilde ccedilal abilmesi iccedilin JavaScript iccedilerisinde try-catch bloklar
yazarak taray c ya goumlre yeni bir nesne olu turulur
function NesneOlustur()
var nesne
try
nesne = new ActiveXObject(Msxml2XMLHTTP) IE 60+ taray c lar iccedilin
catch(e)
try
nesne = new ActiveXObject(MicrosoftXMLHTTP) IE 55 taray c lar iccedilin
catch(e)
try
nesne = new XMLHttpRequest () Firefox Opera 80+ ve Safari taray c lar iccedilin
30
catch(e)
alert( Maalesef taray c n z AJAX desteklemiyor)
return null
return nesne
Yukar da tan mlanan fonksiyon sayesinde dinamik ve ccedilapraz taray c deste ine sahip bir
XHR nesnesi olu turulmu tur
3512 XHR Nesnesinin Oumlzellik ve Youmlntemleri
XMLHttpRequest nesnesine eklenebilen oumlzellikler Tablo 31 de goumlsterilmektedir [42]
Tablo 31 Standart XHR nesnesinin oumlzellikleri
Oumlzellikler Tan mlar
onreadystatechange
Nesnenin readyState oumlzelli i de i ti inde hangi olay tutucunun (event
handler) ccedila r laca n belirler
readyState ste in durumunu raporlayan tamsay de eridir
0 = uninitialized ( stek haz rlanmad Henuumlz open youmlntemi kullan lmad )
1 = loading ( stek haz rland goumlnderiliyor)
2 = loaded ( stek goumlnderildi)
3 = interactive ( stek de erlendiriliyor ve sonuccedil bekleniyor)
4 = completed ( stek tamamland ve sonuccedil geldi)
responseText Form iccedilindeki metin dizesi sunucu taraf ndan veriye doumlnuuml tuumlruumlluumlr
responseXML Sunucu taraf ndan bir belge nesnesi gibi ifade edilen veri geri doumlnduumlruumlluumlr
Status Sunucu taraf ndan geri doumlnduumlruumllen HTTP durum kodudur Oumlrne in 404
kodu Not Found yani istenilen sayfa bulunamad anlam na gelir 200 ise
OK de eri goumlnderir ve i lemin tamamland n belirtir
31
statusText Status oumlzelli inin metin kar l n verir
XMLHttpRequest nesnesinin fonksiyonunu artt ran ek youmlntemler Tablo 32 de
goumlsterilmektedir Bu youmlntemler sayesinde sunucuyla asenkron ileti im kurulur
Tablo 32 Standart XHR nesnesinin fonksiyonlar
[42]
Youmlntemler Tan mlar
abort() Geccedilerli iste i iptal eder
getAllResponseHeaders()
Gelen cevab n ba l k bilgilerini string olarak getirir
getresponseHeader(x) x gibi bir parametre olarak verilen ba l k bilgisini getirir
setRequestHeader(xy) stekle goumlnderilen ba l k bilgisine istenilen etiketi ya da de eri atar
Tablodaki youmlntemler d nda open ve send youmlntemleri de s kccedila kullan lmaktad r
Open youmlnteminin parametreleri a a da goumlsterilmektedir
nesneopen( POST | GET URL asynch username password)
1 Parametre Web sayfas na yap lacak iste in hangi youmlntemle yap laca n belirtir
2 Parametre stek yap lacak Web sayfas n n URL adresi E er GET youmlntemi
kullan l yorsa querystring lerin de erleri URL e birle tirilerek belirtilmelidir
3 Parametre True de eriyle yap lacak iste in e zamans z olaca false de eri ile
e zamanl
olaca belirlenir E er false de eri verilirse i lem bitene kadar taray c di er
kullan c isteklerine cevap veremeyecektir True yap l rsa istek ayr bir i lem olarak ele
al nacakt r
4 ve 5 Parametre Opsiyonel parametreler olup e er istek yap lan Web sayfas ifre ve
kullan c ad istiyorsa bu ekilde goumlnderilebilir [47]
Open ile haz rlanan istek sunucuya goumlnderilir E er open ile accedil lan istek post metodunu
kullan yorsa send metodu parametre olarak goumlnderilecek veriyi ta yabilir
Send metodu parametresiz veya null parametresi ile de kullan labilinir Send metodunda
cevab n gelip gelmedi inin anla labilmesi iccedilin yani e zamanl haberle menin hangi safhada
oldu unun belirlenebilmesi iccedilin Tablo 31 deki oumlzellikler eklenir Send metodunun kullan m
ekli a a da verilmi tir [42 47 48 49]
nesnesend() veya nesnesend(null)
32
3513 XHR Ccedilal ma Mant
ekil 313 bir AJAX uygulamas nda standart etkile imli bir paradigmay
goumlsterir [49]
lem ad mlar a a da s ralanmaktad r
ekil 313 Standart AJAX etkile imi [49]
1 stemci tarafl bir olay AJAX olay (event) tetikler stemcinin a a daki gibi her
hangi bir hareketi onchange olay n ba lat r
ltinput type=text d=eposta name=eposta onblur=validateEposta()gt
2 Oumlrnek bir XHR nesnesi olu turmak iccedilin open() youmlntemi kullan l r ve ccedila r lar iccedilin
ayarlan r URL ayarlar iste e goumlre kullan lacak HTTP youmlntemlerinden GET ya da
POST a goumlre belirlenir A a daki kod oumlrne inde oldu u gibi istek send() youmlntemi
ile bir ccedila r y tetikler
var xmlHttp
function validateEposta()
var eposta= documentgetElementById(eposta)
var url = validateeposta= + escape(epostavalue)
if (windowActiveXObject)
xmlHttp = new ActiveXObject(MicrosoftXMLHTTP)
else if (windowXMLHttpRequest)
xmlHttp = new XMLHttpRequest()
xmlHttpopen(GET url)
xmlHttponreadystatechange = gericagir
33
xmlHttpsend(null)
3 Sunucuya bir istek yap l r Bu bir servlet CGI script PHP ya da ASPNET ile
yaz lm herhangi bir sunucu tarafl (server-side) script olabilir
4 Sunucu herhangi bir veri ambar na eri ebilir
5 stek taray c ya geri doumlnduumlruumlluumlr XHR nesnesi Content-Type ayar textxml dir
XHR nesnesi sadece texthtml tipindeki sonuccedillar i leyebilir Daha karma k
oumlrneklerde cevap JavaScript DOM manipuumllasyon ya da ba ka benzer teknolojiler
iccedilerebilir
responsesetHeader(Cache-Control no-cache)
responsesetHeader(Pragma no-cache)
Taray c lokal sonuccedillar oumln belle inde depolamaz Bunun iccedilin yukar daki kod sat rlar na
ihtiyaccedil duyar
6 Bu oumlrnekte i lemler geri doumlnduumlruumllduuml uumlnde gericagir() ad ndaki XHR fonksiyonu
ayarlan r Bu fonksiyon sunucudan goumlnderilen durum kodlar na bakar ve XHR
nesnesinin readyState oumlzelli ini kontrol eder gericagir() fonksiyonu beklendi i gibi
i lenmi se a a daki gibi bir kod parccedilas goumlruumlluumlr
function gericagir()
if (xmlHttpreadyState == 4)
if (xmlHttpstatus == 200)
stek Ba ar l
Yukar daki anlat mla XHR nesnesinin ccedilal ma mant na de inilmi tir Genellikle
kullan lan standart ccedila r lar oumlrneklenmi tir Bu ccedila r lar yap l rken bir kuumltuumlphaneden yap lan bir
uygulamadan da faydalan labilir Yeni bir ccedilal ma alan olmas na ra men accedil k kaynak
topluluklar nda hat r say l r etkinlikler yap lmaktad r [49]
Uygulamalar olu turulurken genellikle ccedile itli frameworkler ve toolkitlerden faydalan l r
Bunlardan baz lar sadece istemci tarafl ccedilal r baz lar ise sunucu uumlzerinde ccedilal maya ihtiyaccedil
duyar
34
Bu frameworkler suumlrekli de i en ve geli en bir ortam oldu u iccedilin yeni kuumltuumlphaneler ve
suumlruumlmleri takip edilmelidir En yayg n kullan lan kuumltuumlphanelerin ba nda Prototype
scriptaculous Dojo Toolkit Direct Web Remoting (DWR) Taconite ve Rico gelmektedir [49]
36 AJAX Olu turan Bile enler
Asynchronous JavaScript and XML kelimelerinin ba harflerinden olu an AJAX
kavram kullan l zengin Web uygulamalar geli tirebilmek iccedilin pratik bir araccedilt r [50]
AJAX n A parccedilas veri ileti im tekni ini JA parccedilas ileti im youmlntemini X
parccedilas tekni in veri kodlama k sm n olu turur AJAX tam manas yla anlayabilmek iccedilin onu
olu turan bile enlerin her birini de anlamak gerekmektedir [41]
361 E zamanl Olmayan leti im
AJAX tekni inin ccedilekirde ini olu turan XMLHttpRequest nesnesi hem e zamanl hem
de e zamans z olarak ccedilal abilen bir yap uumlzerine kurulmu tur
Ccedilo u AJAX uygulamas XHR nesnesini asenkron olarak kullan r Asenkron istek
taray c ya goumlnderilir ama sunucudan bir cevap gelmesini beklemektense sonraki istek kodlar
i letilmeye devam eder lenen cevap goumlnderildi inde XHR nesnesinin onreadystatechange
oumlzelli i bir fonksiyona ba lan r Bu fonksiyonun i letilmesinden sonra readystate koduyla
iste in durumu test edilir readystate oumlzelli i 4 de erini ald nda sunucuya istek tamamland
ve sonuccedil geldi mesaj gider [51]
A a daki kod parccedilas nda asenkron bir ileti im goumlsterilmektedir [51]
get recipe using Ajax
function getRecipe(evnt)
if (xmlhttp) xmlhttp = aaGetXmlHttpRequest( )
if (xmlhttp) return
var drink = encodeURIComponent(documentgetElementById(drink)value)
var qry = drink= + drink
var url = recipephp + qry
xmlhttpopen(GET url true)
xmlhttponreadystatechange = printRecipe
xmlhttpsend(null)
if (evnt ampamp evntpreventDefault( ))
evntpreventDefault( )
35
return false
E zamans z ileti imde kullan c ayn zaman diliminde birden fazla i lem yapabilir
Oumlrne in Web sayfas nda bir form dolduruldu unda formdaki bilgiler AJAX ile goumlnderilirken
i lemin bitmesini beklemek gerekmemektedir O zaman diliminde Web sayfas n n ba ka bir
yerinde bulunan anket cevapland r labilir Ccediluumlnkuuml e zamanl
ccedilal l rken bloke edilen JavaScript
motoru e zamans z ccedilal rken serbesttir ve ba ka isteklerin goumlnderilmesine muumlsaade eder Yani
ayn zaman dilimi iccedilerisinde birden fazla iste i kabul edebilir [52]
ekil 314 E zamanl olmayan ileti im modeli
ekil 314 te goumlruumllduuml uuml gibi ayn zaman dilimi iccedilerisinde 4 adet istek yap lm t r
Kullan c bu isteklerin tamamlanmas n beklemek zorunda de ildir Bu sebeple istemci ve
sunucu aras ndaki t kla-bekle-t kla-bekle etkile imi ortadan kalkmaktad r
362 E zamanl leti im
Senkron isteklerde taray c cevap iccedilin beklerken kilitlenir
var state = documentforms[0]elements[0]value
var url = ajaxphpstate= + state
xmlhttpopen(GET url false)
xmlhttpsend(null)
alert(xmlhttpgetAllResponseHeaders( ))
Yukar daki kod dizesiyle bir form alan na Web servisi uumlzerindeki HTTP GET istek
yap s kullan larak eri ilir Uumlccediluumlncuuml sat rdaki open youmlnteminin uumlccediluumlncuuml parametresinin false
olmas n n anlam iste in e zamanl (senkron) oldu unu goumlsterir Herhangi bir parametre
almadan null de erli istek goumlnderilir stek goumlnderildikten hemen sonra uyar mesaj kutusu
36
accedil larak cevap ba l yaz l r [51] Kullan lan Web servisi h zl ysa cevap hemen gelir E er
servis yava sa istek bitinceye kadar di er sayfa aktiviteleri gerccedilekle emez [51]
E zamanl
ileti imde ayn zaman diliminde yaln zca bir i lem yap labilinir Web
taray c m zdan uzaktaki Web sunucusuna goumlnderilen istek Web sunucusunda i lenir ve tekrar
geldi i yoldan Web taray c s na geri doumlner Bu i lem belli bir zaman al r E zamanl
ccedilal rken
bu zaman diliminde ba ka bir istek goumlnderilemez [52]
E zamanl
ccedilal ma oumlzellikle Web sunucusu ayn bilgisayarda ise veya yak n olan bir
LAN uumlzerindeyse sa l kl ccedilal abilir Fakat Web sunucusu a r bir yuumlk alt ndaysa veya Web
taray c s Web sunucusuyla yava bir ba lant uumlzerinden etkile ime geccediltiyse koumltuuml bir
performans verecektir Ccediluumlnkuuml Web taray c s iccedilindeki JavaScript motoru goumlnderdi i istek
tamamlan ncaya kadar bloke edilir ve Web taray c s donmu bir ekilde iste in
tamamlanmas n bekler Bu zaman diliminde kullan c goumlnderilen iste i iptal de edemez Bu
yuumlzden Web sayfas ndaki ba ka bir noktaya t klayamaz veya ba ka bir sekmeye geccedili yapamaz
[52]
ekil 315 E zamanl
ileti im modeli
ekil 315 de goumlruumllduuml uuml gibi Web taray c s ndan goumlnderilen 1 nolu istek Web
sunucusuna iletilmektedir Al nan istek i lendikten sonra Web taray c s na geri
goumlnderilmektedir Bu zaman diliminde ba ka bir istek yap lamaz
363 Javascript
1995 y l nda Brendan Eich ad ndaki yaz l m geli tiricisi taraf ndan Netscape Navigator
20 ile birlikte geli tirilen JavaScript dili istemci tarafl
(client-side) bir betik (script) dilidir
Web sayfalar nda dinamik iccedilerik sa lamak ya da kullan c yla ileti im kurmak iccedilin kullan l r [53]
Bu ileti imin sa lanabilmesi iccedilin ortak kurallar duumlnyada uluslararas standart kurumu olan
Avrupa Bilgisayar Uumlreticileri Birli i (European Computer Manufacturers Association-ECMA)
taraf ndan belirlenir Temel kurallar ECMA Script (ECMA-262) ad verilen bir standartta
toplanm t r [54]
37
Javascript in soumlz dizim kurallar C diline benzerlik goumlsterir Derleme i lemi yap lmayan
ayr t rmal (parsed language) bir dildir Nesne youmlnelimli programlama (Object Oriented
Programming - OOP) yetene ine sahiptir [55]
AJAX n JavaScript le olan ili kisi k saca u ekilde oumlzetlenir Herkes taraf ndan
bilinen goumlnder (submit)-cevap(response) doumlnguumlsuumlnuumln oumlnuumlne geccedilerek kullan c lar n Web
sunucusuyla direk etkile im iccedilinde bulunmas n sa lar [56] AJAX goumlnder duuml mesi olmaks z n
sunucu etkile imini sa lar Veriye ihtiyaccedil duyuldu unda Web sayfas iccedilindeki Javascript kodlar
ile bir istek yapar Sunucu cevab tam bir HTML sayfas olarak de il veri olarak geri doumlnduumlruumlr
ve istemciyi cevaplar Cevab n bu ekilde olu turulmas Web uygulamalar n n masauumlstuuml
uygulamalar gibi ccedilal abilmesini sa lar [56]
Sonuccedil olarak Javascript HTML kodlar aras na goumlmuumllebilen kod parccedilalar d r Bunun
yan s ra tek ba na js uzant l JavaScript kodlar da yaz labilir Bu kodlar Internet Explorer
Firefox Opera vb tuumlm taray c lar taraf ndan desteklendi i iccedilin sorunsuz ccedilal r [57]
3631 JavaScript Ccedilal ma Prensibi
JavaScript kodlar
iccedilin herhangi bir metin editoumlruuml kullan labilir ya da Notepad gibi bir
duumlz yaz program yla da kodlar olu turulabilir Taray c lar n yorumlayabilmesi iccedilin ltSCRIPTgt
etiketiyle ba layan ltSCRIPTgt etiket ile biten JavaScript kodlar HTML belgelerinin ccedile itli
yerlerine eklenebilir Eklenen kodlar kullan c lar n HTML belgesindeki bir ba lant ya t klamas
veya klavyede bir tu a basmas yla tetiklenir ya da HTML sayfas kullan c
Browser nda
goumlruumlntuumllendi i anda otomatik olarak ccedilal maya ba lar Otomatik ccedilal an Javascript kodu ise iki
ayr youmlntemle ccedilal t r labilir lk youmlntem HTML kodlar i letilmeden oumlnce (yani Web sayfas
kullan c n n Web Browser nda goumlruumlntuumllenmeden oumlnce) ccedilal mas ikinci youmlntem sayfa
goumlruumlntuumllendikten sonra script kodlar n n ccedilal mas d r [58] Bu youmlntemler a a da s ras yla
accedil klanmaktad r
HEAD boumlluumlmuumlnde
BODY boumlluumlmuumlnde
HEAD Boumlluumlmuumlndeki Scriptler HEAD etiketleri iccediline ltSCRIPTgt ltSCRIPTgt etiketi
kullanarak istenilen JavaScript kodlar
eklenebilir Bu kodlar HTML sayfas n n BODY boumlluumlmuuml
yuumlklenmeden i lenir
38
ltHTMLgt
ltHEADgt
ltSCRIPT LANGUAGE=Javascript12gt
alert(Merhaba Duumlnya) ltSCRIPTgt
ltHEADgt
ltBODYgt
ltBgtDeneme Sayfas na Ho geldinizltBgtltbrgt
ltBODYgt
ltHTMLgt
Yukar daki oumlrnekte kaynak kodlar yukar dan a a ya do ru i letilirken sayfada ilk
goumlruumlntuumllenecek olan alert( ) komutuyla ekrana yaz lan Merhaba Duumlnya
ileti im kutusu
olacakt r Gelen ileti im kutusunda Tamam butonuna bas ld nda body boumlluumlmuumlndeki
kodlar n i lenmesine s ra gelecektir Ekrana Deneme Sayfas na Ho geldiniz mesaj
yazacakt r
BODY Boumlluumlmuumlndeki Scriptler HTML belgesinin BODY boumlluumlmuumlnde JavaScript
kullanmak iccedilin iki yol vard r
Do rudan ccedilal acak kodlar ve kullan c taraf ndan ccedilal acak kodlar
Do rudan ccedilal acak JavaScript kodlar
ltBODYgtltBODYgt etiketleri aras na
ltSCRIPTgt etiketi kullan larak HTML belgesinin istenilen yerine yaz l r Bu cuumlmleler taray c
taraf ndan okundu u anda yerine getirilir
ltHTMLgt
ltHEADgt
kinci Ornek
ltHEADgt
ltBODYgt
ltSCRIPT LANGUAGE=Javascript12gt
alert(Javascript duumlnyas na ho geldiniz)
ltSCRIPTgt
ltBODYgt
ltHTMLgt
Yukar daki oumlrnekte ise kod i leme s ras na uygun olarak i letilerek oumlnce HEAD
etiketleri yorumlanarak ekrana kinci Ornek yaz p hemen ard ndan ileti im kutusu ccedil karak
39
Javascript duumlnyas na ho geldiniz yazacakt r Kullan lan di er bir youmlntem ise kullan c
taraf ndan bir olay n ba lat lmas yla bir JavaScript kodunun ccedilal t r lmas d r
ltHTMLgt
ltHEADgt
ltSCRIPT LANGUAGE=Javascript12gt
genel de i ken tan mlar
var n = Merhaba Duumlnya
bu fonksiyon uyar kutusu accedilar
function merhaba()
alert(n)
ltSCRIPTgt
ltHEADgt
ltBODYgt
ltbrgtltbrgtltbrgtltbrgtltBgtButona T klad n zda Merhaba Duumlnya yazan ileti im kutusu ekrana
gelecektirltBgtltbrgtltbrgt
ltFORMgt
ltINPUT TYPE=SUBMIT NAME=dugme1 VALUE=TIKLAYINIZ
onclick=merhaba()gt
ltFORMgt
ltBODYgt
ltHTMLgt
Yukar daki oumlrnekte ise HEAD etiketleri aras nda de i ken tan mlama ve fonksiyon
olu turma i lemleri yap lm t r BODY komutu i letildikten sonra FORM ouml esiyle olu turulan
duuml me kullan c taraf ndan t kland nda script kodu tetiklenerek fonksiyon ccedila r l r ve mesaj
kutusu ekrana gelir
Ayr ca ltBODYgt iccedilinde URL kullan larak da a a daki oumlrnek kodla goumlsterildi i gibi
JavaScript kodu ccedila r labilmek muumlmkuumlnduumlr
ltA HREF=javascript alert(Ccedil kmak istedi inizden emin misiniz)gtSiteden Ccedil kltAgt
40
3632 Javascript Dilinin Oumlzellikleri
JavaScript dilinin temel soumlz dizim yap s na a a da incelenecektir
36321 De i kenler
Bir de eri iccedileren bellek adlar n ifade ederler De i kenler verileri saklar ve onlara
eri imi sa larlar De i kenlerin bir ad olur bir de de eri olur Program boyunca de i kenin ad
de i mez fakat iccedileri i de i ebilir
Bir JavaScript de i keni belli kurallara uymak zorundad r
a) De i kenler harfle ya da alt ccedilizgi (_) ile ba lamal d r Rakam veya di er
i aretler birinci karakter olarak kullan lamaz fakat de i ken ad n n di er
karakterlerinde kullan labilir
b) Javascript buumlyuumlk kuumlccediluumlk harfe kar duyarl d r (case-sensitive oumlzellli i) Ayn
kelimenin buumlyuumlk harfle yaz lmas ile kuumlccediluumlk harfle yaz lmas farkl isimler
olarak alg lanmas na neden olur
c) De i ken isimleri iccedilinde bo luk olmamal d r
d) Kullan c lar n bilgisayar nda kullan lan dil setinin ayarlar her bir kullan c iccedilin
farkl l k goumlsterebilece i iccedilin ngilizce alfabede bulunmayan Tuumlrkccedile ve di er
dillerdeki high-ASCII karakterleri ( ile uuml Uuml ouml Ouml ccedil ve Ccedil)
kullanmamakta fayda vard r [58]
36322 Kapsam
Bir de i kene bir de er atand nda bu de erin geccedilerli olaca suumlreyi belirlemek iccedilin
kapsam (scope) kavram kullan l r Bir de i kenin kapsam
global ya da lokal olabilir Bir
global de i kene sayfa uumlzerinde herhangi bir JavaScript ten eri ilebilir Lokal de i ken ise
de erin atand yordam iccedilinde geccedilerlidir
A a daki oumlrnekte bir de i kenin kendisine atama yaparak de er verilir
adi= Zeynep
Bir fonksiyon yaz l rken yerel bir de i ken olu turmak iccedilin a a daki oumlrnekte oldu u
gibi var kelimesiyle tan mlama yap l r
41
function toplama()
var sayi=1
toplam=0
deyimler
Yukar daki oumlrnekte sayi adl de i ken toplama fonksiyonu iccedilin yerel toplam de i keni
ise tuumlm sayfa iccedilin genel (global) de i ken olacakt r De i kenlere atanan de erler Tablo
33 deki de i ken tuumlrlerinden herhangi biri olabilir Verinin tuumlruumlne ba l olarak de er uumlzerinde
belirli i lemler yap labilir ya da yap lamaz Oumlrne in iki string de er uumlzerinde aritmetik i lem
yap lamaz
Tablo 33 De i ken tuumlrleri
De i ken Tuumlrleri
Numbers Tam ve ondal kl
say lar iccedilerir Pozitif 0 ya da negatif olabilir
Booleans Mant ksal veri tuumlruumlduumlr True (Do ru) ya da False (Yanl ) de erini al r Sorgulama
sonunda geriye True iccedilin 1 False iccedilin 0 de erini doumlnduumlruumlr
Strings Karakter bilgi iccedileren bir de i kendir T rnak iccedilinde yaz lan ifadeler de i kene
atan r
Objects Taray c ya ait nesnelerdir nesne= new Object() eklinde kodlamada kullan labilir
Null Oumlzel bir de i kendir ccedili bo ya da de ersiz olarak ifade edilir
Undefined
Bir de i ken yarat ld ktan sonra iccedilerdi i tan ms z de eri simgeler
36323 leccediller (Operators)
leccediller iki ya da daha fazla de er uumlzerinde i lem yap lmas n sa lar De erler ya da
de i kenler aras nda toplama ccedil karma mod gibi i lemler yap labilir
Tablo 34 leccediller ve goumlrevleri
leccediller ve Goumlrevleri
+ Toplama
- Ccedil karma
Ccedilarpma
Boumllme
42
MOD Boumllmede kalan verir (10 3 i lemi 1 de erini verir )
++
Tek art r m De er 1 art r l r
-- Tekli azaltma
- Negatifle tirme lenenin negatif de erini doumlnduumlruumlr
36324 kili leccediller
kili i leccediller birden ccedilok kar la t rma i lemini tek bir ko ul ifadesi olarak birle tirirler
Oumlrne in
sayi =1 AND dongu gt 1000 ise gibi
Tablo 35 kili i leccediller
kili i leccediller
ampamp
Mant ksal Ve And ki ifade de do ruysa True de erini doumlnduumlruumlr
|| Mant ksal Veya Or fadelerden birisi do ruysa True de erini doumlnduumlruumlr
Mant ksal De il Not Negatifle tirme i lemi do ruysa True de erini doumlnduumlruumlr
36325 Atama Deyimi
Atama deyimi (=) bir de i kene sa dan bir de erin atanmas n sa lar De i kenlere
tuumlrlerine ve tan mlamalar na uygun olan herhangi bir de er atanabilir
Oumlrnek sayi=100
Oumlrnek toplam=(fiyat+kdv)
Sa daki de eri soldaki de i kene atayan += -= = = ifadeleri de kullan labilir
Oumlrne in toplam+=fiyat (di er bir de i kenden gelen fiyat de erini toplam de erine
ekler ve sonucu toplam de i kenine atar)
36326 fadeler
De i kenlerin i leccedillerin ve deyimlerin bir araya gelerek olu turduklar yap lar
ifade
eder
Oumlrne in toplam = sayi 1 sayi2 formuumlluuml bir ifadedir
43
36327 Deyimler
Deyimler belli bir komut ya da soumlz dizimi bile enlerine verilen add r Oumlrne in bir komut
ya da bir IF yap s deyim olabilir
Oumlrnek if (basari_notugt50) deyimler else deyimler
36328 Nesneler
Kendi de erleri oumlzellikleri ve i lemleri olan bile enlere nesne (object) denir JavaScript
dilinde ccedilok say da yerle ik nesne vard r
JavaScript buumltuumln Web sayfas n ve taray c y nesneler toplulu u olarak goumlruumlr Bu
sisteme DOM (Document Object Model) denir [59]
JavaScript kullanarak dinamik ve etkile imli goumlruumlnuumlmler elde edilir DOM a JavaScript
ve JScript gibi ECMAScript olan kullan c taraf ndaki bir scripting dili yard m yla eri ilebilinir
DOM la veri al -veri i yeni bir sayfada kullan c ekran na yans t lmaz Parccedilal guumlncelleme
olay n n buumlyuumlk k sm bu modelle gerccedilekle tirilir
Ba lang ccedilta Javascript geli tiricileri kullan c lar na daha zengin uygulama deneyimleri
ya atabilmek ve sayfalardaki etiketlerde dinamik de i imler sa lanabilmesi iccedilin ccedilaba sarf
ediyordu Bu durum sayfalar n bir nesne gibi i lenebilmesini gerekli k ld Boumlylece DOM ortaya
ccedil km t r lk oumlnceleri Javascript ve DOM s k bir ili ki iccedilindeydi sonuccedilta ise iccedilerik ayr larak
geli tirilmi tir DOM sayfalar n JavaScript veya VBScript gibi bir betik dili ile de i tirilebilir
sayfalar n tamamen nesne youmlnelimli goumlsterimidir [60]
DOM ekil 316 da goumlsterilen JavaScript iccedilindeki buumltuumln nesneleri ifade etmektedir
Hiyerar ik olarak ccedilok say da nesneyi iccedilerir NetScape ve Microsoft taray c lar iccedilin DOM
nesneleri farkl oldu u iccedilin yaz lan kodlar uyumlu de ildir [59]
44
ekil 316 Javascript nesneleri [59]
Window nesnesi taray c n n kendisidir Window nesnesi birccedilok youmlnteme oumlzelli e ve
olaya sahiptir Form nesnesi DOM nesnesinin ana nesnesidir Form uumlzerindeki alanlar bu nesne
arac l yla kullan l r [59]
Verilerin yuumlklenmesinde kullan lan XML ile uumlretilen Javascript istemci kodlar ve veri
sunucu uumlzerindeki kodlar aras ndan ayr larak goumlsterilir Bu istemcinin etkilenmeksizin sunucu
uumlzerinde de i iklik yap lmas n sa lar Benzer API iccedileren di er istemciler iccedilin bilgileri accedil a
ccedil kar r [41]
363281 DOM (Document Object Model)
Document Object Model (DOM) XML ve HTMLXHTML iccedilin World Wide Web
Consortium (W3C) taraf ndan geli tirilen bir belgenin a accedil yap s n (tree-based) temsil eden bir
standartt r DOM bir tak m nesneler iccedilin belgenin yap s n temsil etmesinin yan s ra bu
nesnelere eri im iccedilin youmlntemler de sa lar [44]
DOM bir belgenin stilini kaynak dosyas n yap s n ve iccedileri ini guumlnceller ve program
ile scriptlerin belgeye eri imine izin veren bir platformdur Ayn zamanda bir API (application
programming interface) dir [62]
Nesneleri iccedileren belgeler iccedilin standart model olarak DOM uumlccedil boumlluumlme ayr lm t r
Core DOM
XML
HTMLXML DOM - XML
45
HTML DOM
HTML
DOM da her internet sayfas bir belge ve bu belge iccedilerisinde bulunan tuumlm elemanlar ise
nesne olarak kabul edilir DOM sayfa uumlzerindeki her bir XML eleman
iccedilin nesnelerin a accedil
yap s n n resmini goumlrselle tirmenin kolay bir yoludur A a daki oumlrnek basit bir XML
belgesinin doumlrt duuml uumlmden olu an DOM u goumlstermektedir Koumlk Dokuumlman duuml uumlmuuml koumlk etiketi
iccedilin bir Element duuml uumlmuuml alt etiketler iccedilin bir Element duuml uumlmuuml ve alt etiketin sahip olaca
herhangi bir bilgi girilebilen bir metin duuml uumlmuumlduumlr [41]
ltrootTaggt
ltchildTaggtSome TextltchildTaggt
ltrootTaggt
Bir a accedil yap s n n goumlrsel bir temsili a a da goumlsterilmektedir
Dokuumlman
Element (koumlkEtiket)
Element (altEtiket)
Metin
A a daki kod kuumlmesinin [63] DOM goumlsterimi ekil 317 deki gibidir
ltTABLE border=1gt
ltTBODYgt
ltTRgt
ltTDgtOumlgr NoltTDgt
ltTDgtAd Soyad ltTDgt
ltTRgt
ltTRgt
ltTDgt900ltTDgt
ltTDgtZeynep OumlZERltTDgt
ltTRgt
ltTBODYgt
ltTABLEgt
46
ekil 317 DOM a accedil yap s
[63]
Geccedilerli her HTML ve XML belgesindeki element nitelik metin duuml uumlmuuml (text node)
hatta bo luk ve sekme karakterleri(whitespace) bile W3C DOM taraf ndan duuml uumlm (node) olarak
kabul edilir ekil 317 deki gibi belgedeki duuml uumlmlerin kullan m hiyerar isine goumlre
s ralanmas na da duuml uumlm a ac (node tree) denir Belge nesnesi yeni duuml uumlmler olu turmak bu
duuml uumlmlerin oumlzeliklerini de i tirmek ve youmlnetmek iccedilin ccedilok say da youmlnteme sahiptir
363282 DOM Elementinin S k Kullan lan Genel Oumlzellikleri ve Youmlntemleri
A a da duuml uumlmlere eri mek ve youmlnetmek iccedilin s k kullan lan JavaScript youmlntemleri
vard r [64]
getElementById()
Soumlzdizimi
documentgetElementById(herhangiBirID)
Oumlrnek kullan m
element = documentgetElementById(kimlik)
getElementById() youmlntemi id oumlzelli i belirtilen elementlerin referans n n al nmas n
sa lar Ayn id kimli ine sahip ba ka bir element olmas durumunda sadece ilk elementi verir
Di erlerine eri im sa lamaz kimlik
dokuumlman uumlzerinde elementi bulmak iccedilin kullan lacak
e siz bir oumlzelli ini ifade eder
47
getElementsByTagName()
Soumlzdizimi
documentgetElementsByTagName(herhangiBirHTMLElementi)
Oumlrnek kullan m
documentgetElementsByTagName(etiketAdi)
Dokuumlman uumlzerinde belirtilen ayn etiket ismine ait buumltuumln elementlerin bir listesini verir
documentgetElementById(herhangiBirID)documentgetElementsByTagName()
parametresiyle id niteli inin de eri herhangiBirID olan elementin duuml uumlmleri
iccedilindeki tuumlm elementler listelenir
getElementsByName()
Soumlzdizimi
documentgetElementsByName(herhangiBirIsim)
Oumlrnek Kullan m
documentgetElementsByName(baslik)
Bu youmlntem dokuumlman uumlzerinde belirtilen name oumlzelli ine sahip elementlerin bir listesini
verir Oumlrnek kullan mda name niteli inin de eri baslik olan elementleri verir
firstChild
Bu oumlzellik elementin ilk alt elementini verir
Soumlzdizimi
documentgetElementById(herhangiBirID)firstChild
lastChild
Bu oumlzellik elementin son alt eleman n verir
Soumlzdizimi
documentgetElemementById( herhangiBirID )lastChild
48
nodeValue
nodeValue oumlzelli i text comment ve CDATA duuml uumlmlerinin iccedilerdikleri de eri verir
Soumlzdizimi
m= documentgetElemementById( herhangiBirID )lastChildnodeValue
m e er varsa duuml uumlmuumln iccedilerdi i de erin string olarak de eridir document nesnesinin
ve elementlerin nodeValue de eri null doumlner
removeAttribute()
removeAttribute fonksiyonu elementin belirtilen bir oumlzelli inin silinmesini sa lar
Soumlzdizimi
elementremoveAttribute(ozellik)
ozellik silinecek oumlzelli in ad d r
nodeName
Duuml uumlm bilgilerini almak iccedilin kullan l r Geccedilerli duuml uumlmuumln ad n doumlnduumlruumlr
Geccedilerli duuml uumlm element ise elementin tipini doumlnduumlruumlr Nitelik ise nitelik ad n doumlnduumlruumlr
nodeType
Geccedilerli duuml uumlmuumln tuumlruumlnuuml say sal olarak doumlnduumlruumlr
nextSibling
Duuml uumlmler aras gezinti yap labilmesiyi sa lar Geccedilerli duuml uumlmden bir sonrakine referans verir
previousSibling
Geccedilerli duuml uumlmuumln bir oumlncekine referans verir
setAttributeNode
Bir duuml uumlme nitelik atamada kullan l r
Soumlzdizimi
elementsetAttributeNode(nitelik)
49
36329 Fonksiyonlar
Fonksiyonlar birden fazla ad mdan olu an i lemlerin kolayca tek seferde yap lmas n
sa lar Fonksiyonlar bir dizi i lemi yerine getirir ve bir sonuccedil doumlnduumlruumlr Ayr ca fonksiyonlar
parametre olarak kabul edilen birccedilok de er al rlar
Fonksiyonlar n HTML dosyas n n HEAD boumlluumlmuumlne koyulmas yani gerekli buumltuumln
fonksiyonlar alt alta HTML in HEAD boumlluumlmuumlnde yer alacak bir SCRIPT etiketi iccedilinde
olu turulmas taray c n n Javascript yorumlay c s bak m ndan h z kazanmas n sa lar Sonra
ihtiyaccedil duyuldu unda yeni bir SCRIPT etiketi koyarak bu fonksiyon goumlreve ccedila r l r [58]
function fonksiyonun_ad (arguumlman1 arguumlman2 arguumlmanN)
i lemler
deyim 1
deyim 2
deyim N
363210 Accedil klamalar
Programlar n anla l r olmas n sa layan accedil klama sat rlar JavaScriptte bu lt- ve --gt
i aretlerinin aras nda ifade edilir [58]
lt- Accedil klama sat r d r --gt
37 Basit Bir AJAX Oumlrne i
Ekran ccedil kt s ekil 318 de goumlruumllen basit bir oumlrnek uumlzerinde i leyi anlat lacakt r
ekil 318 AJAX oumlrne i
50
indexhtml dosyas accedil ld nda Metnin AJAX la getirilmesi iccedilin tiklayiniz
ba lant s na t kland nda taray c kullan lan AJAX youmlntem sayesinde tuumlm sayfa yeniden
yuumlklenmeden iccedileri i sunucu da depolanan sonuchtm dosyas ndan alarak ekrana yans t r
Yukar daki indexhtml dosyas n n kodlar a a da goumlsterilmektedir
lthtmlgt
ltheadgt
lttitlegtAJAXla oumlrne ilttitlegt
ltscript language=JavaScript type=textjavascriptgt
function getXmlHttpRequestObject()
if (windowXMLHttpRequest)
return new XMLHttpRequest() IE olmayan
else if(windowActiveXObject)
return new ActiveXObject(MicrosoftXMLHTTP) IE
else
alert(Maalesef taray c n z XmlHttpRequest nesnesini desteklememektedir AJAX
destekleyen bir taray c da tekrar deneyiniz)
var receiveReq = getXmlHttpRequestObject()
function cevap()
if (receiveReqreadyState == 4 || receiveReqreadyState == 0)
receiveReqopen(GET sonuchtml true)
receiveReqonreadystatechange = handlecevap
receiveReqsend(null)
function handlecevap()
if (receiveReqreadyState == 4)
documentgetElementById(span_result)innerHTML = receiveReqresponseText
ltscriptgt
ltheadgt
lta href=javascriptcevap()gtMetnin AJAXla getirilmesi icin tiklayinizltagtltbr gt
51
ltspan id=span_resultgtltspangt
lthtmlgt
Oumlrnekte ilk olarak tuumlm taray c larda sorunsuz ccedilal abilmesi iccedilin ccedilapraz taray c deste i
sa lanm t r receiveReq de i keni getXmlHttpRequestObject() ile tan mlanm t r Daha
sonra cevap fonksiyonu olu turulmu tur Sunucudan gelen cevab n durumu ifelse yap s yla
kontrol edilmi tir Sunucudan gelen gelen cevaba goumlre doumlnduumlruumllen de erlerle sonuchtml sayfas
ccedila r larak uygulama sonlan r
AJAX youmlntemi ile ccedilekilen bilginin tutuldu u sonuchtml dosyas nda ise sadece ekil
319 de yazan veri bulunmaktad r
ekil 319 sonuchtml sayfas n n ekran ccedil kt s
38 XML
XML (eXtensible Markup Language) internet te teknik standartlar ve youmlnetim
konusunda yetkili organ olan W3C (World Wide Web Consortium) organizasyonu taraf ndan
geli tirilmi tir XML programc lar n kendi sistemlerini olu turabilecekleri kendi etiketlerini
tan mlayarak ccedilok daha rahat ve etkin programlama yapabilecekleri ve bu belirlenen etiketleri
kendi yap lar iccedilerisinde standartla t rabilece i esnek geli tirilebilir ve kolay uygulanabilir bir
meta-dil (bir dili tan mlamak iccedilin kullan lan soumlzcuumlkler dilbilim dili) dir [65]
XML ile ilgili ilk ve en oumlnemli nokta ba l ba na bir dil olmamas d r Daha ziyade
di er dilleri ya da bir dili olu turan soumlzcuumlkleri olu turmak (vocabularies) iccedilin kullan lan bir
meta-dildir XML bu soumlzluumlklerin olu turulmas iccedilin gerekli kurallar tan mlar [66]
XML bu kural yap s na uygun olarak etiketleri iccedilerik bilgisiyle tan mlayabilir XML nin
esnek yap s sayesinde a a daki oumlrnekte oldu u gibi kullan lan dilde ccedilok farkl tiplerde etiket
olu turulmas na muumlsaittir XML soumlzluuml uumlndeki tek k s tlamas etiketlerin iyi biccedilimlendirilmi
olmas gerekti idir [66]
52
ltnotgt
ltkimegt Melek lt kimegt
ltkimdengt Zeynep lt kimdengt
ltbaslikgt Hatirlatici ltbaslikgt
ltbodygt Bana proje teslim tarihini hatirlat lt bodygt
ltnotgt
Yukar daki not oumlrne i kendi kendini accedil klay c bir oumlrnektir Goumlnderici ve al c bilgisinin
yan nda mesaj metni ve ba l da mevcuttur XML nin HTML de oldu u gibi oumlnceden
tan mlanm etiketleri yoktur XML yazar kendi etiketlerini ve kendi belge yap s n oumlrnekteki
gibi olu turabilir
Her dil farkl d r ama hepsinde iccedileri i i aretlemek iccedilin etiketler kullan l r Etiket
adlar n n seccedilimi ve yap s esnektir ve genellikle gruplarda bilginin payla labilmesi iccedilin standart
XML soumlzluumlkleri kararla t r lm t r [66]
XML 1998 y l nda SGML alt yap s uumlzerine kurulmu tur SGML (Standard
Generalized Markup Language) bir etkinle tirme teknolojisidir HTML gibi uygulamalarda
kullan l r Geni letilebilir aretleme Dili (Extensible Markup Language-XML) nin oldukccedila
basit bir diyalektidir [66]
XML SGML ve HTML sistemlerinin her ikisinin de uygulanmas n kolayla t rmak iccedilin
tasarlanm t r XML ayn zamanda son derece popuumller bir veri format d r Ccediluumlnkuuml ccedilo u
programlama dili taraf ndan desteklenir Bu dil sayesinde geli iguumlzel veri tipleri tan mlamak
kolayd r Ccedilo u kez XML Uzak Yordam Ccedila r s - Remote Procedure Call (RPC) mekanizmas
sayesinde istemci-sunucu ileti imini kolayla t rmak iccedilin kullan lm t r [66] XML elde edilmek
istenen alan bilgileri konfiguumlrasyon parametreleri teknik ccedilizim hesap ccedilizelgesi (spreadsheet)
gibi ouml eleri iccedileren dosyalar n yaz l m nda kullan l r [67]
XML verileri goumlruumlntuumllemek iccedilin de il verilerin platformdan ba ms z bir ekilde
depolanmas ve transferi iccedilin tasarlanm t r XML tuumlm bilgiler duumlz metin format nda saklar Bu
da tuumlm platformlarda sorunsuz bir ekilde kullan labilir olmas n sa lar Bu dosyalar diskte duumlz
metin olarak tutman n bir avantaj
da olu turuldu u programda accedil lmas gerekli de ildir Bu
yaz dosyalar programc n n istedi i bir yaz i leme program nda accedil l p duumlzenlenebilir Ayr ca
XML veriyi duumlz metin (plain text) format nda saklamas ndan dolay veriyi payla t rma
konusunda hem yaz l m hem de donan mdan ba ms z hareket edebilme imkacircn n sunmu tur
53
381 Oumlrnek XML Belgesi Olu turma
XML belgelerinin yap s n n daha iyi kavranabilmesi iccedilin basit bir oumlrnekten yola ccedil k l r
Bir dizi karakter mant ksal bir yap ya ccedilevrilmelidir Bu ccedilevrim a accedil yap s kullan larak
yap labilir Oumlrnek belgede koumlk dizin ya da element ve alt boumlluumlmler iccedilin de dallar belirlenir
denemexml olarak kaydedilecek belgenin iccedileri inde sisteme kay tl kullan c lar n bilgileri
vard r
Haz rlanan denemexml belgesinin a accedil yap s a a daki gibi olu turulmu tur Koumlk
element ve alt dallar ve alt dala ait nitelik belirtilmi tir
ekil 320 denemexml dosyas n n a accedil yap s
A accedil yap s olu turulduktan sonra kodlama k sm na geccedililir XML de kod yaz m n
kolayla t rmak iccedilin Altova XMLSpy MoreMotion XML Editor XMLwriter XML Editor 26
gibi ccedile itli editoumlr programlar kullan labilir Bu tez ccedilal mas nda oldukccedila i levsel oumlzelliklere
sahip Altova XMLSpy yaz l m kullan lm t r Editoumlr kullanarak dokuumlmandaki metinlerin
yap sal elemanlar yaz oumlzellikleri (renk stil biccedilim vb ) belirginle tirilir mlerin otomatik
soyadi
adi
soyadi
eposta
adi
soyadi
eposta
Kullanicilar Kullanici Kullanici_id= 2
Kullanici Kullanici_id= 3
Kullanici Kullanici_id= 1
adi
eposta
54
olarak kapanmas sa lanabilir Olu turulan yap lar n do rulu u ve geccedilerlili i kolayca kontrol
edilebilir Altova XMLSpy editoumlruumlyle olu turulan belge a a daki kodlardan olu maktad r
ltxml version=10 encoding=UTF-8gt lt--Bu XML belgesi kullan c bilgilerini tan mlar --gt ltKullanicilargt
ltKullanici kullanici_id=1gt
ltadigtZeynepltadigt
ltsoyadigtOZERltsoyadigt
ltepostagtz_ozerhotmailcomltepostagt
ltKullanicigt
ltKullanici kullanici_id=2gt
ltadigtYagmurltadigt
ltsoyadigtOZERltsoyadigt
ltepostagty_ozeryahoocomltepostagt
ltKullanicigt
ltKullanici kullanici_id=3gt
ltadigtFatihltadigt
ltsoyadigtAYDOGMUSltsoyadigt
ltepostagtf_aydogmusgmailcomltepostagt
ltKullanicigt ltKullanicilargt
Haz rlanan dokuumlman iyi biccedilimlendirilmi (well-formed) bir yap ya sahiptir ekil 321
de Altova XMLSpy editoumlruumlyle olu turulan belgenin ekran goumlruumlntuumlsuumlnde denemexml
goumlruumllmektedir
55
ekil 321 XML belgesi
382 XML Dokuumlman n n Yap s
XML ile veriler yap bak m ndan moduumllerlik kazanmaktad r Bu sayede verilerin iccedilerik
yap ve sunum k s mlar ayr moduumlller halinde farkl XML dokuumlmanlar nda tutulmaktad r
Her XML belgesini olu turan moduumlller iki boumlluumlmde incelenecektir Bu moduumlller giri
boumlluumlmuuml (prolog) ve belge ya da koumlk duuml uumlm (document node) olarak ayr lm t r
Prolog XML belgesinin ba nda goumlruumlntuumllenir ve belge hakk nda iccedilerikle ilgili bilgiler
iccedilerir XML bildirimleri i lem accedil klamalar yorumlar ve DTD (Document Type
Definition)XML ema iccedilerebilir
yi duumlzenlenmi bir XML dokuumlman tek ve temel bir koumlk duuml uumlm uumlzerine kurulur
Elementler nitelikler metin CDATA (character data) varl k ve yorumlar iste e ba l olarak
eklenebilir
56
ekil 322 Oumlrnek bir XML dokuumlman yap s
[ 66]
3821 Giri Boumlluumlmuuml (Prolog)
Bu boumlluumlmde XML belgesinde bulunabilecek oumln tan mlama konular incelenecektir
3822 XML Bildirimleri
XML dokuumlmanlar genellikle a a daki bildirim sat r yla ba lar Bildirim sat r ndan
oumlnce ba ka komut sat r yaz lmamal d r Tersi bir durumda XML dokuumlman iccedileri i i leme
koyarken do ru bir ekilde okuyamaz ve hata mesaj uumlretir
ltxml version= 10 encoding= UTF-8
gt
Bu i lem sat r nda ba lang ccedil etiketi ve biti etiketi yoktur XML bildiriminin yap ld
ltxml ve gt i lem komut etiketleridir lem komutlar oumlrnekteki gibi biti ik yaz l r Bu oumlrnek
sat rda 2 tane oumlznitelik bar n r Birinci oumlznitelik xml dokuumlman n n hangi suumlruumlm oldu unu bildirir
ve yaz lmas zorunludur En yayg n kullan lan ve en guumlncel suumlruumlmuuml olan 10 yerine ba ka bir
57
de er yaz ld nda dosya i lenmeyebilir kinci oumlznitelik olan encoding belge i lenirken
kullan lacak dil seccediliminin belirtildi i aland r Oumlrnekteki kod birccedilok dili destekleyen UTF-8
karakter dil setini tan mlar
38221 lem Accedil klamalar (Processing Instructions)
Giri boumlluumlmuumlnde di er uygulamalara XML dokuumlman hakk nda bilgi veren i lem
accedil klamalar (Processing Instructions- PIs) dacirchil edilebilir lem accedil klamalar lt karakterleriyle
ba lar ve gt karakterleriyle biter PIs XML belgesinin di er boumlluumlmlerinde goumlruumllebilmesine
ra men genellikle giri boumlluumlmuumlnde goumlruumlluumlr
XML bildirimleri ltxml karakter grubuyla ba lar lem accedil klamalar yla benzerlik
goumlsterir Fakat aralar ndaki fark XML bildirimleri ltxml karakter grubuyla ba larken i lem
accedil klamalar ise lt karakterleriyle ba lar
Bir XSL stylesheet i referans goumlsteren PI goumlsterimi
ltxml-stylesheet type= textxsl
href= stylesheetxsl gt
PI nin ilk ouml esi bir isimdir PI hedefi olarak adland r l r Yukar da goumlsterilen PI xml-
stylesheet ismine sahiptir simler ltxml karakter grubundan - semboluumlyle ayr l r PI ler type=
textxsl href= stylesheetxsl metin karakter dizesine sahiptir Oumlrnek kod sat r nda stylesheet
ad nda metin iccedilerikli bir XSL dosyas referans goumlsterilmi tir
38222 Yorumlar (Comments)
Yorum sat rlar XML belgesinin hemen hemen her yerinde iste e ba l olarak
kullan labilir XML yorum sat rlar XHTML belgelerindeki yap yla ayn d r Ayn karakterlerle
ba larlar
lt--Bu alana yorumlar yaz labilir --gt
Yorum sat rlar XML belgesi i lenirken etkilenmezler Bu sat rlar programc lar n ya da
kullan c lar n program kodlar n kolayca anlayabilmeleri iccedilin yaz l r [68]
58
38223 Dokuumlman Tipi Tan mlama-The Document Type Definition (DTD) ve XML
emalar
XML belgesinin standartla t r lmas iccedilin kullan lan bir yap d r XML belgesinin hangi
elementleri iccedilerece ini ve bu elementlerin oumlzniteliklerinin ne olaca n elementlerin neleri
ta yaca n dokuumlman iccedilerisindeki tekrar eklini ve say s n kurallarla belirtir [69]
382231 DTD kullanman n Avantajlar
Veri depolama XML nin temel amaccedillar ndan birisidir Oumlrne in yaz l m geli tirecek bir
proje ekibi ccedilal rken ortak bir DTD nin olu turulmas yla geli iguumlzel yeni etiketler eklenmesinin
etiketlerle depolanan bilginin hatal s ralanmas n n etiketlere hatal nitelikler eklenmesinin
oumlnuumlne geccedililmi olur Ayr ca i lem yapan program n da bu belgeleri tan mas ve i lemesi kesinlik
kazan r [70] Belge i lenirken geccedilerlilik derleyicileri (validating parsers) XML belgesinin DTD
geccedilerlili i sa lanana kadar tekrar tekrar kontrol eder E er geccedilerlilik kontroluumlnden geccedilemezse
derleyici hata mesaj verir [66]
ccedileri in bir standarda oturtulmas yla AJAX ve dinamik DOM manipuumllasyonunda
istenmeyen gereksiz kod parccedilalar n n ve ccedilal mayan i aretlemelerin oumlnuumlne geccedililir Ayr ca daha
h zl HTML derleyicileri ve daha iyi ccedilapraz taray c performans iccedilin geli mi arama motoru
optimizasyonu sa lan r Bir DOCTYPE belirlemenin en oumlnemli etkisi HTML iccedileri inin nas l
ayr t r ld n ve yorumland n n Web taray c ya goumlsterilmesi gerekti ini belirtmesidir Ayr ca
DOCTYPE ba l olarak CSS yorumlanabilir ve HTML farkl ekilde goumlruumlntuumllenir [71]
Hangi i lem moduna dacirchil oldu u tespit edilerek Web taray c lar
DOCTYPE
doumlnuuml uumlmuumlnuuml destekler Web taray c lar bir Web sayfas n n nas l HTML ve CSS iccedileri ini
yorumlad n
ve de erlendirdi ini sayfalar n DOCTYPE bildirimlerine dayanarak de i tirir
[71]
382232 DTD tan mlama
DTD olu umu iki yolla yap labilir Birinci yol belge iccedilerisinde a a daki oumlrnekte oldu u
ilk standart sat rdan sonra ltDOCTYPE ile ba layan ve gt i areti ile biten aral kla DTD tan m
yap lmas d r DTD alan nda bir kok_element_adi etiketi tan mlanm t r [ ]
i aretleri aras nda
iccedilsel olarak tan mlanm t r Bu etiketin iccedilerisine element_icerigi olarak alt alanlar belirtilir
XML dokuumlman n n iccedilerik k sm na tan mlanan kok_element_adi etiketleri aras na istenilen metin
giri i yap l r
59
ltxml version= 10 encoding= UTF-8 gt
ltDOCTYPE kok_element_adi
[ltELEMENT kok_element_adi (element_icerigi) gt ]
gt
lt kok_element_adi gt Bu basit bir DTDli XML ornegidir lt kok_element_adi gt
kinci yol ise Web sayfalar n n iccedileri i bir geccedilerlilik servisi kullan larak onaylanmas d r
Do rulu u W3C1 taraf ndan garantiye al nan bir DTD ile geccedilerlilik kontroluuml sa lanabilir [71]
HTML XHTML SMIL MathMLvb Web dokuumlmanlar n n httpvalidatorw3org adresinden
URI adresi dosyalar upload edilerek ya da direk i aretleme giri i yap larak geccedilerlilik kontroluuml
yap labilir [72]
DTD tan m a a daki oumlrnekteki gibi HTML belgesine harici olarak
httpwwww3orgTRxhtml1DTDxhtml1-strictdtd adresindeki haz r kural yap s
dacirchil edilir
Kural ak bu adresten sa lan r [72] A a daki kod sat r nda XML veri tan mlamas na goumlre
ltcodegtltcodegt etiketleri olu turulmu tur
ltDOCTYPE html
PUBLIC -W3CDTD XHTML 10 StrictEN
httpwwww3orgTRxhtml1DTDxhtml1-strictdtdgt
lthtmlgt
ltbodygt
ltpgt Bu alana serbest metin giri i yap labilir
ltcodegt
Bu alanda ise XML veri tan mlamas DTD tan m na goumlre yap lm t r
ltcodegt
ltpgt
ltbodygt
lthtmlgt
Programc lar n en ccedilok ihtiyaccedil duyabilece i 6 tane oumlncelikli DOCTYPE belgelerinin
listesi a a da verilmi tir [72]
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401EN
httpwwww3orgTRhtml4strictdtdgt
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN
httpwwww3orgTRhtml4loosedtdgt
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 FramesetEN
60
httpwwww3orgTRhtml4framesetdtdgt
ltDOCTYPE html PUBLIC -W3CDTD XHTML 10 StrictEN
httpwwww3orgTRxhtml1DTDxhtml1-strictdtdgt
ltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalEN
httpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgt
ltDOCTYPE html PUBLIC -W3CDTD XHTML 10 FramesetEN
httpwwww3orgTRxhtml1DTDxhtml1-framesetdtdgt
382233 DTD ccedilinde Element Tipi Bildirimleri
Elementler hakk nda bilgi veren kodlard r Kullan lan yap ELEMENT ile ba lar
element ad ve element iccedileri inin eklenmesiyle sonlan r
ltELEMENT elementName (elementContents)gt
Element iccedileri i a a daki gibi bo olarak ta tan mlanabilir
ltELEMENT elementName (EMPTY)gt
Element iccedileri inde alt dallar-duuml uumlmler olu turulacaksa a a daki oumlrnekte oldu u gibi
DVD koumlk duuml uumlmuumlne le ayr larak s ras yla baslik format tarz element isimleri yaz l r
Belirlenen s ralama XML belgesi iccedilinde goumlruumlnecek s ralamay da olu turur
ltELEMENT DVD (baslik format tarz)gt
Parsed Character Data (PCDATA) veri tuumlruuml element iccedileri inin metinsel ifade olaca n
bildirir XML ayr t r c s bu metindeki karakter ve varl k referanslar n ccediloumlzuumlmler A a da
ltbaslikgt ltformatgt lttarzgt bildirimlerinin iccedilerik tuumlruuml PCDATA olarak tan mlan r
ltELEMENT baslik (PCDATA)gt
ltELEMENT format (PCDATA)gt
ltELEMENT tarz (PCDATA)gt
61
XML belgelerinde tan mlanan bir element herhangi bir veri kombinasyonunu iccedilerebilir
Bu durumda iccedilerik tuumlruuml ANY olarak tan mlan r En serbest iccedilerik tan m d r Oumlrnek kullan m
a a da goumlsterilmektedir
ltELEMENT KATALOG ANYgt
Elementlerin alabilecekleri nitelikler DTD iccedilerisinde tan mlan r Element iccedilerikleri
hakk nda daha detayl bilgiye ula lmas n sa lar Tablo 36 da kullan labilecek niteleyiciler
goumlsterilmektedir
Tablo 36 DTD karakterleri ve accedil klamalar
Karakter Accedil klama
Elemandan s f r veya daha ccedilok bulunabilir
Alt elemanlar s rayla belirler
| Bir grup element aras nda seccedilim yap lmas na izin verir
+ Elemandan bir veya daha ccedilok bulunabilir
Elemandan s f r veya 1 tane bulunabilir
Sembol olmamas o elementin bir kez goumlruumlnmesi gerekti ini bildirir
Oumlrnek goumlsterimde KULLANICI elementine ait alt element olan AD ouml esi birden fazla
de er alabilece ini goumlsterir TEL bildirimi ile kullan c ya ait di er bilgiler girilirken telefon
numaras
giri i eksik olarak kalabilece ini ve sonradan eklendi inde ise yeni kural
tan mlamas na gerek kalmadan etiket tan mlamas n n yap labilece ini bildirir
ltELEMENT KULLANICI (ADI+ TEL)gt
382234 DTD ccedilinde Nitelik Liste Bildirimleri
Nitelik bildirimleri element bildirimlerinden sonra goumlruumlnuumlr ve biraz daha karma k bir
yap ya sahiptir Bir elementin sahip oldu u oumlzellikler bir liste halinde belirtilebilir
Nitelik liste bildirimi a a daki yap yla goumlsterilir
ltATTLIST Element_adi Nitelik_adi Nitelik_tipi varsayilan_degergt
ltATTLIST DVD id CDATA REQUIREDgt
62
Kod parccedilas nda yaz lan varsayilan_deger niteli in gerekli olup olmad n belirtir
Nitelik tipleri Tablo 37 deki de erleri alabilir
Tablo 37 DTD ccedilindeki niteliklerin de er ve accedil klamalar
[73]
De er Accedil klamas
CDATA De er karakter verisi olmal
(en1|en2|) De er parantez iccedilindeki de erlerden birisi olmal
ID a unique identifier- benzersiz bir tan mlay c -kimlik
IDREF De er ba ka bir eleman n ID si olmal
IDREFS De er ba ka ID lerin listesi olmal
NMTOKEN De er geccedilerli XML ad olmal
NMTOKENS De er geccedilerli XML ad listesi olmal
ENTITY De er bir varl k olmal
ENTITIES De er bir varl k listesi olmal
NOTATION De er bir notasyon olmal
xml De er oumlnceden tan mlam bir XML de eri olmal
Varsay lan de er ise Tablo 38 deki de erleri alabilir
Tablo 38 Varsay lan de erler ve accedil klamalar
De er Accedil klama
deger Niteli in Default de eri
REQUIRED Nitelik de eri Eleman iccedilinde geccedilmek zorundad r
IMPLIED Nitelik de eri Eleman iccedilinde geccedilmek zorunda de ildir
FIXED value Nitelik de eri sabittir E er nitelik de eri belirtilirse default de eri
yazmak zorunludur
A a daki oumlrnekte URUN elementinin RENK niteli i seccedilimli olarak k rm z ye il ya da
mavi olas de erleri tan mlanm t r Varsay lan de eri ise k rm z olarak belirtilmi tir [73]
ltATTLIST URUN RENK (red|green|blue) redgt
63
382235 DTD ccedilinde Varl k (Entity) Bildirimleri
Varl k bildirimleri XML belgesinde kullan lan de i ik tuumlr ve biccedilimlerdeki verilerin
XML belgesine aktar lmas n sa lar Di er programlama dillerinde kullan lan moduumll ya da
makrolar gibi s kl kla kullan lan metin bloklar
varl k olarak tan mlanarak sayfan n istenilen
yerine kolayca eklenebilir Eklenen metin uumlzerindeki de i iklikler varl k bildirimiyle
duumlzenlenebilir [73]
Ayr ca d ar dan bir dosyay
varl k olarak tan mlayarak iccedilindeki veri XML belgesinde
kullan labilinir Bu veri metin olmak zorunda de ildir DTD bir varl k olarak tan mlamak iccedilin
a a daki sat r n kullan lmas
gerekmektedir [73]
ltENTITY varl k_ad varl k_degerigt
ltENTITY copyright Copyright 2009 Yayinevigt
Harici bir dosyadan al nacak bir varl k iccedilin soumlz dizimi ise a a daki gibidir
ltENTITY varl k_ad SYSTEM URIURLgt
ltENTITY tableOfContents SYSTEM entitiesdenemexmlgt
(Not URL = Uniform Resource Locator URI = Uniform Resource Identifier )
38224 XML emas
XML emas DTD lere benzer ekilde XML belgesinin yap s n ve bulundurabilece i
verilerin tuumlruumlnuuml tan mlamakta kullan l r XML emalar
xsd dosya uzant l d r ema XML
belgesinde kullan labilecek ouml eleri nitelikleri ve veri tuumlrlerinin yan s ra XML belgesinin soumlz
konusu XML emas iccedilin geccedilerli olmas n sa lamak amac yla uyulmas gereken yap y da
tan mlar [74]
XML emalar DTD yap lar na goumlre daha guumlccedilluuml bir yap ya sahiptir DTD iccedilerisinde
eleman iccedileri i string ve di er birkaccedil veri tipi ile s n rl d r XML ema integer floating point
say lar date time gibi daha geni bir veri tipi deste i sa lamaktad r XML ema ayr ca accedil k
iccedilerik modeli (open content model) ve isim uzay
(namespace integration) gibi ek oumlzellikler de
sunmaktad r XML ema belgeleri olu turulmas s ras nda XML soumlzdizimi kullan l r Bu DTD
lere goumlre ccedilok belirgin bir uumlstuumlnluumlk sa lar Ccediluumlnkuuml yeni bir soumlz dizimi ouml renilmesi yerine
XML in XML emaya oumlzel komutlar n n ouml renilmesi yeterli olur [75]
64
A a daki oumlrnek ema tan mlamas nda xs schema elementi ile ba layan bir koumlk ouml e
vard r
ltxml version=10 encoding=UTF-8gt
ltxsschema
xmlnsxs=httpwwww3org2001XMLSchemagt
ltxsschemagt
ema elementi iki tane oumlzelli e sahiptir
name
xmlns
ema iccedilin bir isim tan mlamas name oumlzelli i ile sa lan r xmlns oumlzelli inin ise oldukccedila
oumlnemli bir goumlrevi vard r Bu oumlzellik sayesinde oumlrne in Microsoft un schema belirtimlerini
kullanabilmesi iccedilin urnschemas-microsoft-comxml-data de erine ayarlanmas gerekir
A a daki oumlrnekte XML ema belgesi iccedilin name ve xmlns niteliklerinin basit kullan m
goumlsterilmektedir [66 75]
ltschema name=kutuphane xmlns= urnschemas-microsoft-comxml-datagt
lt - - ema iccedileri i buraya yaz l r- -gt
ltschemagt
Oumlrnek XML belgesi olu turma ba l alt nda verilen oumlrne in ema dosyas olan
denemexsd nin kodlar ve ekran goumlruumlntuumlsuuml ekil 323 deki gibidir
ltxml version=10 encoding=UTF-8gt ltxsschema xmlnsxs=httpwwww3org2001XMLSchemagt
ltxselement name=Kullanicilargt
ltxscomplexTypegt
ltxssequencegt
ltxselement ref=Kullanici minOccurs=0 maxOccurs=unboundedgt
ltxssequencegt
ltxscomplexTypegt
ltxselementgt
ltxselement name=Kullanicigt
ltxscomplexTypegt
ltxssequencegt
ltxselement name=adi type=xsstringgt
ltxselement name=soyadi type=xsstringgt
ltxselement name=eposta type=xsstringgt
ltxssequencegt
ltxsattribute name=id type=xsinteger use=requiredgt
65
ltxscomplexTypegt
ltxselementgt
ltxsschemagt
ekil 323 denemexsd nin ekran goumlruumlntuumlsuuml
3823 Belge Duuml uumlmleri
XML dokuumlman nlar ndaki belge duuml uumlmleri a a da incelenecektir
38231 Elementler
XML dokuumlmanlar ndan bahsederken etiket ve element terimleri kullan lmaktad r lk
ba ta birbirinin yerine kullan labilir gibi goumlruumlnse de asl nda farkl iki terimdir Element terimi
herhangi bir iccedilerikle birlikte etiketlerin accedil l p kapanmas olarak tan mlanabilir Etiket elementin
bir parccedilas d r Etiketler de kouml eli parantez accedil larak ba lan r ve sonunda kapat larak bitirilir
A a daki oumlrnek sat rda ltxyztgt etiketlerini iccedileren tam bir element goumlruumllmektedir
Accedil l etiketi Kapan etiketi
ltxyztgtXML de etiket ve element fark ltxyztgt
ccedilerik
Element
66
38232 Nitelikler
Her XML belgesi karakter verisi ve biccedilimlendirmeden olu ur Genellikle karakter verisi
ba lang ccedil ve biti etiketleri aras nda metinsel bilgi iccedilerir
XML etiketlerine bir ya da daha fazla nitelik tan mlanabilir
ccedilerik ya da
Nitelik ba ka etiketler
ltKullanici kullanici_id= 1 gt ltKullanicigt
Etiket sim De er
Accedil l etiketi Kapan etiketi
Element
38233 Metin
Accedil lan ve kapat lan tuumlm etiketlerin iccedileri ini olu turur CDATA gibi metin i aretlemesi
yap lmad kccedila tuumlm metin XML kural yap s na goumlre i lenecektir [66]
38234 CDATA Boumlluumlmuuml
CDATA XML yap s iccedilerisinde i lenmeyecek metinleri bloklar halinde i aretlemeye
yarar XML derleyici bu boumlluumlmde metin iccedilerisinde yer alan i aretleme ay raccedillar n ve etiketlerini
normal karakterler olarak alg lar CDATA yap s ltCDATA[ ile ba lar ve]] kouml eli parantezlerin
kapanmas yla sona erer
ltbaslikgtltCDATA[
]]ltbaslikgt
CDATA boumlluumlmleri Javascript gibi goumlmuumlluuml kodlar XML belgelerinde kullanabilir ve bu
boumlluumlmlere i leme ihtiyaccedil duyulmayan iccedilerik eklenebilir Oumlrne in bir uygulamada veritaban ndan
veri okumas ve i aretlemesi buumltuumln iccedileri in XML belgesine goumlmme bilgisini vermede
karakterler i lenirken accedil kccedila ayr lmas n n oumlnuumlne geccedilebilmek iccedilin CDATA boumlluumlmleri kullan l r
[66]
67
38235 Varl klar
Bir karakteri temsil eden sembol grubuna varl k denir Oumlrne in Ampersand i areti
yerine yani ve yerine kullan lan ampamp ya da bir karakterlik bo luk b rakmak iccedilin
nonbreaking space yerine ampnbsp semboluuml kullan l r
ltmatematikgt18 lt 36ltmatematikgt
Yukar daki kod sat r nda bu element i lenmeye ccedilal ld nda hata iletisi verecektir
Ccediluumlnkuuml 36 de erinin oumlnuumlndeki etiket accedilma i areti olarak alg lanacak ve kod sat r n n i leme
al nmas nda yanl l a neden olacakt r Bu hatay duumlzeltmek iccedilin kod sat r n n a a daki gibi
yaz lmas yeterli olacakt r
ltmatemetikgt18 amplt 36ltmatemetikgt
Tablo 39 da s k kullan lan karakterlerin varl k sembolleri goumlsterilmektedir
Tablo 39 XML Belgelerinde kullan lan varl k bildirimleri
Karakter Varl k
amp ampamp
ampapos
gt ampgt
lt amplt
ampquot
383 XML nin Soumlz Dizim Kurallar
XML iccedileri in i aretlenmesi iccedilin etiketleme dili kullan l r Bu etiketlemeler yap l rken
baz kurallar goumlz oumlnuumlnde bulundurulur imdi bu kurallar incelenecektir
1) XML dili buumlyuumlk kuumlccediluumlk harfe kar duyarl d r XML de kuumlccediluumlk harf kullan m esast r
Oumlrnek yaz m a a daki gibidir [76]
lttable WIDTH= 100 gt kullan m yanl t r
lttable width= 100 gt kullan m do rudur
68
2) Her etiket kapat lmal d r Oumlrne in ltkelimegt etiketini takip eden sat r sonuna ltkelimegt
etiketi de eklenmelidir
3) Dokuumlmanda buumltuumln elementleri iccedileren bir koumlk eleman olmas gerekir Oumlrnek yaz mda
oldu u gibi alt ouml eler duumlzenli bir yap da yaz lmal d r [76]
ltrootgt
ltchildgt lt childgt
ltsubchildgt lt subchildgt
lt rootgt
4) Etiketler belirlenirken bir element ba ka elementleri iccediline alacak ekilde tasarlanabilir
ccedilten d a do ru etiketlerin hepsi kapat lmal d r
ltbgtltigtBu metin koyu ve e ikltbgtltigt yanl kullan m
ltbgt ltigt Bu metin koyu ve e ik lt igt lt bgt do ru kullan m
5) XML elementleri oumlzel karakter verileri bo elementler CDATA ya da yorumlar
bar nd rabilir
6) Oumlznitelik de erleri t rnak iccediline al nm olmal d r Tek t rnak ya da ccedilift t rnak olabilir
lttable width=100gt kullan m yanl t r
lttable width= 100 gt kullan m do rudur
7) Element adlar harfler rakamlar tire alt ccedilizgi iki nokta i aretlerini ve noktalar
iccedilerebilir ki nokta i areti sadece namespace kullan m iccedilindir xml ile ba layan eleman
isimleri oumlnceden tan mlanm oumlzel isimlerdir [86]
ltkullanilabilirIsimlergt
ltisimgt
ltxslcopy-ofgt
ltUzun_bir_isimgt
ltNoktalarlaayrilmisbirisimgt
lth823323123-231-231gt
lt_23gt
ltkullanilabilirIsimlergt
8) Etiketleme yap l rken rakamla ba lamamas na dikkat edilmelidir Bo luk yer
almamal d r
69
384 XML Dokuumlmanlar n n leyi i ve Sunumu
XML i lemleri a accedil tabanl ve olay tabanl olmak uumlzere iki kategoriye ayr l r Verilerin
i lenmesinde XML parser yani ayr t r c kullan l r XML i lemciler genellikle XML ayr t r c
olarak da adland r l r A accedil tabanl ayr t r c lar DOM (Document Object Model) yakla m na
goumlre olay tabanl ayr t r c lar ise SAX (Simple API for XML) yakla m na goumlre veriyi ema
yap s ile birlikte XMLye oumlzguuml hiyerar ik yap da i ler lenen veriler uygulama ve
sorgulamalara haz r hale getirir [66 76]
Genellikle bir XML dokuumlman n XML formatl veri iccedilerik dosyas XSD (DTD yerine)
formatl ema dosyas ve XSL (CSS yerine) formatl stylesheet dosyas olmak uumlzere 3 dosyayla
tan mlanabilir Bu uumlccedil dosya tipi de XML destekli tuumlm sunucu ve veri tabanlar nda ccedilal t r labilir
Verinin yal n (native) olarak sakland veritaban youmlnetim sistemleri di er veritabanlar nda
kar la lan harici veri tipleri veya farkl format doumlnuuml uumlmlerine gerek duymad ndan sorgu
transfer ve entegrasyon i lemlerinin performanslar
oldukccedila yuumlksektir Ayr ca XML veritaban
youmlnetim sistemlerinde verinin yal n biccedilimde kendi iccedil format nda tutuluyor olmas n n bir
avantaj da eri imi kolayla t rmas d r Ba ka veritaban youmlnetim sistemi yakla mlar nda buna
benzer bir arama iccedilin karma k ccediloklu tablolar ara t r l r ve daha sonra XML verisine
doumlnuuml tuumlruumlluumlr Bu da i lem performans n n duuml mesine ve maliyet art r c ek uygulamalar
eklenmesine neden olur [66 76]
39 AJAX Prensipleri
AJAX yeni bir teknoloji olmas itibariyle henuumlz emekleme doumlnemindedir Bununla
birlikte birkaccedil Web tasar mc s bu yenili i ba a ccedil k lmas gereken bir sorun gibi alg lamaktad r
Bu sorun iyi bir AJAX Web uygulamas yapabilmek iccedilin s radan ya da koumltuuml bir uygulamaya
kar ne yap lmas gerekti i olarak tan mlanabilir Michael Mahemoff (wwwmahemoffcom)
bir yaz l m geli tirici ve kullan labilirlik uzman iyi Ajax uygulamalar iccedili birkaccedil temel ilke
belirlemi tir [37]
Minimal Trafik nternet trafi i internet uumlzerindeki veri ak d r Goumlnderilen ve al nan
mesajlar n miktar youmlnuuml web sitesine giren ziyaretccedililerin say s ziyaret ettikleri
sayfalar ccedilevrimiccedili trafi i olu turmaktad r AJAX uygulamalar nda amaccedil bu internet
trafi ini en alt seviyede tutmak iccedilin sunucudan muumlmkuumln olabildi i kadar az bilgi
goumlnderip almakt r Ayr ca bilgi ak nda gereksiz bilgilerin her seferinde goumlnderilip
al nmas n n oumlnuumlne geccedililmesiyle uygulamaya sa laml k kat l r
70
Kullan c etkile imli model Genellikle AJAX uygulamalar geleneksel Web
uygulamalar ndan farkl olarak de i ik kullan c etkile imli modeller sunar Web
standartlar ndaki t kla-bekle anlay na kar AJAX uygulamalar nda an nda suumlruumlkle
b rak ya da ccedilift t klamayla yak nla t rma gibi di er kullan c arayuumlz paradigmalar
vard r E er kullan c
etkile imli modeller seccedililirse kullan c
ne yapaca n bilir
Sade arayuumlz Yan p soumlnen sayfa boumlluumlmuuml ya da suumlrekli doumlnen animasyonlar gibi dikkat
da t c ve gereksiz sayfa elementlerinden kaccedil n l r Kullan c lar goumlze hitabeden
uyumlu ve sade sayfalar tercih etmektedir
Eri ilebilirlik nsanlar n ba lant h zlar ndan fiziksel engellerine ya ad uumllkenin
toplumsal yap s ndan ya l l a kadar birccedilok youmlnden eri ilebilirlik standartlar
incelenebilir Birincil ve ikincil kullan c lar n beklentilerine en uygun olacak AJAX
uygulamalar na eri im seccedilenekleri goumlz oumlnuumlnde bulundurulmal d r Oumlzel yaz l mlarla m
yoksa kullan lacak taray c oumlzellikleriyle mi adaptasyonun sa lanaca belirlenmelidir
Boumlylece yeni hedef kitleler de tamamen d ar da b rak lm olmayacakt r
Sayfan n tamam n indirilmesinden kaccedil nma Tetikleyici sayfa indirildikten sonra
tuumlm sunucu ileti imi AJAX motoru taraf ndan youmlnetilmektedir Boumlylece kuumlccediluumlk bilgi
al -veri leri iccedilin tuumlm sayfan n tekrar yuumlklenmesinin oumlnuumlne geccedililmi olur
lk kullan c AJAX uygulamalar nda tasar m kullan c lar n daha oumlnce
kar la mad klar bir biccedilimdedir Etkileyici efektler ve s k c olmayan bilgilendirici
reklamlarla genel kullan m durumlar n kolayca ba armaktad r
Buumltuumln bu ilkelerde bulunan ortak nokta kullan labilirliktir AJAX oumlncelikle kullan c lar
iccedilin web deneyimini geli tirmeye ccedilal rken arkas ndaki teknoloji sadece bunun iccedilin bir araccedilt r
Yukar daki ilkelere sad k kalarak AJAX uygulamalar oldukccedila faydal ve kullan l olacakt r
[37]
310 AJAX Kuumltuumlphaneleri ve Araccedillar
Kuumltuumlphaneler haz r fonksiyonlara kolayca eri im sa lar Ayr ca s k kullan lan var olan
kodlar tekrar yazarak zaman kaybedilmemesini sa lar A a da en ccedilok kullan lan AJAX
kuumltuumlphanelerine oumlrnekler verilmi tir
3101 Prototype
Prototype dinamik web uygulamalar yaratmak iccedilin kullanabilecek geli mi bir
kuumltuumlphanedir Accedil k kaynakl ve nesne tabanl kod kuumltuumlphanesidir Ajax iccedilin yaz lan
71
kuumltuumlphanelerin ilk oumlrneklerindendir ve di er haz r kuumltuumlphanelerin bir k sm prototypejs
kullanmaktad r [78]
3102 AJAX Gear Toolkit
AJAX olarak bilinen istemci tarafl tekni in buumltuumln avantajlar ndan faydalanmay
muumlmkuumln k lan bir araccedilt r XMLHttpRequest nesnelerini kullanarak internet taray c s n n
asenkron ccedila r yapmas n sa lar [78]
3103 AspNet Ajax
ASPNET AJAX ASPNET ile yap lan ve tuumlm nternet taray c lar nda ccedilal abilen
uygulamalar iccedilin Microsoft taraf ndan geli tirilen bir kuumltuumlphanedir Oumlnce Atlas daha sonra
ASPNET Ajax ad n alm t r ASPNET 20 ile kolay entegrasyon ASPNET 35 ile tam
entegrasyon sa lar Yeni nesil etkile imli arayuumlzler olu turmak iccedilin kullan l r [78]
3104 Dojo Toolkit
Accedil k kaynak kodlu bir javascript toolkit olup dhtml sorunlar n buumlyuumlk oumllccediluumlde ccediloumlzmuuml tuumlr
Arayuumlz programlama karma k kodlar n basite indirgenmesi toolkitin sa lad avantajlard r
Ayr ca dinamik web sitesi ya da ba ka ortamlar haz rlamay kolayla t ran ve sitenin daha
kullan l olmas n sa layan iccedilerikler sunar [78]
3105 MochiKit
Dreamweaver web uygulamalar iccedilin kullan lan ajax kuumltuumlphanelerinden birisidir E
zamanl olmayan davran lar iccedilin erteleme uygulamas n kulland ndan sunucuyla etkile im
halinde olan web sayfalar n n geli tirilmesinde tercih edilir [78]
3106 PHPLiveX
PHP ile yap lan uygulamalar iccedilin kullan lan bir kuumltuumlphanedir Versiyon 25 ile gelen
yenilikler ve optimizasyonlar kuumltuumlphanenin potansiyelini ciddi biccedilimde artt rm t r Di er php
tabanl kuumltuumlphaneler gibi php fonksiyonlar n javascript koduyla ccedila r r fakat di erlerine goumlre
daha az kodla kullan m sa lar [78]
72
3107 Sardalya (Sarmal Dinamik Altyap s )
Sardalya Dinamik AJAX Kuumltuumlphanesi DOM deste i olan tuumlm guumlncel taray c larda
ccedilal mak iccedilin tasarlanm bir AJAX Kuumltuumlphanesi dir Linux windows freebsd osx sun gibi
platformlarda ccedilal abilir Tuumlm taray c lardan ba ms z olarak ccedilal r ve kullan m s ras nda az
yer kaplar [78]
3108 Sajax
Sajax n accedil l m Simple Ajax Toolkit tir ASP ve PHP tabanl programlarda AJAX
uygulamalar geli tirmek iccedilin kullan lan bir kuumltuumlphanedir Buumltuumln sunucu tarafl platformlara
ccedila r goumlnderebilme yetene ine sahiptir [78]
3109 Solvent
AJAX uygulamalar n moduumller bir yap da gerccedilekle tiren farkl bir kuumltuumlphanedir
JavaScript ile yaz lm t r ve tuumlm taray c lardan ba ms z olarak ccedilal an bir AJAX uygulamas d r
Web uygulamalar n kuvvetlendirmek ve uygulamalar n geli tirme suumlrecini h zland rmak iccedilin
kullan l r [78]
31010 AjaxAC
AjaxAC accedil k kaynak kodlu php tabanl bir kuumltuumlphanedir AjaxAC ile varolan PHP
s n flar na ve MySQL veritaban na ek istek verilerini doumlnduumlrmek iccedilin geccedili oldukccedila kolayd r
[78]
31011 Xajax
Xajax Php JavaScript HTML XMLHttp ve XML kullanarak taray c ve sunucu
aras ndaki al veri i ve verileri goumlstermeyi gerccedilekle tirir Xajax ile geli tirilmi
uygulamalar sunucudaki php fonksiyonlar n ccedila rabilir ve sayfay yeniden yuumlklemeden
iccedileri ini guumlncelle tirebilir [78]
73
31012 Scriptaculous
Prototype tabanl bir js framework tuumlr Yap lan AJAX i lemleri prototype iccedilerisinde
bulunan nesneler ve fonksiyonlar ile yap l r [78]
311 AJAX Uygulamalar nda Kullan lan Di er Teknolojiler
AJAX istemci ile sunucu aras nda e zamanl olmayan ileti im sa layan bir teknolojiler
buumltuumlnuumlduumlr
3111 HTMLXHTML
stemci tarafl (client side) bir metin i aretleme dili olan XHTML (Extensible
HyperText Markup Language- Geli tirilebilir Metin aretleme Dili) dili XML soumlz dizimi ile
olu turulmu tur XHTML standart etiket ayarlar n tan mlarken spesifik bir yol kullan lmal d r
World Wide Web Consortium (W3C) duumlnyadaki Web geli tiriciler iccedilin olu turulmu ayn
standartla t r lm yakla m benimserler [66]
3112 CSS
XHTML de stil biccedilimlendirmesini sa lar Yuumlzlerce sayfan n tek merkezden
youmlnetilmesini sa lar Geleneksel youmlntemlerde her sayfan n biccedilimlendirme ayarlar birccedilok kod
sat r aras ndan stillerle ilgili olanlar n seccedililip duumlzeltilmesiyle yap l r CSS kullan lan
youmlntemlerde a a daki gibi bir kod parccedilas
tuumlm sayfalardaki stil ayarlar n n yap lmas n tek
merkeze ba lam t r
kabuk
width760px
background-colorEE7700
spot
colorEE7700
font-familyVerdana Comic Sans MS Helvetica sans-serif
74
AJAX ve CSS birlikte kullan larak masauumlstuuml ccedilal t r labilir EXE yaz l mlar ile ayn
h zda ve performansta ccedilal an web uygulamalar geli tirmek muumlmkuumln hale gelmi tir Google
belgelerinde Gmail bunun en buumlyuumlk oumlrne idir
Web sayfalar ndaki tuumlm iccedilerik biccedilimlendirmeler resimler vb istemciye
HTMLXHTML kodlar halinde goumlnderilir Bu kodlar sade ve basittir Bu da oldukccedila fazla
kullan c ya hitap edebilen web siteleri iccedilin oumlnemlidir Ccediluumlnkuuml internete ba land nda k s tl bir
bant geni li ine sahip kullan c lar daha az say da karakter iccedileren sayfalar daha k sa suumlrede
indirebilecektir Boumlylece kullan c lar toplam suumlrede daha fazla sayfa ziyaret edecektir
Sayfalar n h zl yuumlklenmesi kullan c lar n o siteler hakk ndaki memnuniyetini art racakt r
Ayr ca bu durum yaz c dostu sayfalar n olu turulmas nda etkilidir [79]
3113 XSLT
XSLT (Extensible Stylesheet Language Transformations Geni letilebilir
Biccedilimlendirme Dili Doumlnuuml uumlmleri) XML tabanl doumlkuumlmanlar n orijinal halini de i tirmeden
yeni bir dokuumlman olu turmak iccedilin kullan lan bir dildir [80] Oumlrne in bir XML doumlkuumlman n
XHTML ye doumlnuuml tuumlrmek iccedilin XSL doumlnuuml uumlmuuml (transformation) kullan labilir XMLnin iccedilindeki
hangi data nas l doumlnuuml tuumlruumllecek sorular ndan hangi sorusunun cevab XPath ile belirtilirken
nas l sorusunun cevab ise yine XML ile belirtilir [81]
75
4 FLEX
Flex MXML ActionScript 30 ve Flex s n f kuumltuumlphanelerinin birle iminden olu an
sunucu-istemci tabanl yeni bir teknolojidir Ayr ca Flex Flash uygulamalar ile derlenebilen
XML tabanl bir dil olarakta tan mlanabilir [84] Flex in ccedilal ma sistemati inin i lem ak
emas ekil 41 de goumlsterilmektedir
ekil 41 Flex uygulamalar n n i lem ak emas
ekil 41 de sol alt kouml eden sa uumlst kouml eye do ru i lem ak emas takip edildi inde
Flex Builder 3 ile geli tirlen appmxml uygulamas MXML derleyicide ccedilal t r ld nda bir swf
dosyas uumlretmektedir Ayr ca uumlretilen swf dosyas n n sunucu uumlzerinde test edilebilmesi iccedilin
birde html uzant l dosya olu turulur Flex in en oumlnemli oumlzelli i uumlretilen son uumlruumlnuumln swf
format nda olmas d r Ayr ca olay tutucu komut dizelerinin kolay kullan m
yaz l m n
olu turulmas nda Flex program n tercih nedeni olmas n sa lam t r
Adobereg Flexreg 3 yayg n olarak kullan lan taray c lar masauumlstleri ve i letim
sistemlerinde kolayl kla etkileyici web uygulamalar olu turmaya ve bak mlar n yapmaya
youmlnelik verimlili i yuumlksek bir programd r Accedil k kaynak (open source) altyap s na sahiptir
Eclipse tabanl bir plugin kuumlmesidir
Adobe firmas taraf ndan Flex Builder 3 Pro lisans
herhangi bir e itim kurumuna
ouml renci e itmen ya da ccedilal an olarak ba l olduklar n belgeleyenlere tamamen uumlcretsiz olarak
verilmektedir Kurulum tamamland ktan sonra ilk accedil l ekran ekil 42 de goumlsterildi i gibidir
[83]
76
ekil 42 Flex arayuumlzuuml
41 Adobereg Flexreg 3 Kurulumu ccedilin Gereken Minimum Sistem Gereksinimleri
Uygulama gerccedilekle tirmek iccedilin farkl i letim sistemleri iccedilin gerekli sistem
gereksinimleri a a da belirtilmi tir
411 Windows ccedilin Flex Builder 3 (Standart ve Profesyonel)
Flex in Windows kurulumu iccedilin gerekli minimum sistem gereksinimleri a a da
goumlsterilmektedir [83]
Intelreg Pentiumreg 4 i lemci
Microsoftreg Windowsreg XP Service Pack 2 veya Windows Vistareg Home (Premium
veya Basic) Business veya Ultimate
1 GB RAM (2 GB oumlnerilir)
500 MB kullan labilir sabit disk alan (eklenti yap land rmas iccedilin ek 500 MB gerekir)
Java Virtual Machine Sun JRE 142 Sun JRE 15 (dacirchildir) IBMreg JRE 15 veya
Sun JRE 16
Eklenti yap land rmas iccedilin Eclipse 322 33 ve 34 (Eclipse 33 Windows Vista iccedilin
oumlnerilir)
Adobe Flashreg Player 9 yaz l m
BEA Workshop 101
77
IBM Rational Software Architect 7003 (Yaln zca Eclipse 33 eklenti yap land rmas )
412 Macintosh ccedilin Flex Bu lder 3 (Standart ve Profesyonel)
Macintosh bilgisayarlar iccedilin gerekli minimum sistem gereksinimleridir [83]
PowerPCreg G4 125 GHz veya Intel i lemci
Mac OS X v1047 10410 veya 105
1 GB RAM (2 GB oumlnerilir)
500 MB kullan labilir sabit disk alan
Java Virtual Machine Appledan JRE 15 veya JRE 16
Eclipse 322 33 ve 34 (eklenti yap land rmas iccedilin)
Adobe Flash Player 9 yaz l m
78
5 CcedilEVR M Ccedil KATALOG TASARIMI F rat Uumlniversitesi Oumlrne i
AJAX teknolojisi AdobeMacromedia firmas n n geli tirdi i Flex program
ve
bile enleri kullan larak F rat Uumlniversitesinin 2009 ccedilevrimiccedili katalog ccedilal mas
herhangi bir
teknik bilgi gerektirmeden guumlncellenebilen alt yap s yla gerccedilekle tirilmi tir Kullan c arayuumlzuuml
olu turulurken XML tabanl bir gramer yap s
ve Flex program
kullan lm t r Bu tez
ccedilal mas nda sunucu olarak WampServer 20 kullan lm t r Katalog uygulamas n n kaynak
kodlar na ek boumlluumlmuumlnden bak labilir
AJAX teknolojisiyle ortaya ccedil kmaya ba layan ccedilevrimiccedili bro uumlrler ve kataloglar
internetteki Web uygulamalar uumlzerinde ccedilevrimiccedili hedeflerin oumlnemli bir boumlluumlmuumlne hacirckim
olmaktad r [37] Bu tez ccedilal mas da buna oumlrnek te kil etmektedir
Ccedilal man n olu um haritas na literatuumlr taramas yla ba lanm t r Bir sonraki ad mda
haz rlanacak olan program n oumlzellikleri belirlendi Bu a amadan sonra yaz l m iccedilin kullan lacak
program n seccedilimi yap ld Yaz l m algoritmas planlan p ekil 51 deki kodlama algoritmas
olu turulmu tur Yaz l m test edildi inde olu an hatalar giderilmi tir Ccedilal man n sayfa tasar m
yap larak son ekli verilmi tir
79
ekil 51 Kodlama algoritmas
Ba la
Harici verilerin XML dosyas ndan okunmas iccedilin HttpService s n f tan mland
De i ken tan mlamalar
Flex s n flar eklendi
Uygulamada kullan lacak resim boyutland rmas iccedilin maskeleme yap ld
Sunucu ile taray c ileti iminde AJAX scriptler kullan ld
Tuumlm sayfalar ekran goumlruumlntuumlsuuml iccedilin uygulama boyutland rmas yap ld
Zoom oumlzelli i iccedilin etiket tan mlamas ve buumlyuumltuumllmuuml sayfa goumlruumlntuumlsuuml iccedilin goumlruumlnuumlm
ayarlar fonksiyonu yaz ld
Navigasyon duuml meleri olu turuldu
XML format na uygun duuml uumlmler olu turuldu
Sayfa tasar m yap ld
Dur
A a daki kod sat rlar yla katalog ccedilal mas n n uygulama dosyas olan catamxml
dosyas na Flex iccedilinde ccedilal ma youmlntemlerini belirleyen faydal
s n flar dacirchil edilmi tir
lt[CDATA[
import mxutilsStringUtil
import mxrpcsoapLoadEvent
import mxcontrolsAlert
import mxrpceventsFaultEvent
import qscontrolsFlexBook
import qscontrolsflexBookClassesFlexBookPage
import qscontrolsflexBookClassesFlexBookEvent
import qscontrolsflexBookClassesWBookPageImpl
import qscachingContentCache
import mxrpceventsResultEvent
import mxrpchttpHTTPService
import mxcoreUIComponent
import mxmanagersPopUpManager
import compResimSec
import Kullan
import mxcoreScrollPolicy
import mxcollectionsArrayCollection
XML tan mlamalar diziler sunucu ba lant lar ve zoom i lemleri iccedilin gerekli de i ken
tan mlamalar a a daki kod sat rlar yla yap lm t r
private var aXML
[Bindable]
private var resimlerArrayCollection
private var dataSetHTTPService
private var resimdiziArray=new Array()
private var zoomYapBoolean=false
Katalo un local sunucu uumlzerinde ccedilal t r labilmesi iccedilin kaynak dosyas
Wamp kurulumu
sonras nda olu an www klasoumlruuml iccediline yerle tirilir E-katalog resimleri dinamik olarak data
dizinindeki imagesxml dosyas nda ccedilekilmektedir Katalog resimlerini de i tirmek iccedilin bu
dosyadaki xml duuml uumlmlerinin de i tirilmesi yeterlidir De i iklik yap lacak duuml uumlm oumlrne i
a a da goumlsterilmektedir
81
ltimage source=images2jpg thumb=images2jpg zoom=images2jpggt
Yukardaki sat rdaki duuml uumlmleri accedil klamak gerekirse source duuml uumlmuumlnde katalogda
goumlruumlnecek resim thumb duuml uumlmuumlnde e er as l resim (source) resmi yuumlklenene kadar ba ka bir
resim goumlruumlnmesi isteniyorsa o resmin kayna goumlsterilir Zoom duuml uumlmuuml ise sayfaya zoom
yap lmas esnas nda goumlruumlnecek resmin kayna n goumlsterir
Yukardaki 3 duuml uumlmden thumb duuml uumlmuuml iste e ba l olarak kullan l r Zoom
duuml uumlmuumlndeki resim as l resmin 100 buumlyuumlk hali olmal d r
ekil 52 Katalo un ilk sayfas n n ekran goumlruumlntuumlsuuml
E-katalog sayfalar n boyutunu kataloghtmlde tan ml olan object nesnesinin geni lik ve
yuumlkseklik oumlzelliklerinden almaktad r ekil 52 nin kaynak kodu a a da verilmi tir
ltscript src=ScriptsAC_RunActiveContentjs type=textjavascriptgtltscriptgt
ltscript type=textjavascriptgt
AC_FL_RunContent( idkatalogwidth894height653codebasehttpfpdownloadm
acromediacomgetflashplayercurrentswflashcabmoviekatalogqualityhighbgcolor
000000allowscriptaccesssameDomain ) end AC code
ltscriptgtltnoscriptgtltobject classid=clsidD27CDB6E-AE6D-11cf-96B8-444553540000
id=katalog width=894 height=653
82
codebase=httpfpdownloadmacromediacomgetflashplayercurrentswflashcabgt
ltparam name=movie value=katalogswf gt
ltparam name=quality value=high gt
ltparam name=bgcolor value=000000 gt
ltparam name=allowScriptAccess value=sameDomain gt
ltembed src=katalogswf quality=high bgcolor=000000
width=984 height=653 name=katalog align=middle
play=true
loop=false
quality=high
allowScriptAccess=sameDomain
type=applicationx-shockwave-flash
pluginspage=httpwwwadobecomgogetflashplayergt
ltembedgt
ltobjectgtltnoscriptgt
ekil 53 Katalo un 23 sayfa goumlruumlntuumlsuuml
Oumlrne in ekil 53 te kullan lan resimlerin width=447 height=613 boyutunda ise
resimlerin sayfada goumlruumlnmesi iccedilin html etiketindeki width oumlzelli ini 447x2=984 ve height
83
oumlzelli ini 613+40=653 eklinde duumlzenlenmesi gereklidir Yani width=resim geni li i X 2 ve
height=resim yuumlksekli i + 40 olmal d r
ekil 54 Katalo un sayfa ccedilevirme efektli goumlruumlntuumlsuuml
ekil 54 te goumlruumllen e-katalogun sayfay ccedilevirme oumlzelli i ile h z gibi i lemleri stylecss
dosyas nda tutulmaktad r Gerekli olmad kccedila bu dosya uumlzerinde de i iklik yap lmamas tavsiye
edilir Olu turulan stylecss dosyas n n kodlar a a da goumlsterilmi tir
FlexBook
color 000000
textRollOverColor 000000
border-thickness 0
border-style none
page-slope06
active-grab-area page
page-shadow-strength 1
curve-shadow-strength 1
auto-turn-duration 1500
Application
color F1F1CC
textRollOverColor FFFFFF
84
backgroundGradientColors FFFFFF FFFFFF
backgroundColor FFFFFF
SuperImage
border-thickness 0
border-style none
ekil 55 de goumlruumllen navigasyon ccedilubu unda 1 numara ile goumlsterilen alan istenilen
sayfaya konumland rma yap labilmesi iccedilin sayfa numaras n n girildi i kutudur 2 numara ile
goumlsterilen alan Sayfaya Git duuml mesine t kland nda istenilen sayfan n accedil lmas n sa layan
duuml medir 3 ve 4 numara ile goumlsterilen duuml meler Geri leri duuml meleridir Fare kontroluuml
olmadan da sayfalar aras nda gezinti yap labilmesini sa lar 5 numara ile goumlsterilen alan Tuumlm
Sayfalar duuml mesidir
ekil 55 Katalo un navigasyon ccedilubu u
Tuumlm sayfalar n accedil l r pencere iccedilerisinde goumlruumlntuumllenmesini sa layan fonksiyon a a daki
gibidir Kullanmxml sayfas nda ccedilekilen resimler pencerede goumlster komutuyla geni lik ve
yuumlksekli i ayarlan r Seccedililen nesneler customMoveend() komutuyla ekrana ta n r
private function tumsayfalar()void
Kullanshow_window(thisfalseapplicationwidth-10(applicationheight-60)2)
customMoveend()
customMoveplay()
ekil 56 da goumlruumllduuml uuml uumlzere ccedilevrimiccedili katalogdaki yuumlkluuml olan tuumlm sayfalar yukar dan
accedil lan bir pencere yard m yla goumlsterilir Tuumlm sayfalar
goumlster duuml mesi t kland nda goumlruumlnecek
resimler ile ilgi ayarlar ise data klasoumlruumlndeki onizlexml dosyas ndan ayarlanabilir Xml nin
esnek etiketleme yap s sayesinde onizlexml dosyas nda olu turulan ltsayfalargt etiketi aras na
a a daki kod sat rlar ccedilo alt larak olu turulmu tur
85
ltsayfagt
ltresim1gtimages2jpgltresim1gt
ltresim2gtimages3jpgltresim2gt
ltgitgt2ltgitgt
ltpagesgt23ltpagesgt
ltsayfagt
ekil 56 Tuumlm Sayfalar duuml mesi t kland ndaki ekran goumlruumlntuumlsuuml
Son olarak 6 numaral duuml me t kland nda + ve - konumlar n alarak buumlyuumlteccedil
oumlzelli i kullan l r ekil 57 de goumlsterildi i gibi imleccedil sayfa uumlzerinde gezdirilirken bu alan
uumlzerinde zoom yap larak yan sayfada buumlyuumltuumllmuuml goumlruumlntuuml sa lan r
86
ekil 57 Zoom oumlzelli i
Zoom oumlzelli inde resimler uumlzerindeki geni lik ve yuumlkseklik de erleri iccedilin if else blok
yap s kullan larak maskeleme fonksiyonu yaz lm t r Maskeleme fonksiyonu a a daki kod
sat rlar nda goumlsterilmektedir Fare nin x-y koordinatlar nda alaca de erlere goumlre fare nin
buumlyuumltuumllecek alan uumlzerinde gezinmesiyle yan sayfada buumlyuumltuumllmuuml goumlruumlntuuml elde edilmi tir
private function maskele(eMouseEvent)void if(zoomYap) if((mouseXgt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) )
maskex=0
img2visible=false img1visible=true img1x=(applicationwidth2)-mouseX img1y=-1mouseY else if((mouseXlt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) ) maskex=applicationwidth2 img1visible=false img2visible=true img2x=-1mouseX img2y=-1mouseY
Sayfa goumlruumlntuumllerinin maskelenmesinden sonra resimlerin kaynak dosyadan ccedilekilerek
ekrana buumlyuumltuumllmuuml hallerinin yans t lmas iccedilin a a daki fonksiyon olu turulmu tur
87
private function zoom()void
if(zoomerlabel==+) zoomerlabel=- if(img2source=aimage[bookcurrentPageIndex2]zoom) yuklemevisible=true
img2addEventListener(EventCOMPLETEbuyuk2_yuklendi) img2source=aimage[bookcurrentPageIndex2]zoom
if(aimagelength()gtbookcurrentPageIndex2+1) img1addEventListener(EventCOMPLETEbuyuk1_yuklendi)
img1source=aimage[bookcurrentPageIndex2+1]zoom
zoomYap=true else if(zoomerlabel==-)
zoomerlabel=+
setGorunum()
private function setGorunum()void zoomYap=false zoomerlabel=+ img1visible=false img2visible=false
88
6 SONUCcedil
Web 20 ak m ve zengin internet uygulamalar guumlnuumlmuumlz popuumller konular ndand r Bu
nedenle tez ccedilal mas
bu amaca youmlnelik olarak son teknolojiler kullan larak geli tirilmi tir
AJAX teknolojisi kullan larak kullan c n n istekleriyle sayfan n tamamen yenilenmeden
ilgili i lemin yuumlruumltuumllebilmesi sa lanmaktad r Geli tirilen sistem ccedilapraz taray c deste ine sahip
esnek ve kolay kullan labilir bir yap ya sahip oldu undan herhangi bir programlama bilgisine
sahip olmadan ki ilerin istenilen de i iklikleri yap labilece i bir alt yap ya sahiptir Bu ccedilal ma
nda en yenilikccedili internet yaz l mlar konusunda uygulama yapmak isteyen yaz l m
uzmanlar na kaynak te kil edecek bir ccedilal ma gerccedilekle tirilmi tir Yaz l m geli tiricileri ve
yaz l m mimarlar AJAX Flash Flex Appletler ve di er teknolojileri uygulamalar na kolayca
entegre edebilirler
Bu tez ccedilal mas kapsam nda Web de Ajax Tekni inin Bant Geni lik Optimizasyonuna
Etkisi ba l kl bir makale haz rlanm t r [85] Bu makalede Web Performance Suite 355941
program yla AJAX n performans testi yap lm t r Bu oumllccediluumlmler sonucunda elde edilen de erler
goumlstermi tir ki bir ebeke uumlzerinden goumlnderilecek sinyalin en duuml uumlk ve en yuumlksek frekanslar
aras nda gereksiz yere kullan lan aral n optime edilmesinde AJAX etkili bir youmlntemdir
AJAX n ccedilal ma prensibi sayesinde uygulamalar en iyi performansla gerccedilekle tirilir
AJAX teknolojisinin hala geli imi devam etmekte oldu undan baz eksik yanlar da
bulunmaktad r Oumlrne in taray c
uumlzerindeki Geri
fonksiyonu bazen beklendi i gibi
ccedilal mayabilir Dinamik olarak olu turulan sayfalar taray c n n oumlnceden i ledi i sayfalar
youmlneten mekanizmalar na kendini otomatik olarak kaydetmez bu yuumlzden taray c n n Geri
tu una bas ld nda istenen sayfa elde edilemeyebilir [86] Ba ka bir dezavantaj ise AJAX ile
olu turulan iccedileri in kodlar kaynak kodlar k sm nda goumlruumllememektedir Ayn zamanda Google
ve Yahoo gibi arama motorlar n n Web sayfalar na goumlnderdi i robot yaz l mlar da bu kodlar
goumlrememektedir Dolay s yla tamamen AJAX ile olu turulan iccedilerik arama motorlar n n sonuccedil
sayfalar nda listelenmezler Guumlnuumlmuumlzde yap lan Web sayfas n n arama motorlar nda
goumlruumlntuumllenmesi oldukccedila oumlnemlidir Fakat bir Web uygulamas ziyaretccedililer hakk nda oumlnemli
ki isel bilgilere sahipse bu bilgilerin arama motorlar nda herkes taraf ndan goumlruumlntuumllenmesini
sa lamas bir avantaja doumlnuuml uumlr [87] AJAX yerinde ve do ru bir ekilde kullan ld nda
uygulamalarda performans art n sa lar
Bu tez ccedilal mas nda Web 20 ak m n n ortaya ccedil k nedenleri ve RIA konseptine
duyulan ihtiyac n temeli irdelenmi tir Web 20 ak m nda oumlne ccedil kan uygulamalar ve ccedilal ma
sistematikleri incelenmi tir Oumlne ccedil kan bu uygulamalar n site tasar m nda dikkat ccedileken
89
oumlzelliklerine de inilmi tir AJAX teknolojisini olu turan bile enler incelenmi tir Bu inceleme
ve ara t rma sonucunda zengin internet uygulamalar na oumlrnek te kil edecek Web 20 ak m n n
ccedilekirde i olan AJAX teknolojisi kullan larak F rat Uumlniversitesi iccedilin ccedilevrimiccedili bir katalog
tasarlanm t r Bu tasar mda flexBook flexbookpage landscape wrapper zoomer gibi ek
bile enler kullan lm t r Navigasyon paneli tasarlanm t r Olu turulan tasar mda yerli ve
yabanc literatuumlr taramas yap larak emsallerindeki kullan l oumlzellikler projeye dahil edilmi tir
Projenin geli tirilmesi s ras nda izlenen ad mlar resimlenerek ortaya bir yol haritas ccedil kar lm t r
61 Oumlneriler
Bu tez ccedilal mas esas al narak ileride bu uygulamalar mobil cihazlar arac l yla
kullan labilirli i uumlzerine ara t rmalar suumlrduumlruumllebilir AJAX n uumlstuumln oumlzellikleri sayesinde Web
uumlzerinden yay nc l k ve mobil ileti im alanlar farkl bir boyut kazanm t r Birccedilok irket art k
ta nabilir cihazlar iccedilin Web 20 uygulamalar n AJAX la optimize etmeye ba lam t r Yeni bir
teknoloji olan AJAX la ta nabilir cihazlardaki performans bellek youmlnetimi s n rl tu giri i
gibi sorunlar n uumlstesinden gelinmesi hedeflenmelidir
AJAX kullan larak IDE (Integrated Development Environment) entegrasyonu Eclipse
iccedilin ba lant lar yaz labilir veya yap m servisi arac l yla do rudan IDE den yap m paketleri
geli tirilebilir Guumlnuumlmuumlzde oldukccedila popuumller olan accedil k kaynak kodlu yaz l m geli tirme
ortamlar nda entegre uygulamalar geli tirilebilir
Kullan c Arabirimi aretleme Beti i (User Interface Markup Language) s n f na dacirchil
edilecek gelece in en popuumller web tabanl teknolojilerinden biridir Flex geli tiricileri Adobe
Flex Builder - IDE ortam nda LiveCycle Data Services Java Coldfusion ASPNET JSP PHP
gibi popuumller web programlama dilleri yard m yla etkile imli ve guumlvenli web tabanl projeler
geli tirilebilir [82]
90
KAYNAKLAR
1 nternet Web 20 httptrwikipediaorgwikiWeb_20 Eri im tarihi 03092008
2 Oumlzer Z Web Teknolojileri ve AJAX Seminer Ccedilal mas Fen Bilimleri Enstituumlsuuml sf2
2007
3 nternet Web 20 Nedir wwworeillynetcompubaoreillytimnews20050930what-is-
web-20html Eri im tarihi 04102008
4 nternet httpravenyoungspaceslivecomblogcns17376F4C11A91E0E3717entry
Eri im tarihi 03092008
5 Mcluhan M Povers B R Ccedileviren Bahar Oumlcal Duumlzgoumlren Global Koumly 21 Yuumlzy lda
Yeryuumlzuuml Ya am nda ve Medyada Meydana Gelecek Doumlnuuml uumlmler Scala Yay nc l k 2001
6 nternet RIA konsepti httpwwwademaktepecomGunlukDetayaspxId=122 Eri im
Tarihi 26062008
7 Onat F A man Ouml K l ccedil A Sosyal A Sitelerinin Reklam Ve Halkla li kiler Ortamlar
Olarak De erlendirilmesi Sayfalar 3-6 2008
8 nternet httpi8tinypiccom6kymb0kgif Eri im tarihi 11072008
9 nternet DFA httpwwwdoubleclickcomproductsdfaindexaspx Eri im tarihi
14022009
10 nternet Adsensecom
httpswwwgooglecomadsensesupportbinanswerpyanswer=9712amptopic=13488 Eri im
tarihi 15112008
11 nternet DoubleClickcom wwwdoubleclickcom Eri im 13102008
12 nternet Adsense ho geldiniz wwwgooglecomadsense Eri im 18112008
13 nternet Flicker Tan m httptrwikipediaorgwikiFlickr Eri im tarihi 09032009
14 nternet Flicker Foto raf Payla m Sitesi httpwwwflickrcom Eri im 18022009
15 nternet BitTorent httptrwikipediaorgwikiBitTorrent Eri im tarihi 05012009
16 nternet Bittorent kulan m rehberi httpwwwbittorrentcombtusersguidesbeginners-
guide Eri im tarihi 05012009
17 nternet Bittorent kullan m k lavuzu httpwwwshukkocombittorrent_kilavuzu Eri im
tarihi 05012009
18 nternet Bittorent ccedilal ma mant httpwwwforumelbizbittorent-nedirgne-ise-
yarargresimli-detayli-super-anlatim-
t12836htmls=17f7b3147d97799d31c32b09e87d43e4ampamp Eri im tarihi 05012009
19 nternet Soumlzluumlk
91
httpwwwparliamentvicgovauSARCE-DemocracyFinal_ReportGlossaryhtm Eri im
tarihi 05012009
20 FU F LIU L WANG L Empirical Analysis of Online Social Networks in the Age of
Web 20 2007 Physica A Statistical Mechanics and its Applications Volume 387 Issues 2-3
Sayfalar 675-684
21 nternet Facebook httptrwikipediaorgwikiFacebook Eri im tarihi 06012009
22 nternet Facebook makale httpturkinternetcomhaberyazigosterphp3yaziid=22787
Eri im tarihi 06012009
23 nternet Facebook istatistiksel bilgiler
httpwwwinsidefacebookcom20090107facebook-growth-continuing-surpasses-150-
million-monthly-active-users Eri im tarihi 06012009
24 nternet Peter Thiel Facebook haberleri
httpwwwbusinessweekcomtechnologycontentmar2009tc2009031_743025htm Eri im
tarihi 06012009
25 nternet Blog httptrwikipediaorgwikiBlog Eri im tarihi 13022009
26 nternet Technorati httptechnoratimediacom Eri im tarihi 13022009
27 nternet Blog ara t rmas httpwwwmmistanbulcommakaletitlebloglarin-satin-alma-
kararlarina-etkisi-uzerine-bir-arastirma Eri im tarihi 13022009
28 nternet Wiki nedir httpyunushacettepeedutr~b0343579baglantilerwikinedirhtm
Eri im tarihi 13022009
29 nternet nternette wikinin yeri
httpogrencihacettepeedutr~besstindexphp20080603internette-wikinin-yeri Eri im
tarihi 14022009
30 Bergstedt S Wiegreffe S Wittmann J Moller D Content Management Systems and e-
Learning-Systems
A Symbiosis Proceedings of the The 3rd IEEE International Conference
on Advanced Learning Technologies (ICALT 03)
31 nternet ccedilerik Youmlnetim Sistemleri
httptrwikipediaorgwikiC4B0C3A7erik_yC3B6netim_sistemi Eri im tarihi
17022009
32 nternet ccedilerik Youmlnetim Sistemleri httpwwwmsxlabsorgforuminternet-bilgisayar-
dunyasi22262-icerik-yonetim-sistemi-cms-content-management-systemhtml Eri im tarihi
17022009
33 nternet Web 20 Tasar m Araccedillar httpwwweburhancomhazir-web-20-tasarim-
araclari Eri im tarihi 06022009
92
34 nternet Tasar m rehberi httpwwwhasanyalcincomweb-20-tasarim-rehberi-yansima-
ikon-ve-flaslarref=GuzelsTV Eri im tarihi 06022009
35 nternet AJAX kaynak makalesi
httpadaptivepathcompublicationsessaysarchives000385php Eri im tarihi 06022009
36 Keith J Bulletproof Ajax New Riders yay nc l k Sayfa 3 2007
37 Zakas N C McPeak J Fawcett J Professional Ajax 2nd Edition Wiley Publishing Inc
Sayfalar 5-18 2007
38 Gehtland J Galbraith B Almaer D Pragmatic Ajax A Web 20 Primer The Pragmatic
Programmers LLC sf1 2005
39 Babin L Beginning Ajax with PHP From Novice to Professional Apress Yay nc l k
Sayfa 6 2007
40 Crane D B beault B Sonneveld J Goddard T Gray C Venkataraman R Ve Walker J
Ajax in Practice Manning Publications Co Sayfalar 56 2007
41 Eichorn J Understanding AJAX Using JavaScript to Create Rich Internet Applications
August 11 2006 Sayfalar5-50
42 Ballard P SAMS Teach Yourself Ajax in 10 Minutes Sayfalar 6-78 28 Nisan 2006
43 nternet httpwwwipucuwebtraspders17php Eri im tarihi
44 Ullman C Dykes L Beginnig AJAX Wiley Publishing Inc Sayfa 44-100 2007
45 Zakas N C McPeak J Fawcett J Professional Ajax Wrox Press Chapter 2 Ajax
Basics Ajax Communication Techniques 2006
46 nternet Cross-Browser (Ccedilapraz Taray c Deste i) httpblogceyhunaksancomcross-
browser-capraz-tarayici-destegi Eri im 11032009
47 nternet
httpwwwyazgelistirnetviewtopicphpp=160ampsid=a49d3c26dd8e14e02e65bb222d6bcc39
Eri im 31032009
48 Jacobi J Fallows J R Pro JSF and Ajax Building Rich Internet Components Apress
Sayfa 175 2006
49 Schutta N T Asleson R Pro Ajax and Java Apress Sayfa 10 2006
50 Lauriat S M Ajax Architecture and Best Practices Pearson Education Inc Sayfa 25
2008
51 Powers S Adding Ajax OReilly yay nc l k June 01 2007
52 nternet Asenkron ve Senkron Meselesi httpAJAX-trcomasenkron-ve-senkron-meselesi
Eri im tarihi 02112008
53 Holzner S Ajax For Dummies Wiley Publishing Inc sf 40 2006
93
54 nternet httpwwwecma-internationalorgpublicationsfilesECMA-STEcma-262pdf
Eri im tarihi 06032009
55 Darie C Brinzarea B Chereche -To a F Bucica M AJAX and PHP Building
Responsive Web Applications Packt Publishing Sayfa42 2006
56 Olson S D Ajax on Java OReilly Yay nc l k Chapter 2 February 23 2007
57 nternet httpiibferciyesedutrggwebjavascriptpdf Eri im tarihi 06032009
58 nternet httpwwwmutasyonnetkitaplarasp hakk oumlcal javascript ders notu sf8 Eri im
tarihi 06032009
59 nternet httpwwwbilgisayarogrencomjava5doc Eri im tarihi 06032009
60 Asleson R Schutta N T Foundations of Ajax 2006 sf29
61 Wells C Securing Ajax Applications O Reilly Media Inc sf86 July 2006
62 nternet httpwwww3schoolscomdomdom_introasp Eri im tarihi 19032009
63 nternet httpwwww3orgTRREC-DOM-Level-1introductionhtml Eri im tarihi
19032009
64 nternet httpwwwberkerpeksagcomblogdom-document-object-model-belge-nesne-
modeli Eri im tarihi 19032009
65 nternet httpwwwrssnedircomxml_nedirphp Eri im tarihi 19032009
66 Jacobs S Beginning XML with DOM and Ajax From Novice to Professional Apress
Yay nc l k sf2631 2006
67 nternet
httpwwwcclubmetuedutrnenedirXML+(Extensible+Markup+Language)+Nedir3F
Eri im tarihi 20032009
68 nternet httpbelgelerorgelkitabixmldoc-howto_structhtml Eri im tarihi 20032009
69 nternet httpwwwverivizyoncomdetailaspcid=149 Eri im tarihi 20032009
70 nternet httpwwwbilgisayardershanesicomxml1htm Eri im tarihi 21032009
71 Johnson D White A Charland A ENTERPRISE AJAX Strategies for Building High
Performance Web Applications Prentice Hall Yay nc l k Sayfa 108 2008
72 nternet httpwwww3orgTRxhtml1dtds Eri im tarihi 01042009
73 nternet httpwwwcsharpnedircommakalegosteraspMId=51 52 Eri im tarihi
01042009
74 nternet httpofficemicrosoftcomtr-trinfopathHP010967301055aspx Eri im tarihi
01042009
75 nternet
httpwwwkodpaylascomviewtopicphpt=959ampsid=e5167bdea935943ed9bbdc91ee218c53
Eri im tarihi 01042009
94
76 nternet httpwwww3schoolscomXhtml Eri im tarihi 02042009
77 nternet httpwwwzvonorgxxlXMLTutorialOutput_turexample6html Eri im tarihi
02042009
78 nternet httpwwwbidbituedutrd=837 Eri im tarihi 03042009
79 nternet httpwwwcssnedircom Eri im tarihi 03042009
80 nternet httptrwikipediaorgwikiXSLT Eri im tarihi 03042009
81 nternet httpwwwbilisim-kulubucomsozluksozlukphpe=XSLT Eri im tarihi
08042009
82 nternet httpwwwsanalkursnetadobe-flex-nedir--1081html Eri im tarihi 10042009
83 nternet httpwwwadobecomtrproductsflex Eri im tarihi 11042009
84 nternet httpwwwtrflexcomp=4 Eri im tarihi 11042009
85 Oumlzer Z Varol A Web de Ajax Tekni inin Bant Geni lik Optimizasyonuna Etkisi
Bilimde Modern Youmlntemler Sempozyumu 2008
86 nternet httptrwikipediaorgwikiAJAX(programlama) Eri im tarihi 01062009
87 nternet httpajax-trcomajaxi-anlamak Eri im tarihi 01062009
95
OumlZGECcedilM
Zeynep OumlZER AYDO MU
zeynep_ozermsncom
F rat Uumlniversitesi Teknik E itim Fakuumlltesi
Elektronik Bilgisayar E itimi Boumlluumlmuuml
ELAZI
1983 y l nda Elaz da do du lk orta ve lise ouml renimini Elaz da tamamlad ktan
sonra 2002 y l nda F rat Uumlniversitesi Teknik E itim Fakuumlltesi Elektronik Bilgisayar E itimi
Bilgisayar Ouml retmenli i Boumlluumlmuuml nuuml kazand 2006 y l nda bu boumlluumlmden mezun oldu 2006
y l nda F rat Uumlniversitesi Fen Bilimleri Enstituumlsuuml Elektronik Bilgisayar E itimi Ana Bilim Dal
Bilgisayar Sistemleri Bilim Dal nda yuumlksek lisans e itimine ba lad 2007 y l ubat ay nda
Elaz n Karakoccedilan ilccedilesinin Yenice koumlyuumlnde h J Kd Uumlt m Mahir Oumlzdemir lkouml retim
Okulu nda Bilgisayar Ouml retmeni olarak goumlreve ba lad uan Elaz Korgeneral Hulusi Say n
Lisesi nde Bilgisayar Ouml retmeni olarak goumlrevini suumlrduumlrmektedir Yabanc dili ngilizce dir
Fatih AYDO MU ile evlidir
96
EK
Katalog ccedilal mas n n uygulama dosyas olan catamxml kullanmxml ve
imagepagemxml dosyalar n n kaynak kodlar a a daki gibidir
Catamxml
ltxml version=10 encoding=utf-8gt
ltmxApplication xmlnsmx=httpwwwadobecom2006mxml
layout=absolute
xmlnscontrols=qscontrols
backgroundColor=FFFFFF
creationComplete=init() color=FFFFFF xmlnslocal= xmlnscomp=comp
horizontalScrollPolicy=off verticalScrollPolicy=off borderColor=050505 borderStyle=solid
borderThickness=2gt
ltmxStyle source=stylecss gt
ltmxScriptgt
lt[CDATA[
import mxutilsStringUtil
import mxrpcsoapLoadEvent
import mxcontrolsAlert
import mxrpceventsFaultEvent
import qscontrolsFlexBook
import qscontrolsflexBookClassesFlexBookPage
import qscontrolsflexBookClassesFlexBookEvent
import qscontrolsflexBookClassesWBookPageImpl
import qscachingContentCache
import mxrpceventsResultEvent
import mxrpchttpHTTPService
import mxcoreUIComponent
import mxmanagersPopUpManager
import compResimSec
import Kullan
import mxcoreScrollPolicy
import mxcollectionsArrayCollection
private var aXML
[Bindable]
private var resimlerArrayCollectioncomboresim
97
private var dataSetHTTPService
private var resimdiziArray=new Array()
private var zoomYapBoolean=false
private function init()void
maskex=0
maskey=0
maskewidth=applicationwidth2
maskeheight=applicationheight-40
addEventListener(MouseEventMOUSE_MOVEmaskele)
addEventListener(tamam sayfa_secildi)
dataSet = new HTTPService()
dataSeturl = (dataimagesxml)
dataSetresultFormat = e4x
dataSetsend()
dataSetaddEventListener(FaultEventFAULT onFault)
dataSetaddEventListener(ResultEventRESULT onResult)
var wNumber=new Number
var hNumber=new Number
w=Applicationapplicationwidth
h=Applicationapplicationheight
bookwidth=w
bookheight=h-40
yuklemevisible=false
yuklemesource=assetsloadinggif
yuklemeaddEventListener(EventCOMPLETEyukleme_yuklendi)
private function yukleme_yuklendi(eventEvent)void
yuklemex=(applicationwidth2)-100
yuklemey=(applicationheight-40)2
private function maskele(eMouseEvent)void
if(zoomYap)
98
if((mouseXgt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) )
maskex=0
img2visible=false
img1visible=true
img1x=(applicationwidth2)-mouseX
img1y=-1mouseY
else if((mouseXlt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) )
maskex=applicationwidth2
img1visible=false
img2visible=true
img2x=-1mouseX
img2y=-1mouseY
maskex=mouseX
maskey=mouseY
private function onFault(eEvent)void
trace(e)
private function onResult(eResultEvent)void
a=new XML(eresult)
bookcontent = dataSetlastResultimage
bookaddEventListener(FlexBookEventTURN_STARTloadContent)
bookaddEventListener(FlexBookEventTURN_ENDloadContent)
private function sayfa_secildi(eventResimSec)void
99
sayfatext=eventyeniResim
git()
mxcontrolsAlertshow(sseventyeniResim)
private function loadContent(eventFlexBookEvent)void
setGorunum()
var pageImagePage = ImagePage(eventrenderer)
pageload()
sayfatext=(bookcurrentPageIndex2)toString()
resimdizi[bookcurrentPageIndex]=pagethumbsource
mxcontrolsAlertshow(bookcurrentPageIndextoString())
private function buyuk1_yuklendi(eventEvent)void
yuklemevisible=false
img1width=applicationwidth
img1height=(applicationheight-40)2
img1x=0
img1y=0
private function buyuk2_yuklendi(eventEvent)void
yuklemevisible=false
img2width=applicationwidth
img2height=(applicationheight-40)2
img2x=0
img2y=0
private function tumsayfalar()void
Kullanshow_window(thisfalseapplicationwidth-10(applicationheight-60)2)
customMoveend()
customMoveplay()
private function zoom()void
if(zoomerlabel==+)
zoomerlabel=-
if(img2source=aimage[bookcurrentPageIndex2]zoom)
yuklemevisible=true
img2addEventListener(EventCOMPLETEbuyuk2_yuklendi)
100
img2source=aimage[bookcurrentPageIndex2]zoom
if(aimagelength()gtbookcurrentPageIndex2+1)
img1addEventListener(EventCOMPLETEbuyuk1_yuklendi)
img1source=aimage[bookcurrentPageIndex2+1]zoom
zoomYap=true
else if(zoomerlabel==-)
zoomerlabel=+
setGorunum()
private function setGorunum()void
zoomYap=false
zoomerlabel=+
img1visible=false
img2visible=false
private function next()void
mxcontrolsAlertshow(bookcurrentPageIndextoString() bookpageCounttoString())
if(bookcurrentPageIndex+1 lt bookpageCount)
mxcontrolsAlertshow(--resimdizi[bookcurrentPageIndex])
setGorunum()
bookturnToPage(bookcurrentPageIndex + 1)
private function previous()void
if(bookcurrentPageIndex gt 0)
setGorunum()
bookturnToPage(bookcurrentPageIndex -1)
private function git()void
var s_nouint = new uint
s_no=Mathfloor(uint(sayfatext)2)
101
if(s_nogt0 ampamp s_noltbookpageCount)
bookturnToPage(s_no)
setGorunum()
]]gt
ltmxScriptgt
lt-- 614x453 --gt
ltmxParallel id=customMove target=Kullangt
ltmxMove duration=2000 xTo=(100) 2 yTo=(200) 2 gt
ltmxWipeRight duration=2000 gt
ltmxParallelgt
ltmxVBoxgt
ltmxHBoxgt
ltcontrolsFlexBook id=book width=100 height=100 x=0 y=0 horizontalCenter=0
verticalCenter=0
animateCurrentPageIndex=true
showCornerTease=false
edgeAndCornerSize=150
itemRenderer=ImagePage
animatePagesOnTurn=true
itemSize=halfPage cornerRadius=0 themeColor=1D99E8
backgroundAlpha=10 alpha=10gt
ltcontrolsFlexBookgt
ltmxHBoxgt
ltmxHBox height=30 width=100 verticalAlign=middle
horizontalAlign=center color=B65F5F backgroundColor=121313gt
ltmxSpacer width=10gt
ltmxSpacergt
ltmxTextInput borderColor=FFFFFF width=34 height=24 id=sayfa
color=FFFFFF fontSize=11 text=0 alpha=001gt
ltmxButton click=git() color=ffffff fontWeight=bold fontSize=11
width=114 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label=Sayfaya Git themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxSpacer width=60gt
102
ltmxSpacergt
ltmxButton click=previous() color=ffffff fontWeight=bold fontSize=11
width=70 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label=Geri themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxButton click=next() color=ffffff fontWeight=bold fontSize=11
width=70 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label= leri themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxButton click=tumsayfalar() color=ffffff fontWeight=bold fontSize=11
width=134 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label=Tuumlm Sayfalar themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxButton id=zoomer click=zoom() color=ffffff fontWeight=bold
fontSize=14 width=44 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00
00] label=+ themeColor=EDF2F5 textRollOverColor=EDD617 fontFamily=Arialgt
ltmxSpacer width=5gt
ltmxHBoxgt
ltmxSpacer height=10gt
ltmxVBoxgt
ltmxCanvas id=maske x=224 y=168 width=200 height=168
verticalScrollPolicy=off horizontalScrollPolicy=off borderThickness=0 borderColor=000000
borderStyle=solidgt
ltmxImage id=img1 x=0 y=0gt
ltmxImage id=img2 x=40 y=0gt
ltmxCanvasgt
ltmxImage x=10 y=144 id=yuklemegt
ltmxApplicationgt
103
Kullanmxml
ltxml version=10 encoding=utf-8gt
ltmxTitleWindow xmlns= xmlnsmx=httpwwwadobecom2006mxml
creationComplete=on_creation_complete()
styleName=popupWindow showCloseButton=true
paddingBottom=0 paddingTop=0 paddingLeft=0 paddingRight=0
height=200 width=100 alpha=09 borderAlpha=1gt
ltmxScriptgt
lt[CDATA[
import mxcontrolsAlert
import mxcollectionsArrayCollection
import mxrpceventsResultEvent
[Bindable]
private var sayfalarArrayCollection
[Bindable]
private var introString =
import mxeventsCloseEvent
import mxmanagersPopUpManager
import mxcoreApplication
import mxeventsDragEvent
import mxmanagersDragManager
import mxcoreDragSource
import compResimSec
import koraxcontrolsColorPickerResimSecEvent
private var m_parentDisplayObject = null
private function myResult(eventResultEvent)void
sayfalar = eventresultsayfalarsayfa
private function sayfaac(eventEvent)void
wndwith_last_preved()
mxcontrolsAlertshow(myTileselectedItemgittoString())
uyeler = eventresultsayfalarsayfa
104
private function on_creation_complete()void
myHTTPsend()
private static var wndKullan = null
public static function show_window(parentDisplayObject
modalBooleanwNumberhNumber)void
if (wnd == null)
wnd = new Kullan()
wndaddEventListener(mxeventsCloseEventCLOSE on_close_event)
wndm_parent = parent
if (wndisPopUp)
PopUpManageraddPopUp(wnd DisplayObject(Applicationapplication) modal)
PopUpManagercenterPopUp(wnd)
else
PopUpManagerbringToFront(wnd)
wndstart_init()
wndx=0
wndy=0
wndwidth=w
wndheight=h
wndmyTilewidth=w-20
wndmyTileheight=h-40
private function with_last_preved()void
if (m_parent = null) m_parentdispatchEvent(new ResimSec(tamam
myTileselectedItemgit))
private static function on_close_event(eventCloseEvent)void
if (wnd == null) return
PopUpManagerremovePopUp(wnd)
wnd = null
105
private function yardim()void
Kullanshow_window(thisfalse)
]]gt
ltmxScriptgt
ltmxHTTPService id=myHTTP url=dataonizlexml
result=myResult(event) showBusyCursor=truegt
ltmxTileList id=myTile dataProvider=sayfalar change=sayfaac(event)
itemRenderer=compUyeSayfasi width=100 height=147 rowHeight=110 columnWidth=120
rowCount=2gt
ltmxTitleWindowgt
106
ImagePagemxml
ltxml version=10 encoding=utf-8gt
ltmxCanvas xmlnsmx=httpwwwadobecom2006mxml width=600 height=400
xmlnscontrols=qscontrols
backgroundColor=FFFFFF horizontalScrollPolicy=off verticalScrollPolicy=offgt
ltmxstatesgt
ltmxState name=loadingStategt
ltmxAddChild position=lastChildgt
ltmxImage id=loadingContent horizontalCenter=0 verticalCenter=-6
source=assetsloadinggif gt
ltmxAddChildgt
ltmxStategt
ltmxstatesgt
ltmxtransitionsgt
ltmxTransition fromState= toState=loadingStategt
ltmxFade alphaTo=1 target=loadingContent duration=1000gt
ltmxTransitiongt
ltmxTransition toState= fromState=loadingStategt
ltmxSequencegt
ltmxFade alphaTo=0 target=loadingContent duration=1000gt
ltmxRemoveChildAction target=loadingContent gt
ltmxSequencegt
ltmxTransitiongt
ltmxtransitionsgt
ltmxScriptgt
lt[CDATA[
import mxcontrolsAlert
private var _loadedBoolean = false
public function load()void
if(_loaded)
return
_loaded = true
fullsource = datasourcetoString()
mxcontrolsAlertshow (fullsource)
107
currentState = loadingState
]]gt
ltmxScriptgt
ltcontrolsSuperImage left=0 right=0 top=0 bottom=0 id=thumb
source=datathumbtoString() gt
ltcontrolsSuperImage left=0 right=0 top=0 bottom=0 id=full complete=currentState = gt
ltmxCanvasgt
This document was created with Win2PDF available at httpwwwwin2pdfcomThe unregistered version of Win2PDF is for evaluation or non-commercial use onlyThis page will not be added after purchasing Win2PDF
IV
EK LLER L STES
Sayfa
ekil 21 Web 20 kavram
2
ekil 22 Web 20 ak m nda oumlne ccedil kan uygulamalar 3
ekil 23 Doubleclick ve Google Adsense sitelerinin logolar 4
ekil 24 Flickr sitesinin logosu 5
ekil 25 ccedilerik da t m sitelerinde bittorrent site logosu 5
ekil 26 Torrent program n n anasayfas
6
ekil 27 Torrent program n n arayuumlzuuml 7
ekil 28 Facebook kullan c say s n n aylara goumlre da l m grafi i 9
ekil 29 Aylara goumlre facebook ve myspace site analizi 10
ekil 210 Vikipedi oumlzguumlr ansiklopedi sitesinin logosu 12
ekil 211 Oumlrnek etiket bulutu 14
ekil 212 Yans mal logo oumlrne i 15
ekil 213 Web 20 da buton oumlrnekleri 15
ekil 214 Web 20 da arka plan oumlrnekleri 15
ekil 215 Web 20 da ccedilerccedileve yap s na oumlrnek 16
ekil 216 Web 20 da menuuml oumlrne i 16
ekil 31 Jesse James Garrett in makale goumlruumlntuumlsuuml 17
ekil 32 Google Suggest ekran goumlruumlntuumlsuuml 18
ekil 33 Google Maps ekran goumlruumlntuumlsuuml 18
ekil 34 Geleneksel sunucularda istekcevap modeli 20
ekil 35 AJAX n asenkron istekcevap modeli 20
ekil 36 Klasik Web uygulamalar nda t kla-bekle doumlnguumlsuuml 21
ekil 37 T kla-T kla interaktif AJAX uygulamas
21
ekil 38 Geleneksel Web ileti im modeli ile AJAX ileti im modeli 21
ekil 39 Web uygulamas ndaki cevap ak
22
ekil 310 AJAX uygulamalar ndaki istek ak
22
ekil 311 Normal Web ile AJAX uygulamalar n n kar la t rmas
23
ekil 312 Geleneksel istekcevap (requestresponse) youmlntemi 23
ekil 313 Standart AJAX etkile imi 32
ekil 314 E zamanl olmayan ileti im modeli 35
ekil 315 E zamanl ileti im modeli 36
ekil 316 Javascript nesneleri 44
V
ekil 317 DOM a accedil yap s
46
ekil 318 AJAX oumlrne i 49
ekil 319 sonuchtml sayfas n n ekran ccedil kt s
51
ekil 320 denemexml dosyas n n a accedil yap s
53
ekil 321 XML belgesi 55
ekil 322 Oumlrnek bir XML dokuumlman yap s
56
ekil 323 denemexsd nin ekran goumlruumlntuumlsuuml 65
ekil 41 Flex uygulamalar n n i lem ak emas
75
ekil 42 Flex arayuumlzuuml 76
ekil 51 Kodlama algoritmas
79
ekil 52 Katalo un ilk sayfas n n ekran goumlruumlntuumlsuuml 81
ekil 53 Katalo un 23 sayfa goumlruumlntuumlsuuml 82
ekil 54 Katalo un sayfa ccedilevirme efektli goumlruumlntuumlsuuml 83
ekil 55 Katalo un navigasyon ccedilubu u 84
ekil 56 Tuumlm Sayfalar duuml mesi t kland ndaki ekran goumlruumlntuumlsuuml 85
ekil 57 Zoom oumlzelli i 86
VI
TABLO L STES
Tablo 21 Facebook ve myspace in buumlyuumlme tablosu 10
Tablo 31 Standart XHR nesnesinin oumlzellikleri 30
Tablo 32 Standart XHR nesnesinin fonksiyonlar
31
Tablo 33 De i ken tuumlrleri 41
Tablo 34 leccediller ve goumlrevleri 41
Tablo 35 kili i leccediller 42
Tablo 36 DTD karakterleri ve accedil klamalar
61
Tablo 37 DTD ccedilindeki niteliklerin de er ve accedil klamalar
62
Tablo 38 Varsay lan de erler ve accedil klamalar
62
Tablo 39 XML Belgelerinde kullan lan varl k bildirimleri 67
VII
KISALTMALAR L STES
AJAX Asenkron JavaScript ve XML
API Application Programming Interface (Uygulama Program Arayuumlzuuml)
ASP Active Server Pages (Aktif Sunucu Sayfalar )
CDNs Content Distributed Networks ( ccedilerik Da t c A lar)
CMS Content Management System ( ccedilerik Youmlnetim Sistemi)
CGI Common Gateway Interface (Genel Geccedili Arayuumlzuuml)
CSS Cascading Style Sheets (Basamakl Stil Sayfalar )
DFA DART for Advertisers
DOM Document Object Model (Doumlkuumlman Nesne Modeli)
DTD The Document Type Definition (Dokuumlman Tipi Tan mlama)
DWR Direct Web Remoting ( Direkt Web Eri imi)
ECMA European Computer Manufacturers Association (Avrupa Bilgisayar
Uumlreticileri Birli i)
GOumlBL GNU Oumlzguumlr Belgeleme Lisans
HTML Hyper Text Markup Language (Yard ml Metin aretleme Dili)
HTTP Hypertext Transfer Protocol (Yard ml Metin Aktar m Protokoluuml)
IDE Integrated Development Environment (Tuumlmle ik Geli tirme Ortam )
JSP Java Server Pages (Java sunucu Sayfalar)
LAN Local Area Network (Yerel Alan A )
MIYS E-ticaret ve Muuml teri li kileri Youmlnetim Sistemleri
MSN Microsoft Network
OOP Object Oriented Programming (Nesne Youmlnelimli Programlama)
PHP Hypertext Preprocessor (Yard ml Metin Oumlni leme)
PIs Processing Instructions ( lem Accedil klamalar )
RIA Rich Internet Applications (Zengin nternet Uygulamalar )
VIII
RPC Remote Procedure Call (Uzaktan Yordam Ccedila rma)
SAX Simple API for XML (XML iccedilin Basit API)
WIKI What I Know is (Ne Biliyorsam)
W3C World Wide Web Consortium (Duumlnya Ccedilap nda A Birli i)
XML eXtensible Markup Language (Geli tirilebilir aretleme Dili)
XHR XMLHttpRequest
XHTML Extensible HyperText Markup Language (Geli tirilebilir Yard ml Metin
aretleme Dili)
XSD eXtensible Schema Document(Geni letilebilir ema Dokuumlman )
XSL Extensible Stylesheet Language (Geli tirilebilir Biccedilimlendirme Dili)
XSLT Extensible Stylesheet Language Transformations (Geli tirilebilir
Biccedilimlendirme Dil Doumlnuuml uumlmleri)
IX
OumlZET
Yuumlksek Lisans Tezi
AJAX TEKNOLOJ S KULLANARAK CcedilEVR M Ccedil
KATALOG TASARIMI
Zeynep OumlZER AYDO MU
F rat Uumlniversitesi
Fen Bilimleri Enstituumlsuuml
Elektronik-Bilgisayar E itimi Anabilim Dal
2009 Sayfa 107
Gerccedilekle tirilmi olan bu uygulama kapsam nda Flex program ve Web 20 n
ccedilekirde ini olu turan AJAX (Asynchronous JavaScript and XML) teknolojisi kullan larak F rat
Uumlniversitesini tan tan kolayl kla guumlncellenebilen Zengin nternet Uygulamalar na (RIA- Rich
Internet Applications) oumlrnek bir ccedilevrimiccedili katalog tasar m ve gerccedilekle tirimi yap lm t r
Projenin gerccedilekle tirim a amalar nda kullan lan teknolojilerin ve izlenen youmlntemlerin
anlat mlar n iccedileren bir yol haritas olu turulmu tur
Anahtar soumlzcuumlkler AJAX RIA Web 20 ccedilevrimiccedili katalog e-dergi
X
ABSTRACT
Master Thes s
ONLINE CATALOG DESIGN USING AJAX TECHNOLOGY
Zeynep OumlZER AYDO MU
F rat University
Graduate School of Natural and Applied Sciences
Department of Electronic and Computer Education
2009 Page 107
Embracing in this comparison F rat University is introduced by using Flex program and
AJAX (Asynchronous JavaScript and XML) technology which forms Web 20 Also RIA (Rich
Internet Applications) is easily renowated which is instance for online catalog design A road
map including realization of the project and tracing methods are illustrated
Keywords AJAX RIA Web 20 online catalog e-journal
1
1 G R
Web in geli im suumlrecinde ccedile itli youmlntemler kullan l r Bu youmlntemlerin farkl amaccedillara
hizmet etmeye ba lamas yla Web te ak mlar meydana gelmi tir Bu ak mlardan ilki Web 10
ak m olarak adland r l r Bu ak mda kullan c lar bilgilendirmeye youmlnelik iccedilerik sunumu
yap lmaktad r [1]
Web 20 ak m ise internet sitelerinin bilgi bar na olmas ndan i leyen platformlara
ta nmas
olarak tan mlanabilir Web 20 RIA (Rich Internet Applications- Zengin nternet
Uygulamalar ) i lemleri internet sunucu mimarisi temeline dayanmaktad r RIA da beraberinde
kulland AJAX Flex gibi teknolojiler uumlzerine kuruludur [1]
Baz yeni teknolojilerle de i en World Wide Web duumlnyas Web 20 RIA AJAX
(Asynchronous JavaScript and XML- E zamanl olmayan JavaScript ve XML) terimleriyle izah
edilmektedir
11 Tez Ccedilal mas n n Amac
Bu tez ccedilal mas yla Web 20 n ccedilekirde ini olu turan AJAX (Asynchronous JavaScript
and XML) teknolojisi ve Flex program kullan larak F rat Uumlniversitesini tan tan kolayl kla
guumlncellenebilen Zengin nternet Uygulamalar na (RIA-Rich Internet Applications) oumlrnek bir
ccedilevrimiccedili (online) katalog tasar m yap lmas hedeflenmi tir Projenin gerccedilekle tirim
a amalar nda kullan lan teknolojilerin ve izlenen youmlntemlerin anlat mlar n iccedileren bir yol
haritas olu turulmas amaccedillanm t r Bu tez ccedilal mas sonucunda geli tirilen yaz l mla kolay
guumlncellenebilen katalog haz rlanmas na katk sa lanmas amaccedillanm t r
12 Tez Ccedilal mas n n Kapsam
Bu tez ccedilal mas 6 boumlluumlmden olu mu tur 1 Boumlluumlm giri i olu turmaktad r 2Boumlluumlmde
Web 20 ak m incelenecektir 3 Boumlluumlmde AJAX teknolojisi accedil klanacakt r 4 Boumlluumlmde
yaz l m gerccedilekle tirme arac olarak kullan lan Flex tan t lacakt r 5 Boumlluumlmde gerccedilekle tirilmi
ccedilevrimiccedili katalog hakk nda bilgi verilecektir 6 Boumlluumlmde ccedilal man n sonuccedillar
ve gelece e
youmlnelik oumlneriler bulunmaktad r
2
2 WEB 20 AKIMI
Ccedilo u teknolojilerde oldu u gibi yenilik aray ihtiyaccediltan do ar Yeni Web ak mlar n n
do u u da 2001 y l ndaki tuumlm duumlnyay etkileyen kriz sonras nda iflas eden irketlerin yeniden
aya a kalkma ccedilabalar n n bir sonucu olarak ortaya ccedil km t r [2 3] Web 20 ak m 2005 te ilk
kez OReilly ve MediaLive International aras nda gerccedilekle en bir beyin f rt nas s ras nda
uumlretilmi bir kavramd r [3] Web 20 kavram World Wide Web teknolojisinde kullan lan
de i en ve geli en e ilimlere verilen bir ad olarak da tan mlanabilmektedir
ekil 21 Web 20 kavram
[4]
Web 20 kavram ekil 21 de goumlsterildi i uumlzere Web bir uygulama platformu ve sosyal
etkile imli olma oumlzelliklerini bar nd r r Ccedilevrimiccedili hayat n ba lang c ve devam n temsil eder
Say sal ortamda kendini ifade etme imkacircn sunar Kullan c lar (oku-yaz oumlzelli i ile) Web te
kat l mc kimlik kazan r
Asl nda Web 20 ortam n 1964 y l nda McLuhan Global Koumly terimini kullanarak
ortaya atm t r McLuhan Global Koumlyuuml gelecekte ileri teknolojiye geccedililmesiyle ve toplumlar
aras nda s n rlar n kalkmas yla duumlnyan n her kouml esinde teknolojiyi kullanan herkesin co rafi
s n rlar ve s n rlamalar olmaks z n diledikleri ki iyle ileti im kurabilecekleri
haberle ebilecekleri ve payla mda bulunabilecekleri bir ortam olarak tan mlam t r [5]
Mc Luhan n n tan m ndan guumlnuumlmuumlze kadar geccedilen suumlreccedil iccedilinde kullan c ihtiyaccedillar
da
de i im ve geli im goumlstermi tir Bu ihtiyaccedillar kar lamak iccedilin genel olarak internet
uygulamalar n n daha zengin bir arayuumlz ile sunulmas n sa layan uygulamalar Zengin nternet
Uygulamalar ad alt nda k sa zaman oumlnce hayat m za girmi tir
RIA uygulamalar s radan HTML web uygulamalar ile standart masauumlstuuml uygulamalar
aras ndaki bo lu u dolduran bir geli tirme platformudur Web arayuumlzuumlnde basit HTML ile
3
s n rl kalmadan masauumlstuumlndeki zengin goumlrsel ouml eleri program niteli inde kullanabilecek her
tuumlrluuml araccedil RIA konseptini uygulamaktad r [6]
Kullan c lar art k iccedilerik uumlreticilerin s n rlar n kald rarak kullan c n n yan s ra kat l mc
olarak ta nitelendirilerek etkile imli bir rol uumlstlenmi lerdir nternetin bu yeni gereksinimlere
cevap vermesiyle ortaya ccedil kan Web 20 doumlnuuml uumlmuuml hem kullan c say s nda art a neden
olmu tur hem de kullan c lar n iccedilerikleri yani mesajlar olu turdu u ve payla t buumlyuumlk bir
guumlce doumlnuuml muuml tuumlr Bu guumlcuumln oumlnemini ccedilabuk anlayan kurulu lar mimarilerine AJAX da dacirchil
ederek oumlnce arama motorlar n Google Yahoo yu daha sonra MSN yi Hotmail i bloglar
(Myspace Bloggercom Blogcucom gibi) Youtube u Wikileri ve sosyal a sitelerini
(Facebook Twitter Orkut vb) ke fetmi lerdir Bu ke iflerin sonucunda McLuhan n Global
Koumly uumlnuumln 21 Yuumlzy lda tam olarak gerccedilekle ti i soumlylenebilir Bu interaktif siteler sayesinde
ayn anda milyarlarca ki inin rk dil din ya am tarz e itim ya cinsiyet statuuml goumlzetmeksizin
e zamanl payla mda bulunup kendi ccedilevreleri ve ba ka ccedilevrelerle ileti ime geccedilebilmektedirler
ekil22 de goumlsterilen irketler Web 20 ak m nda oumlne ccedil kan sitelerin oumlzellikle ccedilevrimiccedili
faaliyet goumlsteren reklacircm irketleri pazarlama ve ticari irketler perspektifinden bak ld nda da
oumlnemli bir potansiyele sahip kitle ileti im araccedillar olarak goumlruumlluumlr [7]
ekil 22 Web 20 ak m nda oumlne ccedil kan uygulamalar [8]
Kitle ileti im arac olarak kullan labilen bu uygulamalar iccedilin birccedilok geli tirme ortam
mevcuttur Adobe Flex AJAX Java Applet Adobe Flash ve Microsoft Silverlight uygulamalar
en ccedilok bilinen RIA uygulamalar d r A a da da bu uygulamalarla olu turulmu Web 20
platformunda oumlne ccedil kan popuumller uygulama oumlrnekleri incelenecektir [7]
4
21 Web 20 Platformunda Oumlne Ccedil kan Popuumller Uygulamalar
kinci nesil internet hizmeti olarak literatuumlre giren Web 20 ak m yla internet sitelerinin
ccedilehresi de i mi tir nternet siteleri art k masauumlstuuml uygulamalar ile internet uygulamalar
aras nda bir koumlpruuml goumlrevi uumlstlenmi tir A a da bu ak m n popuumller uygulamalar ndan oumlrnekler
bulunmaktad r
211 Double Click - Google AdSense
Google firmas na ait iki uygulama da reklacircm verenlerin ve yay nc lar n web uumlzerinden
reklacircm hizmeti sunmas n sa layan sitelerdir Her reklacircmc n n hedefi tuumlketicilerin isteklerine
uygun ccediloumlzuumlmler sunmakt r Bu ccediloumlzuumlm ise Web 20 la reklacircmlar n profilini de i tirmi tir Art k
istenmeyen kendili inden accedil lan reklacircm pencerelerinin yerini kullan c n n bilgisayar na
yerle tirilmi ccedilerezlerden ccedilekti i bilgilere dayanarak kullan c n n ilgisini ccedilekebilece ini tahmin
etti i rahats z edici olmayan metin ya da resim tabanl
reklacircmlar alm t r
DoubleClick in di er reklacircm firmalar ndan ayr lan youmlnuuml reklacircmc lar iccedilin DART
oumlnerisiyle k saca DFA (DART for Advertisers) ile reklacircm youmlnetimi ve servis ccediloumlzuumlmlerinde
kullan c lar na dijital pazarlama programlar n n tuumlmuumlnuuml kapsayan youmlnetimi kolay daha iyi bir
arayuumlze sahip h zl geni bir arama sistemine sahip de eri artan sitelerin trafik ak n
belirleyen bir ccediloumlzuumlm olmu tur DoubleClick daha ccedilok grafiksel reklacircmlar yay nlamaktad r
Oumlnceleri Web 10 uygulamalar aras nda say lan bu site Web 20 doumlnuuml uumlmuumlnuuml ba ar yla
gerccedilekle tirmi tir [9]
Google AdSense ise web sitesi yay nc lar n n site iccedileri iyle alakal dinamik ve goumlze
batmayan Google reklacircmlar n
web sitelerinde goumlstererek kullan c lar n bu reklacircmlara
t klamalar yla para kazanmalar n sa laman n h zl ve kolay bir yoludur Uumlcretsiz olan bu
program sayesinde her t klama ve goumlsterim iccedilin site sahiplerine oumldeme yap l r [10] Bu
uygulamalar sayesinde Web de daha ak ll bir sisteme do ru youmlnelim ba lam t r
ekil 23 Doubleclick ve Google Adsense sitelerinin logolar [11 12]
5
212 Flickr
Yahoo nun sundu u bir hizmet olan uumlcretsiz foto raf arama ve payla m sitesi Flickr
ayn zamanda web servisi ve ccedilevrimiccedili topluluk platformudur Web 20 n ilk uygulamalar ndan
biridir Foto raf payla m nda en popuumller sitelerin ba nda gelmektedir ccedileri inde yakla k
olarak 3 milyar
a an foto raf bulunmaktad r Yenilikccedili ccedilevrimiccedili topluluk araccedillar foto raflar
etiketlemeye ve s n fland rmaya yard mc olur Bu da popuumllaritesindeki ciddi art n
nedenlerinden biridir
Flickr a imaj yuumlkleyebilmek iccedilin Yahoo dan bir e-mail adresiyle sisteme giri
yap lmal d r Payla lmak istenen foto raflar uumlcretli uumlyelik olmadan her imaj iccedilin 5 Mb l k
s n rlamayla ayda toplam 100 Mb a kadar yuumlkleme yap labilir Sadece foto raf eklemenin
d nda imajlar uumlzerinde duumlzenlemeler yap labilir Belirlenen alanlara notlar eklenebilir
Be enilen foto raflara yorumlar eklenebilir Ccedile itli gruplara uumlye olunup ileti im kurulabilir
Ayr ca API leri sayesinde XML-RPC (Remote Procedure Call- Uzaktan Yordam Ccedila rma)
arabirimi kullanarak flickr sitesindeki foto raflarla ilgili bilgileri proseduumlrler sayesinde XML
format nda al p ayr t rarak ba ka bir programda kullan labilinir Flickr daki blog grup ve
etiketleme alt yap s bu API lere dayanmaktad r [13]
ekil 24 Flickr sitesinin logosu [14]
213 BitTorrent
BitTorrent internet uumlzerinden yuumlksek h zlarla iccedileri in da t ld duumlnya ccedilap nda bir
standartt r Ayr ca 150 milyondan fazla kullan c ya sahip en son p2p (peer to peer) dosya
payla m youmlntemlerinden biridir Di er p2p payla m programlar ndan fark sabit olmayan
ba ms z sunucu tan mlama dosyalar sayesinde sabit bir sunucuya ihtiyaccedil olmaks z n belirli bir
protokol ccedilerccedilevesinde indirme (download) yaparken yuumlkleme (upload) yap lmas na da izin
vererek payla ma devam edebilmesidir [15]
Python programlama diliyle yaz lm bir uygulamad r [15]
ekil 25 ccedilerik da t m sitelerinde bittorrent site logosu [16]
6
Bit Seli olarak da ccedilevirebilece imiz ccedilok h zl bir sistemdir BitTorrent sayesinde
oldukccedila buumlyuumlk boyutlu videolara ses ya da yaz l m dosyalar na daha h zl daha ucuz ve daha
kolay bir ekilde ula labilmeyi sa lar
Guumlnuumlmuumlzde ccedilerik Da t c A lar (Content Distributed Networks-CDNs) guumln geccediltikccedile
popuumllaritesini art rmaktad r Bittorent kullan m n n 2004 te internet te teknik standartlar ve
youmlnetim konusunda yetkili organ olan W3C (World Wide Web Consortium - Duumlnya Ccedilap nda
A Birli i) taraf ndan yap lan bir ccedilal maya goumlre P2P ba lant lar n toplamda 60 n tuumlm
internet trafi inin ise 30 unu a aca tahmin edilmektedir
BitTorrent le dosya transferi yap l rken oumlncelikle bilgisayarda BitTorrent stemci
(Client) yuumlkluuml olmal d r stemci yaz l mlara oumlrnek Flashget Azureus BitTorrent Torrent
ABC LimeWire vb yaz l mlar olabilir ekil 26 ve ekil 27 de en popuumller uygulamalardan
Torrent yaz l m n n kurulum ve arayuumlz oumlrne i goumlruumllmektedir
ekil 26 Torrent program n n anasayfas
7
ekil 27 Torrent program n n arayuumlzuuml
BitTorrent istemciler BitTorrent Protokol uygulamalar n yapar Her istemci bu
protokoluuml kullanarak dosyalar n kullan c lar n BitTorent in kulland protokole sahip
duumlnyadaki tuumlm iccedileriklere h zl ve guumlvenilir bir ekilde eri mesine izin verir stenilen iccedileri in
indirilebilmesi iccedilin gerekli tan mlama bilgilerinin bar nd
torrent uzant l bir dosyaya
ihtiyaccedil vard r Bu torrent dosyalar n ccedile itli duyuru sitelerinden ya da Web den temin edildikten
sonra istemciler yukar da bahsedilen herhangi bir torrent yaz l m kullanarak bu dosyay accedilarlar
ndirme ba lad anda indirilmek istenen dosyay payla an kullan c lar n olu turdu u kuumlccediluumlk
a a (swarm) dacirchil olurlar Bu kuumlccediluumlk a daki her kullan c dosyan n indirdi i boumlluumlmuumlnuuml di er
kullan c larla payla mas gerekir Tuumlm bu i lemleri de takipccedili (tracker) isimli bir sunucu kontrol
eder Yakla k olarak 256 Kb buumlyuumlkluuml uumlndeki bu kuumlccediluumlk boyutlu dosyalara indeksleyici
(indexer) de denmektedir Kuumlccediluumlk bir a
kurulmas iccedilin tuumlm dosyaya sahip en az bir da t c n n
(seeder) olmas gerekir Da t c lar herhangi bir dosyay yuumlkleyen kaynaklard r O dosyan n
tamam n
kendi bilgisayar na indiren her kullan c art k bir da t c
olur Fakat da t c olmak
kullan c lar n insiyatifindedir ndirme i lemi bittikten sonra o dosya payla ma accedil k tutulmazsa
di er kullan c lar da t c dan bu dosyay ccedilekerek indirme i lemini h zland ramazlar Da t c
say s
ne kadar artarsa indirme i lemi o kadar h zl olur ndirme yapan kullan c lara da grup
uumlyeleri (peers) denilmektedir Torrent dosyas n indiren kullan c lar izleyicilere (tracker) dosya
hakk nda bilgi goumlnderirler di er kullan c lar (peers) ise izleyicilere ba lanarak kimde hangi
dosyan n hangi parccedilalar n n oldu unu ouml renirler zleyiciler uumlzerinden kesinlikle dosya transferi
8
gerccedilekle mez sadece kaynak payla l r Hangi kullan c ne kadar dosya ccedilekti ve ne kadar
yuumlkledi gibi istatistiksel bilgileri de bar nd rabilir [16 17]
Sadece indirme i lemi yap p kaynak olmay istemeyen ki ilere leecher (suumlluumlk) denir Bu
anlay a sahip ki iler gruplar iccedilinde ho kar lanmazlar Bir torrent dosyas payla m nda
kaynak (seed) say s s f r ise yani dosyan n tamam na sahip ki iler payla mdan ccedilekilmi lerse
eksik dosyaya sahip buumltuumln uumlyeler (peer) birbirleri aras nda veri al veri i yaparak eksik
parccedilalar indirebilecekleri bir kaynak olmad ndan belli bir yuumlzdesi tamamlanm dosyaya
sahip olarak kal rlar Bu durumda daha oumlnce dosyay indirmi ve dosyan n tamam na sahip olan
bir kullan c
eksik parccedilalar goumlndermek iccedilin dosyay yeniden payla ma accedilabilir (seed eder) Bu
olaya reseed etme denir [18]
214 Sosyal A Siteleri
Sosyal a lar bireyler aras ndaki ki isel veya profesyonel ili kilerin olu turuldu u
duumlzenlendi i a d r [19] Son y llardaki bilgi teknolojilerindeki geli meler sosyal a lar n gerccedilek
ya amdakinden daha farkl bir ekilde yeniden yap lanmas n
sa lam t r Herhangi bir
irketteki yerel a iccedilinde personelin e-posta al p-goumlndermesiyle olu an etkinlik ve e-posta
gruplar ilk ccedilevrimiccedili sosyal a oumlrneklerinden say labilir Daha sonra h zla hayat m za giren
bloglar wikiler ve sosyal a siteleri gibi sosyal i birli i sa layan teknolojilerin geli mesi
insanlar n ileti im kurduklar bilgi resim muumlzik video payla t klar ve birbirleriyle suumlrekli
haberle tikleri ccedilevrimiccedili sanal topluluklar n olu mas n sa lam t r [20] Bu topluluklar n h zla
yay lmas n n temelinde kullan c lar n bireysel aktivitesine ba l olarak duygu ve duuml uumlncelerini
bilgiyi guumlncel haberleri tavsiyelerini be enilerini payla ma fikri vard r A a da sosyal a
sitelerinden en popuumller olanlar iccedilinde yer alan Facebook incelenecektir [7]
2141 Facebook
En yayg n sosyal a sitesi Facebook Amerika Birle ik Devletleri nde 4 ubat 2004
tarihinde Harvard Uumlniversitesinde ouml renci Mark Zuckerberg taraf ndan kurulmu tur Facebook
oumlncelikle Harvard ouml rencileri iccedilin kurulmu tu Daha sonra h zla tuumlm duumlnyaya yay lm t r
Kullan c lar siteyi uumlcretsiz uumlye olarak kullanabilmektedir Site gelirini banner reklamlar ndan ve
sponsor gruplar ndan almaktad r Duumlnyan n en popuumller Web 20 blogu TechCruncha goumlre
Amerika Birle ik Devletleri ndeki uumlniversitelerdeki ouml rencilerin 85inin facebookda bir
hesab bulunmakta ve bunlar n 60 her guumln ba lanmaktad r 85 her hafta 93 her ay
ba lananlar aras ndad r [21] Facebook sitesinden ba ms z Web 20 ak m n yak ndan takip
9
eden bir blog sitesi olan insidefacebook 2009 Ocak ay n n ba nda yay nlad habere goumlre
facebook kullan c say s a a daki grafikte goumlruumllduuml uuml gibi yakla k 140 milyonu bulmu tur
Milyonlar a k n aktif uumlye say s yla guumlnde ortalama 150 bin aktif kullan c yla sanal duumlnyan n en
popular sitesi olmu tur [22]
ekil 28 Facebook kullan c say s n n aylara goumlre da l m grafi i [23]
Aktif kullan c lar n iccedileri e katk s a a daki istatistik sonuccedillar n do urmu tur [22]
13 milyon kullan c durumlar n en az ndan guumlnde bir kez guumlncellenmektedir
25 milyon kullan c her guumln Sayfa hayran (fan of Pages) olmaktad r
Siteye her ay 700 milyon foto raf yuumlkleniyor ki toplam foto raf rakam yakla k 10
milyar bulmaktad r
Her ay 4 milyon video yuumlklenmektedir
Her ay 15 milyon iccedilerik parccedilas (web linki yeni hikacircyeler blog yaz lar notlar
foto raflar vb) payla ma sunulmaktad r
Her ay 2 milyon etkinlik olu turulmaktad r
Sitede 19 milyon adet aktif grup varl n suumlrduumlrmektedir
Yukar da belirtilen bu rakamlar sosyal ileti im a lar n n ne kadar ciddi boyutlarda bir
kapasiteye sahip oldu unu goumlstermektedir
10
ekil 29 Aylara goumlre facebook ve myspace site analizi [22]
Facebook ve ona en yak n rakibi sosyal ileti im web sitesi olan MySpace compete de
kar la t r ld nda yukar daki grafik elde edilmektedir
Tablo 21 Facebook ve myspace in buumlyuumlme tablosu
Tarih 032008 032009 Kullan c
Ayl k Y ll k
facebookcom
91054535 234
1951
myspacecom
55594761 48
-114
Tablo 21 de Mart 2008 ile Mart 2009 aras ndaki ayl k aktif ziyaretccedili say s n
goumlstermektedir Compete verilerine goumlre Aral k 2008 de facebook myspace in kullan c say s n
yakalam t r Tablo 21 deki verilere goumlre bir oumlnceki y la goumlre Facebook taki kullan c say s nda
ayl k 234 luumlk bir art varken MySpace 48 lik bir buumlyuumlmeye sahiptir Yakla k olarak
ayl k MySpace Facebook u 5 kat geriden takip etmektedir Facebook taki bir oumlnceki y la
goumlre 1951 lik buumlyuumlmeye kar n myspace de 114 luumlk kuumlccediluumllme goumlruumllmektedir Elde edilen
veriler ileriki y llarda bu rakamlar aras ndaki uccedilurumun artaca n i aret etmektedir
Facebooktaki bu h zl buumlyuumlme ekonomi ve ticari sektoumlruumlnuumln de ilgisini ccedilekmektedir Oumlnemli bir
yat r m alan olarak giri imcileri cezbetmektedir
Facebook youmlneticilerinden Peter Thiel ise Facebookun iccedil de erinin 8 Milyar dolar
oldu unu ve proje gelirlerinin 2015 y l iccedilin 1 milyar dolar oldu unu soumlylemektedir [24]
Duumlnyaca tan nm Microsoft irketi 24 Ekim 2007 de Facebooku 16l k hissesini 240 milyon
dolara sat n alm t r Google ve di er irketler de gittikccedile de er kazanan Facebook hisselerine
youmlnelmektedir [24]
11
215 Web Guumlnluumlkler
ngilizcedeki Web
ve log kelimelerinin birle iminden olu an Blog kelimesi internet
uumlzerinden ki ilerin istedikleri konu hakk nda fikir beyan edebilecekleri kendilerini kolayca
ifade etmelerini sa layacak bir ortamd r
Bloglar genellikle en yeni yorum ve yaz lardan eski tarihli yorum ve yaz lara do ru
s ralanm web tabanl yay nlar
belirtir Bloglar n iccedileri i suumlrekli guumlncellendi i iccedilin sadece
bloglar iccedilin kurulmu oumlzel indeksleme mekanizmalar ve arama motorlar bulunmaktad r [25]
Duumlnya ccedilap nda indeksleme mekanizmalar n n en oumlnde geleni Technorati firmas
milyonlarca blog okuyucusu iccedilin her geccedilen guumln 15 milyondan fazla yeni blogu
indekslemektedir [26] Forrester in ara t rma irketlerinden internet ile ilgili ciddi bir ara t rma
kurumu olan JupiterResearch uumln 2008 A ustos unda bloglar uumlzerine gerccedilekle tirdi i
ara t rmada internet kullan c lar na 40 soruluk kapal uccedillu soru youmlneltilmi tir Bu ara t rma
sonucunda geccedilti imiz doumlrt y l iccedilerisinde bloglar n okunma oranlar nda 300 oran nda bir art
oldu u ortaya ccedil km t r Belki ilgimi ccedilekecek bir bloga ula abilirim duuml uumlncesi ile kullan c lar
okuduklar bloga eklenmi
olan di er linkleri de takip edebiliyorlar S k blog okuruyum
diyenlerin 38 i yeni bir blogu okudu u blogun linklerinden ke fetti ini belirtmi tir
Ara t rmaya kat lan blog okurlar n n 34 uuml Web te dola rken yeni bir blogla tan t n 11 i
blog arama motorlar n kulland n
belirtmi [27]
Bloglar n bu kadar yayg nla mas n n nedenlerinde biri de internet gezginler sanal
acirclemdeki tek duumlze yorumsuz hatta bazen oldukccedila bilimsel bir dille yaz lm yaz lardan
s k ld klar iccedilin bloglar tercih etmektedir Bloglarda ki iler gittikleri bir seminer hakk ndaki
yorumlar n kulland klar bir uumlruumln hakk ndaki fikirlerini k saca hayata dair kendi yorumlar n
katarak ba ka ki ilerle payla abilmektedirler
216 Wiki
Bilgiye ula mak iccedilin eskiden oldu u gibi kitap ya da ansiklopediler kullan lmamaktad r
Guumlnuumlmuumlzde kuumlreselle menin ve geli en teknolojinin etkisiyle tuumlm kaynaklara bilgisayar
uumlzerinden ula lmas elde edilen bilgilerin k sa suumlrede derlenebilmesine imkacircn vermi tir
Wiki ler kullan c lar n uumlzerinde istedi i gibi duumlzenlemeler yapmas na izin veren bilgi
sayfalar toplulu udur ngilizce What I Know is soumlzcuumlklerinin k saltmas
olan Wiki
Bildi im kadar yla anlam na gelir [28]
12
Wikilerin ccedilal ma prensibi u ekilde accedil klanabilir Bir web program script ya da script
grubu sayesinde veritaban na yaz lm olan ya da sadece dosya halindeki verileri okur bu
verileri HTML kodlar ile de i tirir ve Web taray c s na yans t r
ekil 210 Vikipedi oumlzguumlr ansiklopedi sitesinin logosu
Wiki dilini kullanan ve internetin en geni iccedileri ine sahip ccedilevrimiccedili ansiklopedisi
Vikipedi 22 Ocak 2007de Alt n Oumlruumlmcek 2006 En yi ccedilerik oumlduumlluumlnuumln sahibi oldu
Wikipediaorg taraf ndan geni kitlelere tan t lan Wiki dili pek ccedilok farkl programlama
platformunda Javascript ASP PHP C++ vb kullan labilmektedir
2161 Wiki Kullanman n Avantajlar
Web proje gruplar
projeleri olu tururken ekiplere ayr ld iccedilin programc lar kendi
goumlrevi d ndaki ccedilal malarda neler yap ld n
tam olarak bilemez ccedileri in yap land r lmas nda
geli melerden sadece iccedilerik koordinatoumlrleri haberdard r An nda yap goumlster oumlzelli iyle Wikiler
bu sorun iccedilin pratik bir ccediloumlzuumlm te kil eder
ndekslenme yapan sitelerde bile arama yap l rken defalarca ayn siteye girilebilir yahut
aran lan bilgiyi bulmak ccedilok zaman alabilir Wiki gereksiz tekrarlardan kurtar r steyen herkes
wiki iccedileri indeki bilgileri eksik ya da hatal
ise de i tirilebilir veya kald rabilir Bu i lemleri
yapan wiki youmlneticilerine wikipedist denir Wikipedistler sayfa duumlzenlemelerine ve iccedilerik
zenginle tirmeye yard mc olurlar
Wiki de de i iklik yap ld nda de i iklik yapan ki inin bir hesab yoksa IP adresiyle
varsa kullan c ad yla kaydedilerek hemen sonuccedil goumlzlenebilir Yap lan iccedileriksel herhangi bir
hata ba kalar taraf ndan fark edildi inde duumlzeltilir Geccedilmi sekmesiyle duumlzeltilen sayfalar n
oumlnceki suumlruumlmleri kronolojik s ralamayla takip edilebilir hatta sayfalar aras nda kar la t rma
bile yap labilir Sayfa iccedilerikleri hakk nda Tart ma
sekmesiyle fikir beyan nda bulunulabilinir
Tart malara yorum eklenebilir Denetleme mekanizmas sayesinde telif haklar n n ihlali gibi
durumlarda ihlali yapan kullan c lar engellenebilmektedir
13
Wiki di er ansiklopedilerden farkl olarak Vikipedi GNU Oumlzguumlr Belgeleme Lisans
(GOumlBL) kullanmaktad r Kullan c lar na oumlzguumlr iccedilerik kat l m e it tarafs z ve uumlcretsiz kat l m
hakk verir Ayr ca diluumllkekonuya goumlre geli mi kategorilendirme sistemine sahiptir Diff
oumlzelli i sayesinde sayfalar aras ndaki fark izlenebilir [29]
217 ccedilerik Youmlnetim Sistemleri
ngilizce Content Management System ya da k saca CMS olarak tan nan ccedilerik
Youmlnetim Sistemleri - YS bilgiyi olu turmak ar ivlemek ara t rmak denetlemek ve
yay nlama olana sa layan buumlyuumlk bir veritaban na sahip moduumlllerden olu an buumltuumlnle ik bir
ortamd r YS lerde iccedilerik iki ayr boumlluumlmden olu ur Bunlardan birincisi uumlzerinde i lem
yap lmam olan ham bilgiyi bar nd ran veritaban
di eri ise bu bilginin yerle imini goumlsteren
ablondur ablonda bilginin goumlsterilece i sayfan n goumlrsel boumlluumlmuumlnuuml olu turan yaz tipleri
renkleri gibi tuumlm biccedilim bilgileri saklan r Genellikle PHP benzeri dillerle kodlan r Boumlylece daha
esnek hale gelebilirler [30]
ccedilerik Youmlnetim Sistemleri uluslararas platformda birccedilok organizasyon iccedilin zorunluluk
haline gelen modern bir veri youmlnetimi tekni idir Guumlnuumlmuumlzde iccedilerik youmlnetim sistemleri kendi
iccedilerisinde boumlluumlnmuuml bir yaz l m enduumlstrisi haline gelmi tir Kendi iccedilerisinde portal sistemleri
Wiki sistemleri web-based grupware vb alt dallara ayr lan enduumlstri guumlnuumlmuumlzde halen
geli imini suumlrduumlrmektedir [31]
Web yay nlama sistemi kullan c lar arad klar iccedileri e goumlre veritaban iccedilinde anahtar
kelimeler yazar olu turulma tarihi gibi ccedile itli oumllccediluumltlere goumlre arama yapabilirler Web iccedilerik
youmlnetim sistemleri bilgi portallar olu turmak iccedilin bilgi youmlnetimi hizmeti sunar YS buumlnyesinde
bar nd rd
yaz l m moduumllleri sayesinde herhangi bir kullan c n n web sitesi uumlzerindeki
i lemleri yapabilmesi iccedilin grafiksel kullan c arayuumlzuuml sunar
YSnin temeli iccedileri in olu turulmas ndan son hali olan yay nlanma evresine kadar tuumlm
evrelerde iccedileri i youmlnetme esas na dayan r Ayr ca YS nin iccedileri i E-ticaret ve Muuml teri li kileri
Youmlnetim Sistemleri (MIYS) (ing CRM - Customer Relationship Management System) ile de
payla labilir YS sayesinde iccedilerik yay n
teknik bilgisi olmayan kullan c lar taraf ndan bile
yap labilir Kullan c lar na sade basit ama guumlccedilluuml web taray c s destekli bir uygulama arayuumlzuuml
sunar [32]
14
218 Etiketleme (Folksonomi)
Web 20 sitelerinde goumlze ccedilarpan etiket bulutlar ile kullan c lara ilgilendikleri konulara
ili kin kolay ve h zl ba lant lar sa lanmaktad r Site iccedileri iyle ilgili konular ccedile itli etiketler ad
alt nda s n fland r l r Her etiket iccedilinde bar nd rd makale yaz ba l k ile farkl boyutlarda
olabilmektedir Yani etiketin yaz boyutu ne kadar buumlyuumlkse iccedilinde bar nd rd iccedilerik o kadar
fazlad r ekil 211 de bir etiket bulutu goumlruumllmektedir
ekil 211 Oumlrnek etiket bulutu
22 Web 20 da Site Tasar m nda Dikkat Ccedileken Oumlzellikler
Yukar daki popuumller uygulamalar olu turulurken dikkat ccedileken ortak oumlzellikler bu ba l k
alt nda incelenecektir Genel olarak Web sitelerindeki de i im ve geli im tasar m ve arayuumlz
accedil s ndan de erlendirilecektir
221 Logolar
Logolara daha parlak bir goumlruumlntuuml verilirken yans ma efekti bolca kullan lmaktad r
Yans ma efekti dinamik olmayan tuumlm objelere kullan larak siteye derinlik hareket ve modern
bir goumlruumlnuuml kazand r l r Kullan c lar n dikkatini ccedilekmek iccedilin ekil 212 de goumlruumllduuml uuml gibi
logolara rozet eklinde yenilik bildiren kelimeler eklenebilmektedir [33] Bu yenilik bildiren
kelimelerden Beta ifadesiyle s k s k kar la l r Bunun nedeni Web 20 ak m na goumlre
kullan c lar birer yard mc -geli tiriciler olarak benimsenir Sonuccedil olarak ortaya ccedil kan site suumlrekli
geli mekte ve de i mektedir Logolara yerle en Beta bu geli imin bir simgesi haline gelmi tir
[34]
15
ekil 212 Yans mal logo oumlrne i [34]
222 Butonlar
Butonlarda ise klasik butonlar yerine resim olarak haz rlanan butonlarda oumlzellikle cam
efekti ve renk geccedili (gradient) efekti hacirckimdir Gradient efekti butonlarda logolarda ya da arka
planlardaki renk geccedili lerini daha yumu at r Bir renkten farkl bir renge keskin geccedili lerin oumlnuumlne
geccedililmi olur [33] Ccedile itli buton oumlrnekleri ekil 213 de goumlruumllmektedir
ekil 213 Web 20 da buton oumlrnekleri
223 Arka Planlar
Web 20 ile sitelerde arka planlar olu turulurken yatay eritlerden ya da duumlz renk
geccedili lerinden faydalan labilinir Her iki ekilde de hedeflenen ortak amaccedil ekil 214 te oldu u
gibi goumlzuuml yormayan tasar mlar gerccedilekle tirmektir [33]
ekil 214 Web 20 da arka plan oumlrnekleri
16
224 Ccedilerccedileveler
Site iccedilinde goumlruumlnmez iframe ler yerine ekil 215 deki gibi ccedilerccedilevelerin yuvarlak kouml eli
kutular olarak tasarlanmas
oumln plana ccedil km t r Kouml eleri keskin duumlz kare veya dikdoumlrtgen
biccedilimde kutular art k kullan lmamaktad r Yuvarlak kouml eli kutu yap m iccedilin farkl tekniklerle
olu turulabilecek programlar mevcuttur Resim css ve html teknikleri kullan lacaksa Spiffy
Corners RoundedCornr ve CSS Rounded Box Generator gibi araccedillar kullan labilirken Nifty
Corners Cube ve curvyCorners gibi araccedillar da JavaScript tekni i ile kullan labilinir [33]
ekil 215 Web 20 da ccedilerccedileve yap s na oumlrnek
225 Menuumller
Site iccedileri inden etkin bir ekilde faydalanabilmek iccedilin menuuml ve sekmeler sade kolay
anla labilir olmal d r Hem goumlrsel hem kullan l menuumller CSS kodlarla olu turulabilir [33]
ekil 216 Web 20 da menuuml oumlrne i
Yukar da bahsedilen konu Web 20 platformunda olu turulan sitelerin genel oumlzellikleri
olarak alg lanabilir Bu oumlzellikler d nda da tasar mlar olabilmektedir
17
3 AJAX
AJAX kavram n n ilk ccedil k noktas
ubat 2005 de Jesse James Garrett taraf ndan the
Adaptive Path Web sitesinde Ajax A New Approach to Web Applications ba l yla
yay nlanan makaledir [35]
ekil 31 Jesse James Garrett in makale goumlruumlntuumlsuuml [36]
Bu makalede Web uygulamalar olu turulurken tasar mlardaki buumlyuumlleyici geli meler
yenilikccedili ccedilevrimiccedili projelerle desteklenirken bunun yan nda h zl cevap verebilir daha zengin
goumlrsellere sahip masauumlstuuml uygulamalar aras ndaki bo lu a dikkat ccedilekilmi tir Bu bo lu u
dolduran Google Suggest ve Google Maps uygulamalar Adaptive Path sitesinde AJAX olarak
adland r lan Web uygulamalar na yeni yakla m n en iyi oumlrnekleri oldu u belirtilmi tir Klasik
Web uygulamalar n n ccedilal ma modeliyle AJAX l uygulamalar n ccedilal ma modeli
kar la t r lm t r AJAX di er uygulama youmlntemlerinden ay ran oumlzellikleri belirtilmi tir
AJAX yakla m na buumlyuumlk yat r mlar yapan Google n neden AJAX tercih etti i accedil klanm t r
Google Groups Google Suggest Gmail Google Maps ve ard ndan Flickr Amazon nun
A9com servisleriyle kullan c lar n oda haline geldi ine de inilmi tir [35]
AJAX n ccedilekirde i olan XMLHttpRequest (XHR) nesnesi sayesinde de iyi haz rlanm
sa lam ve kolay anla labilir-kullan labilir sitelerin olu umuna dikkat ccedilekilmi tir [35] A a da
18
ise AJAX tekni i kullanan en populer servislerden Google Suggest ve Google Maps hakk nda
k sa bilgi verilecektir
31 Google Suggest
ekil 32 Google Suggest ekran goumlruumlntuumlsuuml
Google Suggest a httpwwwgooglecomigcomplete=1amphl=en
adresine girildi inde
ekil 32 de goumlruumlnen ana sayfaya ula lmaktad r Google Suggest servisinin oumlzelli i arama
motorunda aranacak kelimenin harfleri girilmeye ba land andan itibaren filtreleme yaparak
text alan n n alt na accedil lan boumllmede oumlneriler sunulmaktad r Sadece oumlneri sunmakla da kalmay p
oumlnerileri popuumllarite s ras na goumlre s ralar Kelime tamamlama oumlzelli i sayesinde aranan kelime
tam yaz lmadan gelen oumlnerilerden biri t klanarak istenen sonuca ula labilinir Ayr ca oumlnerilerin
yan nda o kelimeye ait kaccedil sonuccedil oldu u da belirtilir ve bu i lem sadece 1-2 sn iccedilinde
gerccedilekle ir
32 Google Maps
ekil 33 Google Maps ekran goumlruumlntuumlsuuml
19
Google Maps sitesine httpmapsgooglecom
adresinden ula labilinir Google n
etkile imli harita servisi ile arama motorunda goumlruumlntuumllenmek istenen konum yaz larak
Haritalarda Ara butonu ile o konuma odaklan l r Bir yerden bir yere gitmek iccedilin Yol
Tariflerini Al butonu kullan l r Konumun iste e goumlre uydu arazi ve sokak haritas
goumlruumlnuumlmlerine ula labilinir Daha fazla seccedilene i ile resim video ve wikipedia katmanlar da
goumlruumlntuumlye eklenir Hatta yurtd ndaki ba lant larda yoldaki trafik ak n n h z hakk nda bile
bilgi katman mevcuttur
Di er harita web uygulamalar ndan farkl olarak Google Maps te harita uumlzerinde ccedile itli
youmlnlere ula mak iccedilin suumlrekle b rak youmlntemi kullan l r Harita bir imaj serisi halinde ayr larak
boumlluumlnuumlr Biti ik imajlar n birlikte goumlruumlntuumlsuumlnuumln olu turulabilmesi iccedilin bu serilerden faydalan l r
Goumlruumlntuumllenen haritada kullan lan imaj say s s n rl d r Bu da her seferinde yeni imajlar n
olu turulmas gerekti ini goumlsterir Kullan c n n harita uumlzerindeki h zl hareketleri haf za
problemlerine yol accedilabilir Bunun yerine ayn imajlar haritan n farkl segmentlerinde tekrar
tekrar goumlruumlntuumllenir [37]
stemci-sunucu ileti imi gizli bir IFRAME uumlzerinden yap l r Bir arama yap ld nda
veya yeni bir yol soruldu unda bu bilgiler goumlnderilir ve IFRAME iccedilinde doumlnduumlruumlluumlr Veri XML
format nda ccedilevrilir ve bir Javascript fonksiyonunda (AJAX Motorunda) kullan lmak iccedilin
aktar l r Bu XML verisi sonra farkl ccedile itli ekillerde kullan l r Bazen hatas z harita imajlar n n
ccedila r lmas nda bazen de XML dokuumlmanlar n n XSLT (Extensible Stylesheet Language
Transformations Geni letilebilir Biccedilimlendirme Dili Doumlnuuml uumlmleri) sayesinde HTML kodlar na
doumlnuuml tuumlruumllerek ana pencerede goumlruumlntuumllenmesinde kullan l r [37]
Bunlar n d ndaki daha birccedilok accedil k kaynak projeler ve ticari uumlruumlnler bu yeni Web
uygulama modelinin avantajlar ndan faydalanarak geli tirilmeye ba lanm t r [37]
33 Neden AJAX
AJAX terimi oldukccedila guumlccedilluuml bir kelimedir Guumlcuumlnuuml daha zengin geni enduumlstri trendlerinin
olu umunda kullan labilmesinden ve oumlzguumlr Web uygulamalar n n kurulumunda odak noktas
olmas ndan al r Ayr ca programc lar yabanc olduklar yeni programlama dilleri ouml renmelerine
gerek kalmadan geli tirdikleri Web uygulamalar na istedikleri etkiyi katabilmektedirler Bunu
yaparken de sunucu tarafl teknolojileri kullan rken var olan yat r mlar n n d nda ba ka
masraflar olmaz AJAX guumlccedilluuml bir teknik olmas n n yan s ra di er teknolojilerle birlikte
kullan ld nda daha etkili sonuccedillar al nabilmektedir [38] AJAX Java 2 Enterprise Edition
(JAVA EE) Net PHP Flex CGI scriptler ve di er birccedilok uygulama geli tirme ortam nda
ccedilal abilir
20
AJAX uygulamalar n n gittikccedile yayg nla mas n n bir nedeni de geleneksel uygulamalara
goumlre istekcevap modelleri aras ndaki farkt r ekil 34 te goumlsterildi i uumlzere geleneksel Web
uygulamalar nda sunucuya yap lan her istekte olu turulan cevap Web sayfas n n tuumlmuumlnuuml
etkileyerek yeniden yuumlklenmesine neden olmaktad r
ekil 34 Geleneksel sunucularda istekcevap modeli [39]
AJAX n asenkron metodolojisiyle klasik Web mimarilerindeki gibi sunucuya gidip
parametreleri i lemek yerine ekil 35 te goumlruumllduuml uuml uumlzere birccedilok sunucu iste i tuumlm sayfan n
yenilenmesine ihtiyaccedil duymadan cevaplanabilmektedir
ekil 35 AJAX n asenkron istekcevap modeli [39]
Yukar da anlat lan durum kullan c lar ekil 36 da goumlruumllen t kla-bekle doumlnguumlsuumlnden
kurtar r AJAX kullan c lara ekil 37 deki gibi kesintisiz gezinti (soumlrf) imkacircn sunar
21
ekil 36 Klasik Web uygulamalar nda t kla-bekle doumlnguumlsuuml [40]
ekil 37 T kla-T kla interaktif AJAX uygulamas
[40]
stek i lem basamaklar ekil 38 te goumlsterildi i gibi AJAX motoru sayesinde JavaScript
kod betikleri kullan larak sunucuya HTTP tabanl ba lant sa lan r Bu ba lant
XMLHttpRequest protokoluumlnuuml kullanarak mesaj transferi yap lmas n sa lar Bu sayede hem h z
artar hem de bant geni li i verimli bir ekilde kullan lm olur
ekil 38 Geleneksel Web ileti im modeli ile AJAX ileti im modeli [37]
AJAX sunucuya kullan c n n Web taray c s uumlzerinden Javascript ortam nda ikinci bir
ileti im yoludur AJAX n kullan m normal Web uygulamalar nda goumlruumllen tipik sayfa ak nda
de i ikliklere neden olur AJAX ile istekler daha s k ve daha kuumlccediluumlk cevaplar halinde HTML
olmayan veri formunda cevaplan r Daha iyi anlayabilmek iccedilin normal bir Web uygulamas n n
ileti im ak ekil 39 da goumlruumllmektedir [41]
22
ekil 39 Web uygulamas ndaki cevap ak
Bir AJAX Web uygulamas bir Web uygulamas n n normal ileti im ak n al r ve yeni
bir istek tipi ekler Bu durum sunucuya normal sayfa iste i gibi goumlruumlnuumlr ama Web taray c iccedilin
farkl formatta bir giri i vard r Kullan c taraf ndan do rudan tetiklenmeyen ve sayfan n
tamam n n yeniden yuumlklenmesini gerektirmeyen bir istektir Ccedilo u durumda bu AJAX istekleri
baz verilerin oumln yuumlklenmesi ya da bir formdaki baz alanlar n do rulama istekleri gibi kuumlccediluumlk
de i iklikler olabilir Bazen de JavaScript ile bir form goumlnderimi veya HTML sayfalar n n bir
parccedilas uumlzerindeki iccedileri i de i tirmek iccedilin kullan l r Oumlrnek bir AJAX ileti im ak ekil
310 da goumlruumllmektedir AJAX uygulamalar ndaki istek biti zamanlar ve bunun normal Web
uygulamalar yla kar la t rmas ekil 311 de goumlruumllebilir Boumlylece ikisinin aras ndaki istek
frekanslar n n fark na var labilinir [41]
ekil 310 AJAX uygulamalar ndaki istek ak
23
ekil 311 Normal Web ile AJAX uygulamalar n n kar la t rmas
AJAX Web uygulamalar yla frekanstaki bu de i im hostlar iccedilin buumlyuumlk etki yapabilir
Boumlylece sunucular ayn kullan c say s yla yuumlksek h zlarda veri al -veri ini yapabilecek duruma
gelir Bu oumlzellikle daha fazla i lem gerektiren normal sayfa yuumlklemelerinde oldukccedila zor bir
i lemdi [41]
34 AJAX Metodolojisi
World Wide Web istemci-sunucu a mimarisine uygun ccedilal r [42] A aktiviteleri iki
tiptir Bunlardan birincisi kullan c taraf ndan tetiklenen HyperText Transfer Protocol (HTTP)
istekler (URL yazarak ya da bir link t klanarak olu turulur) di eri ise sunucu cevaplar d r
HTTP protokoluuml soru ve cevaplar serisinden olu an bir ileti im yoludur [41]
ekil 312 Geleneksel istekcevap (requestresponse) youmlntemi [39]
24
Web taray c dan bir istekte bulunuldu unda HTTP kullan larak cevap goumlnderilir Web
taray c bir istemci internet sayfas n n sunucusu ise HTTP sunucudur AJAX sunucu
cevaplar n HTTP kullanarak goumlnderir Sunucu taraf ndan geri doumlnduumlruumllen farkl tuumlrlerdeki
HTTP istek ve cevaplar n n tan nmas oumlnemlidir AJAX uygulamalar n sunucudan gelecek olan
HTTP cevaplar n iccedileri inin ne oldu u hakk nda karar verebilmesi iccedilin sunucunu
sorgulanmas nda HTTPRequest nesnesine ihtiyaccedil duyar [42]
341 HTTP Requests Nesnesi
HTTP request nesnesinin kullan m format a a daki ekildedir
ltrequest-linegt
ltheadersgt
ltblank linegt
[ltrequest-bodygt]
HTTP request nesnesinin ilk sat r genellikle iste in tipini belirten uumlccedil boumlluumlmden olu ur
Youmlntemin ad gerekli olan sunucu kayna n n yolu HTTP suumlruumlmuumlduumlr Birinci istek sat r (accedil l
sat r ) olmal d r kinci boumlluumlm sunucunun kullanabilece i ba l k sat r eklenebilen bilgilerin
goumlsterildi i boumlluumlmduumlr Son boumlluumlm olan bo sat r ise iste e ba l olarak BODY boumlluumlmuumlnden
ccedila r labilecek ek verilerin takip edilebilece i sat rd r
HTTP iccedilinde ccedile itli istek tuumlrlerinin tan mlanabilece i ccedilok say da youmlntem vard r Fakat
AJAX sadece GET ve POST youmlntemleriyle ilgilenir
3411 GET Youmlntemi
HTTP GET youmlntemi ccedila r lmak istenen URL adresi ard na eklenen anahtar-de er
ccediliftleri (key-value pair) ile ccedilal r Bir Web taray c dan talep edilen bir URL ccedila r s sunucuya
GET youmlnetemi ile bir istek goumlnderir Basitccedile sunucu kayna getirir ve taray c ya cevab
goumlnderir A a da Get youmlnetemi kullan larak F rat uumlniversitesinin Web sitesine yap lan bir ccedila r
sat r goumlsterilmektedir
GET HTTP11 ltrequest-linegt
Host wwwfiratedutr
User-Agent Mozilla50 (Windows U Windows NT 51 en-US rv176) ltheadersgt
Connection Keep-Alive
25
Oumlrnek kod parccedilas nda da goumlruumllduuml uuml uumlzere ilk sat r GET istek sat r d r Di er boumlluumlm ise
istek hakk nda bilgi goumlnderilen ba l k (header) k sm d r Bu boumlluumlme bir parametre ve her sat r
ba na bir de er ccedilifti gelebilir Host ba l iste in hedef sunucu adresini iccedilerir User-Agent
ba l eri ilebilir her iki sunucu ve istemci tarafl scriptler ve taray c lar n temel ta d r Bu
bilgi ile her istekte otomatik olarak goumlnderilir ve kullan lan taray c tan mlan r Connection
ba l ise taray c i lemleri iccedilin kullan lan tipik ba lant ayarlar nda kullan l r
3412 POST Youmlntemi
POST iste i ise sunucuya request body iccedilinde ek bilgi sa lar Genellikle ccedilevrimiccedili
formlarda doldurulmayan sat r bilgileri POST youmlntemi ile sunucuya bildirilir POST istekleri
a a daki yap dad r
POST HTTP11
Host wwwfiratedutr
User-Agent Mozilla50 (Windows U Windows NT 51 en-US rv176)
Content-Type applicationx-www-form-urlencoded
Content-Length 40
Connection Keep-Alive
Yukar daki kod parccedilas nda gri ile vurgulanan sat rlar GET youmlnteminden farkl olan
sat rlar goumlstermektedir lk sat rda kullan lan youmlntemin ad belirtilmi tir Content-Type sat r
request-body nin nas l kodland n goumlsterir Content-Length sat r nda request-body nin kaccedil
byte uzunlu unda oldu u goumlsterilir [37]
342 HTTP Request Nesnesinin Oumlzellikleri ve Youmlntemleri
Request nesnesi be tane temel fonksiyon bulundurmaktad r [43] Bunlar
Querystring URL iccedilersinde bulunan dosya ismi ile birlikte goumlnderilen bilginin veya
form iccedilerisinden GET
youmlntemi ile goumlnderilen bilgilerin al nmas nda kullan l r
Form POST
youmlntemi genellikle form iccedilerisinden bilgi al nmas iccedilin kullan l r
Servervariables Web sunucu request ile ilgili bilgilere (Http ServerVariables)
ula may sa layan bir youmlntemidir
Cookies(Ccedilerezler) Kullan c n n taray c s sunucudan gelen ccedilerezleri kabul ediyor ise
bu bilgilere ula lmas n sa lar
26
ClientCertificate Dijital bir sertifikad r Sunucu ve istemcinin birbirini tan mlamas
iccedilin kullan l r
343 HTTP Response Nesnesi
HTTP response nesnesi HTTP request nesnesine benzer ekilde goumlsterilir
ltstatus-linegt
ltheadersgt
ltblank linegt
[ltresponse-bodygt]
HTTP request nesnesinden tek fark ilk sat rda istek bilgisinin yerine iccedileri in durum
bilgisi vard r Durum sat r istek kayna
hakk nda temin edilen bir durum kodunu bildirir
A a da basit bir HTTP response kod parccedilas
goumlsterilmektedir
HTTP11 200 OK
Date Sat 31 March 2009 165959 GMT
Content-Type texthtmlcharset=ISO-8859-1
Content-Length 122
lthtmlgt
ltheadgt
lttitlegtFirat Universitesilttitlegt
ltheadgt
ltbodygt
lt-- body buraya gelir --gt
ltbodygt
lthtmlgt
Bu oumlrnekte durum sat r nda 200 eklinde bir HTTP durum kodu ve Tamam (OK)
diye bir mesaj verilmektedir Durum sat r her zaman durum kodu ve her hangi bir kar kl
oumlnlemek iccedilin k sa bir mesaj iccedilerir A a da en yayg n kullan lan durum kodlar verilmektedir
200 (OK) Sunucu ba ar l istekler iccedilin bu kodu kullan r
304 (NOT MODIFIED) Sunucu goumlnderilen istekle ilgili verilerin daha i lenmedi ini
istemciye bildirmek iccedilin bu kod kullan l r Taray c lar n oumln bellek mekanizmalar iccedilin en s k
kullan lan koddur
27
401 (UNAUTHORIZED) stemcinin kaynak eri im yetkisi yoktur
anlam nda
kullan l r Genellikle bu taray c n n sunucudan kullan c ad ve ifre gibi bilgi giri i istemesiyle
olu an hatalarda meydana gelir
403 (FORBIDDEN) Yetki elde etmek iccedilin istemci ba ar s z oldu
hata kodudur 401
hatas ndan sonra e er do ru bir kullan c ad ve ifre ile oturum accedil lmamas halinde genelde bu
hata kodu olu ur
404 (NOT FOUND) Kaynak belirtilen yerde bulunamad nda bu hata kodu uumlretilir
Kod parccedilas n n ikinci sat r nda uumlretilen cevab n tarihi ve saati Date ba l nda
sunucuya goumlnderilir Content-Type ve Content-Length ba l klar POST youmlnteminde oldu u gibi
kullan l r BODY cevab basitccedile istemci kayna (iccedilerik duumlz metin ikili veri ya da farkl
tuumlrden
bilgiler olabilir) HTML kayna n iccedilerir [42]
35 AJAX leti im Teknikleri
Web uygulamalar nda ccedilo unlukla kullan c istekleri bir form uumlzerinden yap l r ve
sunucu cevab h zl bir ekilde Java ya da Php gibi bir programlama dili ile olu turulur Normal
Web uygulama modelinde kullan c daima istek uumlretir boumlylece kullan c lar n h zl ca
t klamalar yla olu an yuumlksek h zlardaki sayfa istekleri genellikle rastgele aral klarla olu ur ve
her bir istek h z n n cevab duuml uumlktuumlr [41]
AJAX uygulamalar nda yukarda bahsedilen eksikli in oumlnuumlne geccedilebilmek iccedilin ccedile itli
ileti im teknikleri geli tirilmi tir Bu teknikler
Gizli Ccedilerccedileve (Hidden Frame) Tekni i stemci-sunucu ileti iminde kullan lan gizli
ccedilerccedileve yap s yuumlksekli i ve geni li i 0 pikselden olu an ekranda goumlruumlnmeyen bir
frameset yap s na dayan r
XMLHttp Requests (XHR) AJAX teknolojisinin temel nesnesidir A a daki ba l kta
ayr nt l bir biccedilimde incelenecektir
351 XMLHttp Requests (XHR) Nesnesi
AJAX la do rudan ilgili teknolojilerin ccedilo u asenkron ve XML tekni i ile yak ndan
ilgilidir Ccediluumlnkuuml veri kodlama yollar ve ileti im katmanlar n n tedarik edilmesi bu teknikler ve
kuumltuumlphaneler uumlzerinden hareket eder Ccedilo u durumda bu XMLHttpRequest nesnesi kullan l r
ancak IFrame lerde popuumllerdir Ccedilerezler veya ActiveX Java goumlmuumlluuml ba ka bir alternatif de
kullan labilir [41]
28
XHR Nesnesi Internet Explorer 50 (IE 5) iccedilindeki ActiveX control ile ortaya ccedil km t r
XHR Javascript ile olu turulur [44] Sayfalar n tamamen yeniden yuumlklenmeden sa lanan parccedilal
guumlncelleme oumlzelli i bu nesne sayesinde olmaktad r Arka planda ccedilal an bu sistem sayesinde
asenkron bir ileti im gerccedilekle ir Yenilenme s ras nda taray c yla ba lant kesilmeksizin yeni bir
istek yap labilir
World Wide Web Consortium (W3C) standart organizasyonu standartla amam
XMLHttpRequest nesnenin tuumlm taray c larda kullan labilen youmlntem ve oumlzelliklerinin genel bir
alt kuumlmesini olu turma ccedilal malar suumlrmektedir u anda kullan lan kural kuumlmesi W3C DOM
Level 3 yuumlkleme ve kaydetme oumlzellikleri iccedilerir kinci ccedilal ma tasla
wwww3orgTRXMLHttpRequest adresinde bulunabilir Henuumlz bir standart haline
gelememesinin nedeni taray c dan taray c ya goumlre farkl davran lar goumlstermesidir
Ccedilal ma tasla na goumlre XHR nesnesinin iki goumlrevi vard r Birincisi HTTP yolu ile
sunucuya programlanabilir ba lant kuran betiklerin ccedilal mas na izin verir kinci ifade ekli ise
normal HTTP istekcevap doumlnguumlsuumlnuumln d nda sunucuyla ileti ime izin verir
XMLHttpRequest Microsoft taray c ccedile itlerinde Mozilla Firefox Konqueror Opera
ve Safari gibi neredeyse tuumlm modern taray c lar taraf ndan desteklenmektedir [42]
3511 XMLHttpRequest Nesnesi Olu turma
Nesneler olu turulurken farkl taray c lar iccedilin farkl kurallar vard r Oumlrne in Microsoft
Internet Explorer XMLHttpRequest nesnesini bir ActiveX nesnesi olarak Safari Mozilla
Firefox ve Opera ise sadece normal bir JavaScript nesnesi olarak yorumlar
Windows un guumlncelleme sisteminin temelini olu turan ActiveX Web sayfalar ndaki
aktif nesneleri etkinle tiren oumlzel bir Microsoft teknolojisidir ActiveX i mevcut Web taray c lar
aras nda u anda sadece Microsoft Internet Explorer desteklemektedir Microsoft IE nin di er
suumlruumlmleri iccedilin MSXML geli tirerek daha aktif ve kararl bir yap olu turulmu tur IE nin farkl
suumlruumlmleri iccedilin a a daki bile enler kullan l r [45]
MicrosoftXMLHttp
MSXML2XMLHttp
MSXML2XMLHttp30
MSXML2XMLHttp40
MSXML2XMLHttp50
29
IE 60+ taray c lar iccedilin a a daki tan mlama yap l r
var nesne = new ActiveXObject(Msxml2XMLHTTP)
IE 55 suumlruumlmleri iccedilin ise a a daki tan mlama yap l r
var nesne = new ActiveXObject(MicrosoftXMLHTTP)
Mozilla Firefox Opera Safari gibi taray c lar iccedilin ise a a daki tan mlama yap l r
var nesne = new XMLHttpRequest ()
Ayn anda birden fazla internet taray c s (ie firefox opera vb) ile uyumlu Web
uygulamalar iccedilin ccedilapraz taray c deste i ifadesi kullan lmaktad r Ccedilapraz taray c deste i bir
arayuumlz kodlamas nda kodlay c lar n en ccedilok zaman harcad konudur Guumlnuumlmuumlzde ccedilapraz
taray c deste i bir zorunluluk haline gelmi tir [46] AJAX uygulamalar n n sorunsuz tuumlm
taray c larla uyumlu bir ekilde ccedilal abilmesi iccedilin JavaScript iccedilerisinde try-catch bloklar
yazarak taray c ya goumlre yeni bir nesne olu turulur
function NesneOlustur()
var nesne
try
nesne = new ActiveXObject(Msxml2XMLHTTP) IE 60+ taray c lar iccedilin
catch(e)
try
nesne = new ActiveXObject(MicrosoftXMLHTTP) IE 55 taray c lar iccedilin
catch(e)
try
nesne = new XMLHttpRequest () Firefox Opera 80+ ve Safari taray c lar iccedilin
30
catch(e)
alert( Maalesef taray c n z AJAX desteklemiyor)
return null
return nesne
Yukar da tan mlanan fonksiyon sayesinde dinamik ve ccedilapraz taray c deste ine sahip bir
XHR nesnesi olu turulmu tur
3512 XHR Nesnesinin Oumlzellik ve Youmlntemleri
XMLHttpRequest nesnesine eklenebilen oumlzellikler Tablo 31 de goumlsterilmektedir [42]
Tablo 31 Standart XHR nesnesinin oumlzellikleri
Oumlzellikler Tan mlar
onreadystatechange
Nesnenin readyState oumlzelli i de i ti inde hangi olay tutucunun (event
handler) ccedila r laca n belirler
readyState ste in durumunu raporlayan tamsay de eridir
0 = uninitialized ( stek haz rlanmad Henuumlz open youmlntemi kullan lmad )
1 = loading ( stek haz rland goumlnderiliyor)
2 = loaded ( stek goumlnderildi)
3 = interactive ( stek de erlendiriliyor ve sonuccedil bekleniyor)
4 = completed ( stek tamamland ve sonuccedil geldi)
responseText Form iccedilindeki metin dizesi sunucu taraf ndan veriye doumlnuuml tuumlruumlluumlr
responseXML Sunucu taraf ndan bir belge nesnesi gibi ifade edilen veri geri doumlnduumlruumlluumlr
Status Sunucu taraf ndan geri doumlnduumlruumllen HTTP durum kodudur Oumlrne in 404
kodu Not Found yani istenilen sayfa bulunamad anlam na gelir 200 ise
OK de eri goumlnderir ve i lemin tamamland n belirtir
31
statusText Status oumlzelli inin metin kar l n verir
XMLHttpRequest nesnesinin fonksiyonunu artt ran ek youmlntemler Tablo 32 de
goumlsterilmektedir Bu youmlntemler sayesinde sunucuyla asenkron ileti im kurulur
Tablo 32 Standart XHR nesnesinin fonksiyonlar
[42]
Youmlntemler Tan mlar
abort() Geccedilerli iste i iptal eder
getAllResponseHeaders()
Gelen cevab n ba l k bilgilerini string olarak getirir
getresponseHeader(x) x gibi bir parametre olarak verilen ba l k bilgisini getirir
setRequestHeader(xy) stekle goumlnderilen ba l k bilgisine istenilen etiketi ya da de eri atar
Tablodaki youmlntemler d nda open ve send youmlntemleri de s kccedila kullan lmaktad r
Open youmlnteminin parametreleri a a da goumlsterilmektedir
nesneopen( POST | GET URL asynch username password)
1 Parametre Web sayfas na yap lacak iste in hangi youmlntemle yap laca n belirtir
2 Parametre stek yap lacak Web sayfas n n URL adresi E er GET youmlntemi
kullan l yorsa querystring lerin de erleri URL e birle tirilerek belirtilmelidir
3 Parametre True de eriyle yap lacak iste in e zamans z olaca false de eri ile
e zamanl
olaca belirlenir E er false de eri verilirse i lem bitene kadar taray c di er
kullan c isteklerine cevap veremeyecektir True yap l rsa istek ayr bir i lem olarak ele
al nacakt r
4 ve 5 Parametre Opsiyonel parametreler olup e er istek yap lan Web sayfas ifre ve
kullan c ad istiyorsa bu ekilde goumlnderilebilir [47]
Open ile haz rlanan istek sunucuya goumlnderilir E er open ile accedil lan istek post metodunu
kullan yorsa send metodu parametre olarak goumlnderilecek veriyi ta yabilir
Send metodu parametresiz veya null parametresi ile de kullan labilinir Send metodunda
cevab n gelip gelmedi inin anla labilmesi iccedilin yani e zamanl haberle menin hangi safhada
oldu unun belirlenebilmesi iccedilin Tablo 31 deki oumlzellikler eklenir Send metodunun kullan m
ekli a a da verilmi tir [42 47 48 49]
nesnesend() veya nesnesend(null)
32
3513 XHR Ccedilal ma Mant
ekil 313 bir AJAX uygulamas nda standart etkile imli bir paradigmay
goumlsterir [49]
lem ad mlar a a da s ralanmaktad r
ekil 313 Standart AJAX etkile imi [49]
1 stemci tarafl bir olay AJAX olay (event) tetikler stemcinin a a daki gibi her
hangi bir hareketi onchange olay n ba lat r
ltinput type=text d=eposta name=eposta onblur=validateEposta()gt
2 Oumlrnek bir XHR nesnesi olu turmak iccedilin open() youmlntemi kullan l r ve ccedila r lar iccedilin
ayarlan r URL ayarlar iste e goumlre kullan lacak HTTP youmlntemlerinden GET ya da
POST a goumlre belirlenir A a daki kod oumlrne inde oldu u gibi istek send() youmlntemi
ile bir ccedila r y tetikler
var xmlHttp
function validateEposta()
var eposta= documentgetElementById(eposta)
var url = validateeposta= + escape(epostavalue)
if (windowActiveXObject)
xmlHttp = new ActiveXObject(MicrosoftXMLHTTP)
else if (windowXMLHttpRequest)
xmlHttp = new XMLHttpRequest()
xmlHttpopen(GET url)
xmlHttponreadystatechange = gericagir
33
xmlHttpsend(null)
3 Sunucuya bir istek yap l r Bu bir servlet CGI script PHP ya da ASPNET ile
yaz lm herhangi bir sunucu tarafl (server-side) script olabilir
4 Sunucu herhangi bir veri ambar na eri ebilir
5 stek taray c ya geri doumlnduumlruumlluumlr XHR nesnesi Content-Type ayar textxml dir
XHR nesnesi sadece texthtml tipindeki sonuccedillar i leyebilir Daha karma k
oumlrneklerde cevap JavaScript DOM manipuumllasyon ya da ba ka benzer teknolojiler
iccedilerebilir
responsesetHeader(Cache-Control no-cache)
responsesetHeader(Pragma no-cache)
Taray c lokal sonuccedillar oumln belle inde depolamaz Bunun iccedilin yukar daki kod sat rlar na
ihtiyaccedil duyar
6 Bu oumlrnekte i lemler geri doumlnduumlruumllduuml uumlnde gericagir() ad ndaki XHR fonksiyonu
ayarlan r Bu fonksiyon sunucudan goumlnderilen durum kodlar na bakar ve XHR
nesnesinin readyState oumlzelli ini kontrol eder gericagir() fonksiyonu beklendi i gibi
i lenmi se a a daki gibi bir kod parccedilas goumlruumlluumlr
function gericagir()
if (xmlHttpreadyState == 4)
if (xmlHttpstatus == 200)
stek Ba ar l
Yukar daki anlat mla XHR nesnesinin ccedilal ma mant na de inilmi tir Genellikle
kullan lan standart ccedila r lar oumlrneklenmi tir Bu ccedila r lar yap l rken bir kuumltuumlphaneden yap lan bir
uygulamadan da faydalan labilir Yeni bir ccedilal ma alan olmas na ra men accedil k kaynak
topluluklar nda hat r say l r etkinlikler yap lmaktad r [49]
Uygulamalar olu turulurken genellikle ccedile itli frameworkler ve toolkitlerden faydalan l r
Bunlardan baz lar sadece istemci tarafl ccedilal r baz lar ise sunucu uumlzerinde ccedilal maya ihtiyaccedil
duyar
34
Bu frameworkler suumlrekli de i en ve geli en bir ortam oldu u iccedilin yeni kuumltuumlphaneler ve
suumlruumlmleri takip edilmelidir En yayg n kullan lan kuumltuumlphanelerin ba nda Prototype
scriptaculous Dojo Toolkit Direct Web Remoting (DWR) Taconite ve Rico gelmektedir [49]
36 AJAX Olu turan Bile enler
Asynchronous JavaScript and XML kelimelerinin ba harflerinden olu an AJAX
kavram kullan l zengin Web uygulamalar geli tirebilmek iccedilin pratik bir araccedilt r [50]
AJAX n A parccedilas veri ileti im tekni ini JA parccedilas ileti im youmlntemini X
parccedilas tekni in veri kodlama k sm n olu turur AJAX tam manas yla anlayabilmek iccedilin onu
olu turan bile enlerin her birini de anlamak gerekmektedir [41]
361 E zamanl Olmayan leti im
AJAX tekni inin ccedilekirde ini olu turan XMLHttpRequest nesnesi hem e zamanl hem
de e zamans z olarak ccedilal abilen bir yap uumlzerine kurulmu tur
Ccedilo u AJAX uygulamas XHR nesnesini asenkron olarak kullan r Asenkron istek
taray c ya goumlnderilir ama sunucudan bir cevap gelmesini beklemektense sonraki istek kodlar
i letilmeye devam eder lenen cevap goumlnderildi inde XHR nesnesinin onreadystatechange
oumlzelli i bir fonksiyona ba lan r Bu fonksiyonun i letilmesinden sonra readystate koduyla
iste in durumu test edilir readystate oumlzelli i 4 de erini ald nda sunucuya istek tamamland
ve sonuccedil geldi mesaj gider [51]
A a daki kod parccedilas nda asenkron bir ileti im goumlsterilmektedir [51]
get recipe using Ajax
function getRecipe(evnt)
if (xmlhttp) xmlhttp = aaGetXmlHttpRequest( )
if (xmlhttp) return
var drink = encodeURIComponent(documentgetElementById(drink)value)
var qry = drink= + drink
var url = recipephp + qry
xmlhttpopen(GET url true)
xmlhttponreadystatechange = printRecipe
xmlhttpsend(null)
if (evnt ampamp evntpreventDefault( ))
evntpreventDefault( )
35
return false
E zamans z ileti imde kullan c ayn zaman diliminde birden fazla i lem yapabilir
Oumlrne in Web sayfas nda bir form dolduruldu unda formdaki bilgiler AJAX ile goumlnderilirken
i lemin bitmesini beklemek gerekmemektedir O zaman diliminde Web sayfas n n ba ka bir
yerinde bulunan anket cevapland r labilir Ccediluumlnkuuml e zamanl
ccedilal l rken bloke edilen JavaScript
motoru e zamans z ccedilal rken serbesttir ve ba ka isteklerin goumlnderilmesine muumlsaade eder Yani
ayn zaman dilimi iccedilerisinde birden fazla iste i kabul edebilir [52]
ekil 314 E zamanl olmayan ileti im modeli
ekil 314 te goumlruumllduuml uuml gibi ayn zaman dilimi iccedilerisinde 4 adet istek yap lm t r
Kullan c bu isteklerin tamamlanmas n beklemek zorunda de ildir Bu sebeple istemci ve
sunucu aras ndaki t kla-bekle-t kla-bekle etkile imi ortadan kalkmaktad r
362 E zamanl leti im
Senkron isteklerde taray c cevap iccedilin beklerken kilitlenir
var state = documentforms[0]elements[0]value
var url = ajaxphpstate= + state
xmlhttpopen(GET url false)
xmlhttpsend(null)
alert(xmlhttpgetAllResponseHeaders( ))
Yukar daki kod dizesiyle bir form alan na Web servisi uumlzerindeki HTTP GET istek
yap s kullan larak eri ilir Uumlccediluumlncuuml sat rdaki open youmlnteminin uumlccediluumlncuuml parametresinin false
olmas n n anlam iste in e zamanl (senkron) oldu unu goumlsterir Herhangi bir parametre
almadan null de erli istek goumlnderilir stek goumlnderildikten hemen sonra uyar mesaj kutusu
36
accedil larak cevap ba l yaz l r [51] Kullan lan Web servisi h zl ysa cevap hemen gelir E er
servis yava sa istek bitinceye kadar di er sayfa aktiviteleri gerccedilekle emez [51]
E zamanl
ileti imde ayn zaman diliminde yaln zca bir i lem yap labilinir Web
taray c m zdan uzaktaki Web sunucusuna goumlnderilen istek Web sunucusunda i lenir ve tekrar
geldi i yoldan Web taray c s na geri doumlner Bu i lem belli bir zaman al r E zamanl
ccedilal rken
bu zaman diliminde ba ka bir istek goumlnderilemez [52]
E zamanl
ccedilal ma oumlzellikle Web sunucusu ayn bilgisayarda ise veya yak n olan bir
LAN uumlzerindeyse sa l kl ccedilal abilir Fakat Web sunucusu a r bir yuumlk alt ndaysa veya Web
taray c s Web sunucusuyla yava bir ba lant uumlzerinden etkile ime geccediltiyse koumltuuml bir
performans verecektir Ccediluumlnkuuml Web taray c s iccedilindeki JavaScript motoru goumlnderdi i istek
tamamlan ncaya kadar bloke edilir ve Web taray c s donmu bir ekilde iste in
tamamlanmas n bekler Bu zaman diliminde kullan c goumlnderilen iste i iptal de edemez Bu
yuumlzden Web sayfas ndaki ba ka bir noktaya t klayamaz veya ba ka bir sekmeye geccedili yapamaz
[52]
ekil 315 E zamanl
ileti im modeli
ekil 315 de goumlruumllduuml uuml gibi Web taray c s ndan goumlnderilen 1 nolu istek Web
sunucusuna iletilmektedir Al nan istek i lendikten sonra Web taray c s na geri
goumlnderilmektedir Bu zaman diliminde ba ka bir istek yap lamaz
363 Javascript
1995 y l nda Brendan Eich ad ndaki yaz l m geli tiricisi taraf ndan Netscape Navigator
20 ile birlikte geli tirilen JavaScript dili istemci tarafl
(client-side) bir betik (script) dilidir
Web sayfalar nda dinamik iccedilerik sa lamak ya da kullan c yla ileti im kurmak iccedilin kullan l r [53]
Bu ileti imin sa lanabilmesi iccedilin ortak kurallar duumlnyada uluslararas standart kurumu olan
Avrupa Bilgisayar Uumlreticileri Birli i (European Computer Manufacturers Association-ECMA)
taraf ndan belirlenir Temel kurallar ECMA Script (ECMA-262) ad verilen bir standartta
toplanm t r [54]
37
Javascript in soumlz dizim kurallar C diline benzerlik goumlsterir Derleme i lemi yap lmayan
ayr t rmal (parsed language) bir dildir Nesne youmlnelimli programlama (Object Oriented
Programming - OOP) yetene ine sahiptir [55]
AJAX n JavaScript le olan ili kisi k saca u ekilde oumlzetlenir Herkes taraf ndan
bilinen goumlnder (submit)-cevap(response) doumlnguumlsuumlnuumln oumlnuumlne geccedilerek kullan c lar n Web
sunucusuyla direk etkile im iccedilinde bulunmas n sa lar [56] AJAX goumlnder duuml mesi olmaks z n
sunucu etkile imini sa lar Veriye ihtiyaccedil duyuldu unda Web sayfas iccedilindeki Javascript kodlar
ile bir istek yapar Sunucu cevab tam bir HTML sayfas olarak de il veri olarak geri doumlnduumlruumlr
ve istemciyi cevaplar Cevab n bu ekilde olu turulmas Web uygulamalar n n masauumlstuuml
uygulamalar gibi ccedilal abilmesini sa lar [56]
Sonuccedil olarak Javascript HTML kodlar aras na goumlmuumllebilen kod parccedilalar d r Bunun
yan s ra tek ba na js uzant l JavaScript kodlar da yaz labilir Bu kodlar Internet Explorer
Firefox Opera vb tuumlm taray c lar taraf ndan desteklendi i iccedilin sorunsuz ccedilal r [57]
3631 JavaScript Ccedilal ma Prensibi
JavaScript kodlar
iccedilin herhangi bir metin editoumlruuml kullan labilir ya da Notepad gibi bir
duumlz yaz program yla da kodlar olu turulabilir Taray c lar n yorumlayabilmesi iccedilin ltSCRIPTgt
etiketiyle ba layan ltSCRIPTgt etiket ile biten JavaScript kodlar HTML belgelerinin ccedile itli
yerlerine eklenebilir Eklenen kodlar kullan c lar n HTML belgesindeki bir ba lant ya t klamas
veya klavyede bir tu a basmas yla tetiklenir ya da HTML sayfas kullan c
Browser nda
goumlruumlntuumllendi i anda otomatik olarak ccedilal maya ba lar Otomatik ccedilal an Javascript kodu ise iki
ayr youmlntemle ccedilal t r labilir lk youmlntem HTML kodlar i letilmeden oumlnce (yani Web sayfas
kullan c n n Web Browser nda goumlruumlntuumllenmeden oumlnce) ccedilal mas ikinci youmlntem sayfa
goumlruumlntuumllendikten sonra script kodlar n n ccedilal mas d r [58] Bu youmlntemler a a da s ras yla
accedil klanmaktad r
HEAD boumlluumlmuumlnde
BODY boumlluumlmuumlnde
HEAD Boumlluumlmuumlndeki Scriptler HEAD etiketleri iccediline ltSCRIPTgt ltSCRIPTgt etiketi
kullanarak istenilen JavaScript kodlar
eklenebilir Bu kodlar HTML sayfas n n BODY boumlluumlmuuml
yuumlklenmeden i lenir
38
ltHTMLgt
ltHEADgt
ltSCRIPT LANGUAGE=Javascript12gt
alert(Merhaba Duumlnya) ltSCRIPTgt
ltHEADgt
ltBODYgt
ltBgtDeneme Sayfas na Ho geldinizltBgtltbrgt
ltBODYgt
ltHTMLgt
Yukar daki oumlrnekte kaynak kodlar yukar dan a a ya do ru i letilirken sayfada ilk
goumlruumlntuumllenecek olan alert( ) komutuyla ekrana yaz lan Merhaba Duumlnya
ileti im kutusu
olacakt r Gelen ileti im kutusunda Tamam butonuna bas ld nda body boumlluumlmuumlndeki
kodlar n i lenmesine s ra gelecektir Ekrana Deneme Sayfas na Ho geldiniz mesaj
yazacakt r
BODY Boumlluumlmuumlndeki Scriptler HTML belgesinin BODY boumlluumlmuumlnde JavaScript
kullanmak iccedilin iki yol vard r
Do rudan ccedilal acak kodlar ve kullan c taraf ndan ccedilal acak kodlar
Do rudan ccedilal acak JavaScript kodlar
ltBODYgtltBODYgt etiketleri aras na
ltSCRIPTgt etiketi kullan larak HTML belgesinin istenilen yerine yaz l r Bu cuumlmleler taray c
taraf ndan okundu u anda yerine getirilir
ltHTMLgt
ltHEADgt
kinci Ornek
ltHEADgt
ltBODYgt
ltSCRIPT LANGUAGE=Javascript12gt
alert(Javascript duumlnyas na ho geldiniz)
ltSCRIPTgt
ltBODYgt
ltHTMLgt
Yukar daki oumlrnekte ise kod i leme s ras na uygun olarak i letilerek oumlnce HEAD
etiketleri yorumlanarak ekrana kinci Ornek yaz p hemen ard ndan ileti im kutusu ccedil karak
39
Javascript duumlnyas na ho geldiniz yazacakt r Kullan lan di er bir youmlntem ise kullan c
taraf ndan bir olay n ba lat lmas yla bir JavaScript kodunun ccedilal t r lmas d r
ltHTMLgt
ltHEADgt
ltSCRIPT LANGUAGE=Javascript12gt
genel de i ken tan mlar
var n = Merhaba Duumlnya
bu fonksiyon uyar kutusu accedilar
function merhaba()
alert(n)
ltSCRIPTgt
ltHEADgt
ltBODYgt
ltbrgtltbrgtltbrgtltbrgtltBgtButona T klad n zda Merhaba Duumlnya yazan ileti im kutusu ekrana
gelecektirltBgtltbrgtltbrgt
ltFORMgt
ltINPUT TYPE=SUBMIT NAME=dugme1 VALUE=TIKLAYINIZ
onclick=merhaba()gt
ltFORMgt
ltBODYgt
ltHTMLgt
Yukar daki oumlrnekte ise HEAD etiketleri aras nda de i ken tan mlama ve fonksiyon
olu turma i lemleri yap lm t r BODY komutu i letildikten sonra FORM ouml esiyle olu turulan
duuml me kullan c taraf ndan t kland nda script kodu tetiklenerek fonksiyon ccedila r l r ve mesaj
kutusu ekrana gelir
Ayr ca ltBODYgt iccedilinde URL kullan larak da a a daki oumlrnek kodla goumlsterildi i gibi
JavaScript kodu ccedila r labilmek muumlmkuumlnduumlr
ltA HREF=javascript alert(Ccedil kmak istedi inizden emin misiniz)gtSiteden Ccedil kltAgt
40
3632 Javascript Dilinin Oumlzellikleri
JavaScript dilinin temel soumlz dizim yap s na a a da incelenecektir
36321 De i kenler
Bir de eri iccedileren bellek adlar n ifade ederler De i kenler verileri saklar ve onlara
eri imi sa larlar De i kenlerin bir ad olur bir de de eri olur Program boyunca de i kenin ad
de i mez fakat iccedileri i de i ebilir
Bir JavaScript de i keni belli kurallara uymak zorundad r
a) De i kenler harfle ya da alt ccedilizgi (_) ile ba lamal d r Rakam veya di er
i aretler birinci karakter olarak kullan lamaz fakat de i ken ad n n di er
karakterlerinde kullan labilir
b) Javascript buumlyuumlk kuumlccediluumlk harfe kar duyarl d r (case-sensitive oumlzellli i) Ayn
kelimenin buumlyuumlk harfle yaz lmas ile kuumlccediluumlk harfle yaz lmas farkl isimler
olarak alg lanmas na neden olur
c) De i ken isimleri iccedilinde bo luk olmamal d r
d) Kullan c lar n bilgisayar nda kullan lan dil setinin ayarlar her bir kullan c iccedilin
farkl l k goumlsterebilece i iccedilin ngilizce alfabede bulunmayan Tuumlrkccedile ve di er
dillerdeki high-ASCII karakterleri ( ile uuml Uuml ouml Ouml ccedil ve Ccedil)
kullanmamakta fayda vard r [58]
36322 Kapsam
Bir de i kene bir de er atand nda bu de erin geccedilerli olaca suumlreyi belirlemek iccedilin
kapsam (scope) kavram kullan l r Bir de i kenin kapsam
global ya da lokal olabilir Bir
global de i kene sayfa uumlzerinde herhangi bir JavaScript ten eri ilebilir Lokal de i ken ise
de erin atand yordam iccedilinde geccedilerlidir
A a daki oumlrnekte bir de i kenin kendisine atama yaparak de er verilir
adi= Zeynep
Bir fonksiyon yaz l rken yerel bir de i ken olu turmak iccedilin a a daki oumlrnekte oldu u
gibi var kelimesiyle tan mlama yap l r
41
function toplama()
var sayi=1
toplam=0
deyimler
Yukar daki oumlrnekte sayi adl de i ken toplama fonksiyonu iccedilin yerel toplam de i keni
ise tuumlm sayfa iccedilin genel (global) de i ken olacakt r De i kenlere atanan de erler Tablo
33 deki de i ken tuumlrlerinden herhangi biri olabilir Verinin tuumlruumlne ba l olarak de er uumlzerinde
belirli i lemler yap labilir ya da yap lamaz Oumlrne in iki string de er uumlzerinde aritmetik i lem
yap lamaz
Tablo 33 De i ken tuumlrleri
De i ken Tuumlrleri
Numbers Tam ve ondal kl
say lar iccedilerir Pozitif 0 ya da negatif olabilir
Booleans Mant ksal veri tuumlruumlduumlr True (Do ru) ya da False (Yanl ) de erini al r Sorgulama
sonunda geriye True iccedilin 1 False iccedilin 0 de erini doumlnduumlruumlr
Strings Karakter bilgi iccedileren bir de i kendir T rnak iccedilinde yaz lan ifadeler de i kene
atan r
Objects Taray c ya ait nesnelerdir nesne= new Object() eklinde kodlamada kullan labilir
Null Oumlzel bir de i kendir ccedili bo ya da de ersiz olarak ifade edilir
Undefined
Bir de i ken yarat ld ktan sonra iccedilerdi i tan ms z de eri simgeler
36323 leccediller (Operators)
leccediller iki ya da daha fazla de er uumlzerinde i lem yap lmas n sa lar De erler ya da
de i kenler aras nda toplama ccedil karma mod gibi i lemler yap labilir
Tablo 34 leccediller ve goumlrevleri
leccediller ve Goumlrevleri
+ Toplama
- Ccedil karma
Ccedilarpma
Boumllme
42
MOD Boumllmede kalan verir (10 3 i lemi 1 de erini verir )
++
Tek art r m De er 1 art r l r
-- Tekli azaltma
- Negatifle tirme lenenin negatif de erini doumlnduumlruumlr
36324 kili leccediller
kili i leccediller birden ccedilok kar la t rma i lemini tek bir ko ul ifadesi olarak birle tirirler
Oumlrne in
sayi =1 AND dongu gt 1000 ise gibi
Tablo 35 kili i leccediller
kili i leccediller
ampamp
Mant ksal Ve And ki ifade de do ruysa True de erini doumlnduumlruumlr
|| Mant ksal Veya Or fadelerden birisi do ruysa True de erini doumlnduumlruumlr
Mant ksal De il Not Negatifle tirme i lemi do ruysa True de erini doumlnduumlruumlr
36325 Atama Deyimi
Atama deyimi (=) bir de i kene sa dan bir de erin atanmas n sa lar De i kenlere
tuumlrlerine ve tan mlamalar na uygun olan herhangi bir de er atanabilir
Oumlrnek sayi=100
Oumlrnek toplam=(fiyat+kdv)
Sa daki de eri soldaki de i kene atayan += -= = = ifadeleri de kullan labilir
Oumlrne in toplam+=fiyat (di er bir de i kenden gelen fiyat de erini toplam de erine
ekler ve sonucu toplam de i kenine atar)
36326 fadeler
De i kenlerin i leccedillerin ve deyimlerin bir araya gelerek olu turduklar yap lar
ifade
eder
Oumlrne in toplam = sayi 1 sayi2 formuumlluuml bir ifadedir
43
36327 Deyimler
Deyimler belli bir komut ya da soumlz dizimi bile enlerine verilen add r Oumlrne in bir komut
ya da bir IF yap s deyim olabilir
Oumlrnek if (basari_notugt50) deyimler else deyimler
36328 Nesneler
Kendi de erleri oumlzellikleri ve i lemleri olan bile enlere nesne (object) denir JavaScript
dilinde ccedilok say da yerle ik nesne vard r
JavaScript buumltuumln Web sayfas n ve taray c y nesneler toplulu u olarak goumlruumlr Bu
sisteme DOM (Document Object Model) denir [59]
JavaScript kullanarak dinamik ve etkile imli goumlruumlnuumlmler elde edilir DOM a JavaScript
ve JScript gibi ECMAScript olan kullan c taraf ndaki bir scripting dili yard m yla eri ilebilinir
DOM la veri al -veri i yeni bir sayfada kullan c ekran na yans t lmaz Parccedilal guumlncelleme
olay n n buumlyuumlk k sm bu modelle gerccedilekle tirilir
Ba lang ccedilta Javascript geli tiricileri kullan c lar na daha zengin uygulama deneyimleri
ya atabilmek ve sayfalardaki etiketlerde dinamik de i imler sa lanabilmesi iccedilin ccedilaba sarf
ediyordu Bu durum sayfalar n bir nesne gibi i lenebilmesini gerekli k ld Boumlylece DOM ortaya
ccedil km t r lk oumlnceleri Javascript ve DOM s k bir ili ki iccedilindeydi sonuccedilta ise iccedilerik ayr larak
geli tirilmi tir DOM sayfalar n JavaScript veya VBScript gibi bir betik dili ile de i tirilebilir
sayfalar n tamamen nesne youmlnelimli goumlsterimidir [60]
DOM ekil 316 da goumlsterilen JavaScript iccedilindeki buumltuumln nesneleri ifade etmektedir
Hiyerar ik olarak ccedilok say da nesneyi iccedilerir NetScape ve Microsoft taray c lar iccedilin DOM
nesneleri farkl oldu u iccedilin yaz lan kodlar uyumlu de ildir [59]
44
ekil 316 Javascript nesneleri [59]
Window nesnesi taray c n n kendisidir Window nesnesi birccedilok youmlnteme oumlzelli e ve
olaya sahiptir Form nesnesi DOM nesnesinin ana nesnesidir Form uumlzerindeki alanlar bu nesne
arac l yla kullan l r [59]
Verilerin yuumlklenmesinde kullan lan XML ile uumlretilen Javascript istemci kodlar ve veri
sunucu uumlzerindeki kodlar aras ndan ayr larak goumlsterilir Bu istemcinin etkilenmeksizin sunucu
uumlzerinde de i iklik yap lmas n sa lar Benzer API iccedileren di er istemciler iccedilin bilgileri accedil a
ccedil kar r [41]
363281 DOM (Document Object Model)
Document Object Model (DOM) XML ve HTMLXHTML iccedilin World Wide Web
Consortium (W3C) taraf ndan geli tirilen bir belgenin a accedil yap s n (tree-based) temsil eden bir
standartt r DOM bir tak m nesneler iccedilin belgenin yap s n temsil etmesinin yan s ra bu
nesnelere eri im iccedilin youmlntemler de sa lar [44]
DOM bir belgenin stilini kaynak dosyas n yap s n ve iccedileri ini guumlnceller ve program
ile scriptlerin belgeye eri imine izin veren bir platformdur Ayn zamanda bir API (application
programming interface) dir [62]
Nesneleri iccedileren belgeler iccedilin standart model olarak DOM uumlccedil boumlluumlme ayr lm t r
Core DOM
XML
HTMLXML DOM - XML
45
HTML DOM
HTML
DOM da her internet sayfas bir belge ve bu belge iccedilerisinde bulunan tuumlm elemanlar ise
nesne olarak kabul edilir DOM sayfa uumlzerindeki her bir XML eleman
iccedilin nesnelerin a accedil
yap s n n resmini goumlrselle tirmenin kolay bir yoludur A a daki oumlrnek basit bir XML
belgesinin doumlrt duuml uumlmden olu an DOM u goumlstermektedir Koumlk Dokuumlman duuml uumlmuuml koumlk etiketi
iccedilin bir Element duuml uumlmuuml alt etiketler iccedilin bir Element duuml uumlmuuml ve alt etiketin sahip olaca
herhangi bir bilgi girilebilen bir metin duuml uumlmuumlduumlr [41]
ltrootTaggt
ltchildTaggtSome TextltchildTaggt
ltrootTaggt
Bir a accedil yap s n n goumlrsel bir temsili a a da goumlsterilmektedir
Dokuumlman
Element (koumlkEtiket)
Element (altEtiket)
Metin
A a daki kod kuumlmesinin [63] DOM goumlsterimi ekil 317 deki gibidir
ltTABLE border=1gt
ltTBODYgt
ltTRgt
ltTDgtOumlgr NoltTDgt
ltTDgtAd Soyad ltTDgt
ltTRgt
ltTRgt
ltTDgt900ltTDgt
ltTDgtZeynep OumlZERltTDgt
ltTRgt
ltTBODYgt
ltTABLEgt
46
ekil 317 DOM a accedil yap s
[63]
Geccedilerli her HTML ve XML belgesindeki element nitelik metin duuml uumlmuuml (text node)
hatta bo luk ve sekme karakterleri(whitespace) bile W3C DOM taraf ndan duuml uumlm (node) olarak
kabul edilir ekil 317 deki gibi belgedeki duuml uumlmlerin kullan m hiyerar isine goumlre
s ralanmas na da duuml uumlm a ac (node tree) denir Belge nesnesi yeni duuml uumlmler olu turmak bu
duuml uumlmlerin oumlzeliklerini de i tirmek ve youmlnetmek iccedilin ccedilok say da youmlnteme sahiptir
363282 DOM Elementinin S k Kullan lan Genel Oumlzellikleri ve Youmlntemleri
A a da duuml uumlmlere eri mek ve youmlnetmek iccedilin s k kullan lan JavaScript youmlntemleri
vard r [64]
getElementById()
Soumlzdizimi
documentgetElementById(herhangiBirID)
Oumlrnek kullan m
element = documentgetElementById(kimlik)
getElementById() youmlntemi id oumlzelli i belirtilen elementlerin referans n n al nmas n
sa lar Ayn id kimli ine sahip ba ka bir element olmas durumunda sadece ilk elementi verir
Di erlerine eri im sa lamaz kimlik
dokuumlman uumlzerinde elementi bulmak iccedilin kullan lacak
e siz bir oumlzelli ini ifade eder
47
getElementsByTagName()
Soumlzdizimi
documentgetElementsByTagName(herhangiBirHTMLElementi)
Oumlrnek kullan m
documentgetElementsByTagName(etiketAdi)
Dokuumlman uumlzerinde belirtilen ayn etiket ismine ait buumltuumln elementlerin bir listesini verir
documentgetElementById(herhangiBirID)documentgetElementsByTagName()
parametresiyle id niteli inin de eri herhangiBirID olan elementin duuml uumlmleri
iccedilindeki tuumlm elementler listelenir
getElementsByName()
Soumlzdizimi
documentgetElementsByName(herhangiBirIsim)
Oumlrnek Kullan m
documentgetElementsByName(baslik)
Bu youmlntem dokuumlman uumlzerinde belirtilen name oumlzelli ine sahip elementlerin bir listesini
verir Oumlrnek kullan mda name niteli inin de eri baslik olan elementleri verir
firstChild
Bu oumlzellik elementin ilk alt elementini verir
Soumlzdizimi
documentgetElementById(herhangiBirID)firstChild
lastChild
Bu oumlzellik elementin son alt eleman n verir
Soumlzdizimi
documentgetElemementById( herhangiBirID )lastChild
48
nodeValue
nodeValue oumlzelli i text comment ve CDATA duuml uumlmlerinin iccedilerdikleri de eri verir
Soumlzdizimi
m= documentgetElemementById( herhangiBirID )lastChildnodeValue
m e er varsa duuml uumlmuumln iccedilerdi i de erin string olarak de eridir document nesnesinin
ve elementlerin nodeValue de eri null doumlner
removeAttribute()
removeAttribute fonksiyonu elementin belirtilen bir oumlzelli inin silinmesini sa lar
Soumlzdizimi
elementremoveAttribute(ozellik)
ozellik silinecek oumlzelli in ad d r
nodeName
Duuml uumlm bilgilerini almak iccedilin kullan l r Geccedilerli duuml uumlmuumln ad n doumlnduumlruumlr
Geccedilerli duuml uumlm element ise elementin tipini doumlnduumlruumlr Nitelik ise nitelik ad n doumlnduumlruumlr
nodeType
Geccedilerli duuml uumlmuumln tuumlruumlnuuml say sal olarak doumlnduumlruumlr
nextSibling
Duuml uumlmler aras gezinti yap labilmesiyi sa lar Geccedilerli duuml uumlmden bir sonrakine referans verir
previousSibling
Geccedilerli duuml uumlmuumln bir oumlncekine referans verir
setAttributeNode
Bir duuml uumlme nitelik atamada kullan l r
Soumlzdizimi
elementsetAttributeNode(nitelik)
49
36329 Fonksiyonlar
Fonksiyonlar birden fazla ad mdan olu an i lemlerin kolayca tek seferde yap lmas n
sa lar Fonksiyonlar bir dizi i lemi yerine getirir ve bir sonuccedil doumlnduumlruumlr Ayr ca fonksiyonlar
parametre olarak kabul edilen birccedilok de er al rlar
Fonksiyonlar n HTML dosyas n n HEAD boumlluumlmuumlne koyulmas yani gerekli buumltuumln
fonksiyonlar alt alta HTML in HEAD boumlluumlmuumlnde yer alacak bir SCRIPT etiketi iccedilinde
olu turulmas taray c n n Javascript yorumlay c s bak m ndan h z kazanmas n sa lar Sonra
ihtiyaccedil duyuldu unda yeni bir SCRIPT etiketi koyarak bu fonksiyon goumlreve ccedila r l r [58]
function fonksiyonun_ad (arguumlman1 arguumlman2 arguumlmanN)
i lemler
deyim 1
deyim 2
deyim N
363210 Accedil klamalar
Programlar n anla l r olmas n sa layan accedil klama sat rlar JavaScriptte bu lt- ve --gt
i aretlerinin aras nda ifade edilir [58]
lt- Accedil klama sat r d r --gt
37 Basit Bir AJAX Oumlrne i
Ekran ccedil kt s ekil 318 de goumlruumllen basit bir oumlrnek uumlzerinde i leyi anlat lacakt r
ekil 318 AJAX oumlrne i
50
indexhtml dosyas accedil ld nda Metnin AJAX la getirilmesi iccedilin tiklayiniz
ba lant s na t kland nda taray c kullan lan AJAX youmlntem sayesinde tuumlm sayfa yeniden
yuumlklenmeden iccedileri i sunucu da depolanan sonuchtm dosyas ndan alarak ekrana yans t r
Yukar daki indexhtml dosyas n n kodlar a a da goumlsterilmektedir
lthtmlgt
ltheadgt
lttitlegtAJAXla oumlrne ilttitlegt
ltscript language=JavaScript type=textjavascriptgt
function getXmlHttpRequestObject()
if (windowXMLHttpRequest)
return new XMLHttpRequest() IE olmayan
else if(windowActiveXObject)
return new ActiveXObject(MicrosoftXMLHTTP) IE
else
alert(Maalesef taray c n z XmlHttpRequest nesnesini desteklememektedir AJAX
destekleyen bir taray c da tekrar deneyiniz)
var receiveReq = getXmlHttpRequestObject()
function cevap()
if (receiveReqreadyState == 4 || receiveReqreadyState == 0)
receiveReqopen(GET sonuchtml true)
receiveReqonreadystatechange = handlecevap
receiveReqsend(null)
function handlecevap()
if (receiveReqreadyState == 4)
documentgetElementById(span_result)innerHTML = receiveReqresponseText
ltscriptgt
ltheadgt
lta href=javascriptcevap()gtMetnin AJAXla getirilmesi icin tiklayinizltagtltbr gt
51
ltspan id=span_resultgtltspangt
lthtmlgt
Oumlrnekte ilk olarak tuumlm taray c larda sorunsuz ccedilal abilmesi iccedilin ccedilapraz taray c deste i
sa lanm t r receiveReq de i keni getXmlHttpRequestObject() ile tan mlanm t r Daha
sonra cevap fonksiyonu olu turulmu tur Sunucudan gelen cevab n durumu ifelse yap s yla
kontrol edilmi tir Sunucudan gelen gelen cevaba goumlre doumlnduumlruumllen de erlerle sonuchtml sayfas
ccedila r larak uygulama sonlan r
AJAX youmlntemi ile ccedilekilen bilginin tutuldu u sonuchtml dosyas nda ise sadece ekil
319 de yazan veri bulunmaktad r
ekil 319 sonuchtml sayfas n n ekran ccedil kt s
38 XML
XML (eXtensible Markup Language) internet te teknik standartlar ve youmlnetim
konusunda yetkili organ olan W3C (World Wide Web Consortium) organizasyonu taraf ndan
geli tirilmi tir XML programc lar n kendi sistemlerini olu turabilecekleri kendi etiketlerini
tan mlayarak ccedilok daha rahat ve etkin programlama yapabilecekleri ve bu belirlenen etiketleri
kendi yap lar iccedilerisinde standartla t rabilece i esnek geli tirilebilir ve kolay uygulanabilir bir
meta-dil (bir dili tan mlamak iccedilin kullan lan soumlzcuumlkler dilbilim dili) dir [65]
XML ile ilgili ilk ve en oumlnemli nokta ba l ba na bir dil olmamas d r Daha ziyade
di er dilleri ya da bir dili olu turan soumlzcuumlkleri olu turmak (vocabularies) iccedilin kullan lan bir
meta-dildir XML bu soumlzluumlklerin olu turulmas iccedilin gerekli kurallar tan mlar [66]
XML bu kural yap s na uygun olarak etiketleri iccedilerik bilgisiyle tan mlayabilir XML nin
esnek yap s sayesinde a a daki oumlrnekte oldu u gibi kullan lan dilde ccedilok farkl tiplerde etiket
olu turulmas na muumlsaittir XML soumlzluuml uumlndeki tek k s tlamas etiketlerin iyi biccedilimlendirilmi
olmas gerekti idir [66]
52
ltnotgt
ltkimegt Melek lt kimegt
ltkimdengt Zeynep lt kimdengt
ltbaslikgt Hatirlatici ltbaslikgt
ltbodygt Bana proje teslim tarihini hatirlat lt bodygt
ltnotgt
Yukar daki not oumlrne i kendi kendini accedil klay c bir oumlrnektir Goumlnderici ve al c bilgisinin
yan nda mesaj metni ve ba l da mevcuttur XML nin HTML de oldu u gibi oumlnceden
tan mlanm etiketleri yoktur XML yazar kendi etiketlerini ve kendi belge yap s n oumlrnekteki
gibi olu turabilir
Her dil farkl d r ama hepsinde iccedileri i i aretlemek iccedilin etiketler kullan l r Etiket
adlar n n seccedilimi ve yap s esnektir ve genellikle gruplarda bilginin payla labilmesi iccedilin standart
XML soumlzluumlkleri kararla t r lm t r [66]
XML 1998 y l nda SGML alt yap s uumlzerine kurulmu tur SGML (Standard
Generalized Markup Language) bir etkinle tirme teknolojisidir HTML gibi uygulamalarda
kullan l r Geni letilebilir aretleme Dili (Extensible Markup Language-XML) nin oldukccedila
basit bir diyalektidir [66]
XML SGML ve HTML sistemlerinin her ikisinin de uygulanmas n kolayla t rmak iccedilin
tasarlanm t r XML ayn zamanda son derece popuumller bir veri format d r Ccediluumlnkuuml ccedilo u
programlama dili taraf ndan desteklenir Bu dil sayesinde geli iguumlzel veri tipleri tan mlamak
kolayd r Ccedilo u kez XML Uzak Yordam Ccedila r s - Remote Procedure Call (RPC) mekanizmas
sayesinde istemci-sunucu ileti imini kolayla t rmak iccedilin kullan lm t r [66] XML elde edilmek
istenen alan bilgileri konfiguumlrasyon parametreleri teknik ccedilizim hesap ccedilizelgesi (spreadsheet)
gibi ouml eleri iccedileren dosyalar n yaz l m nda kullan l r [67]
XML verileri goumlruumlntuumllemek iccedilin de il verilerin platformdan ba ms z bir ekilde
depolanmas ve transferi iccedilin tasarlanm t r XML tuumlm bilgiler duumlz metin format nda saklar Bu
da tuumlm platformlarda sorunsuz bir ekilde kullan labilir olmas n sa lar Bu dosyalar diskte duumlz
metin olarak tutman n bir avantaj
da olu turuldu u programda accedil lmas gerekli de ildir Bu
yaz dosyalar programc n n istedi i bir yaz i leme program nda accedil l p duumlzenlenebilir Ayr ca
XML veriyi duumlz metin (plain text) format nda saklamas ndan dolay veriyi payla t rma
konusunda hem yaz l m hem de donan mdan ba ms z hareket edebilme imkacircn n sunmu tur
53
381 Oumlrnek XML Belgesi Olu turma
XML belgelerinin yap s n n daha iyi kavranabilmesi iccedilin basit bir oumlrnekten yola ccedil k l r
Bir dizi karakter mant ksal bir yap ya ccedilevrilmelidir Bu ccedilevrim a accedil yap s kullan larak
yap labilir Oumlrnek belgede koumlk dizin ya da element ve alt boumlluumlmler iccedilin de dallar belirlenir
denemexml olarak kaydedilecek belgenin iccedileri inde sisteme kay tl kullan c lar n bilgileri
vard r
Haz rlanan denemexml belgesinin a accedil yap s a a daki gibi olu turulmu tur Koumlk
element ve alt dallar ve alt dala ait nitelik belirtilmi tir
ekil 320 denemexml dosyas n n a accedil yap s
A accedil yap s olu turulduktan sonra kodlama k sm na geccedililir XML de kod yaz m n
kolayla t rmak iccedilin Altova XMLSpy MoreMotion XML Editor XMLwriter XML Editor 26
gibi ccedile itli editoumlr programlar kullan labilir Bu tez ccedilal mas nda oldukccedila i levsel oumlzelliklere
sahip Altova XMLSpy yaz l m kullan lm t r Editoumlr kullanarak dokuumlmandaki metinlerin
yap sal elemanlar yaz oumlzellikleri (renk stil biccedilim vb ) belirginle tirilir mlerin otomatik
soyadi
adi
soyadi
eposta
adi
soyadi
eposta
Kullanicilar Kullanici Kullanici_id= 2
Kullanici Kullanici_id= 3
Kullanici Kullanici_id= 1
adi
eposta
54
olarak kapanmas sa lanabilir Olu turulan yap lar n do rulu u ve geccedilerlili i kolayca kontrol
edilebilir Altova XMLSpy editoumlruumlyle olu turulan belge a a daki kodlardan olu maktad r
ltxml version=10 encoding=UTF-8gt lt--Bu XML belgesi kullan c bilgilerini tan mlar --gt ltKullanicilargt
ltKullanici kullanici_id=1gt
ltadigtZeynepltadigt
ltsoyadigtOZERltsoyadigt
ltepostagtz_ozerhotmailcomltepostagt
ltKullanicigt
ltKullanici kullanici_id=2gt
ltadigtYagmurltadigt
ltsoyadigtOZERltsoyadigt
ltepostagty_ozeryahoocomltepostagt
ltKullanicigt
ltKullanici kullanici_id=3gt
ltadigtFatihltadigt
ltsoyadigtAYDOGMUSltsoyadigt
ltepostagtf_aydogmusgmailcomltepostagt
ltKullanicigt ltKullanicilargt
Haz rlanan dokuumlman iyi biccedilimlendirilmi (well-formed) bir yap ya sahiptir ekil 321
de Altova XMLSpy editoumlruumlyle olu turulan belgenin ekran goumlruumlntuumlsuumlnde denemexml
goumlruumllmektedir
55
ekil 321 XML belgesi
382 XML Dokuumlman n n Yap s
XML ile veriler yap bak m ndan moduumllerlik kazanmaktad r Bu sayede verilerin iccedilerik
yap ve sunum k s mlar ayr moduumlller halinde farkl XML dokuumlmanlar nda tutulmaktad r
Her XML belgesini olu turan moduumlller iki boumlluumlmde incelenecektir Bu moduumlller giri
boumlluumlmuuml (prolog) ve belge ya da koumlk duuml uumlm (document node) olarak ayr lm t r
Prolog XML belgesinin ba nda goumlruumlntuumllenir ve belge hakk nda iccedilerikle ilgili bilgiler
iccedilerir XML bildirimleri i lem accedil klamalar yorumlar ve DTD (Document Type
Definition)XML ema iccedilerebilir
yi duumlzenlenmi bir XML dokuumlman tek ve temel bir koumlk duuml uumlm uumlzerine kurulur
Elementler nitelikler metin CDATA (character data) varl k ve yorumlar iste e ba l olarak
eklenebilir
56
ekil 322 Oumlrnek bir XML dokuumlman yap s
[ 66]
3821 Giri Boumlluumlmuuml (Prolog)
Bu boumlluumlmde XML belgesinde bulunabilecek oumln tan mlama konular incelenecektir
3822 XML Bildirimleri
XML dokuumlmanlar genellikle a a daki bildirim sat r yla ba lar Bildirim sat r ndan
oumlnce ba ka komut sat r yaz lmamal d r Tersi bir durumda XML dokuumlman iccedileri i i leme
koyarken do ru bir ekilde okuyamaz ve hata mesaj uumlretir
ltxml version= 10 encoding= UTF-8
gt
Bu i lem sat r nda ba lang ccedil etiketi ve biti etiketi yoktur XML bildiriminin yap ld
ltxml ve gt i lem komut etiketleridir lem komutlar oumlrnekteki gibi biti ik yaz l r Bu oumlrnek
sat rda 2 tane oumlznitelik bar n r Birinci oumlznitelik xml dokuumlman n n hangi suumlruumlm oldu unu bildirir
ve yaz lmas zorunludur En yayg n kullan lan ve en guumlncel suumlruumlmuuml olan 10 yerine ba ka bir
57
de er yaz ld nda dosya i lenmeyebilir kinci oumlznitelik olan encoding belge i lenirken
kullan lacak dil seccediliminin belirtildi i aland r Oumlrnekteki kod birccedilok dili destekleyen UTF-8
karakter dil setini tan mlar
38221 lem Accedil klamalar (Processing Instructions)
Giri boumlluumlmuumlnde di er uygulamalara XML dokuumlman hakk nda bilgi veren i lem
accedil klamalar (Processing Instructions- PIs) dacirchil edilebilir lem accedil klamalar lt karakterleriyle
ba lar ve gt karakterleriyle biter PIs XML belgesinin di er boumlluumlmlerinde goumlruumllebilmesine
ra men genellikle giri boumlluumlmuumlnde goumlruumlluumlr
XML bildirimleri ltxml karakter grubuyla ba lar lem accedil klamalar yla benzerlik
goumlsterir Fakat aralar ndaki fark XML bildirimleri ltxml karakter grubuyla ba larken i lem
accedil klamalar ise lt karakterleriyle ba lar
Bir XSL stylesheet i referans goumlsteren PI goumlsterimi
ltxml-stylesheet type= textxsl
href= stylesheetxsl gt
PI nin ilk ouml esi bir isimdir PI hedefi olarak adland r l r Yukar da goumlsterilen PI xml-
stylesheet ismine sahiptir simler ltxml karakter grubundan - semboluumlyle ayr l r PI ler type=
textxsl href= stylesheetxsl metin karakter dizesine sahiptir Oumlrnek kod sat r nda stylesheet
ad nda metin iccedilerikli bir XSL dosyas referans goumlsterilmi tir
38222 Yorumlar (Comments)
Yorum sat rlar XML belgesinin hemen hemen her yerinde iste e ba l olarak
kullan labilir XML yorum sat rlar XHTML belgelerindeki yap yla ayn d r Ayn karakterlerle
ba larlar
lt--Bu alana yorumlar yaz labilir --gt
Yorum sat rlar XML belgesi i lenirken etkilenmezler Bu sat rlar programc lar n ya da
kullan c lar n program kodlar n kolayca anlayabilmeleri iccedilin yaz l r [68]
58
38223 Dokuumlman Tipi Tan mlama-The Document Type Definition (DTD) ve XML
emalar
XML belgesinin standartla t r lmas iccedilin kullan lan bir yap d r XML belgesinin hangi
elementleri iccedilerece ini ve bu elementlerin oumlzniteliklerinin ne olaca n elementlerin neleri
ta yaca n dokuumlman iccedilerisindeki tekrar eklini ve say s n kurallarla belirtir [69]
382231 DTD kullanman n Avantajlar
Veri depolama XML nin temel amaccedillar ndan birisidir Oumlrne in yaz l m geli tirecek bir
proje ekibi ccedilal rken ortak bir DTD nin olu turulmas yla geli iguumlzel yeni etiketler eklenmesinin
etiketlerle depolanan bilginin hatal s ralanmas n n etiketlere hatal nitelikler eklenmesinin
oumlnuumlne geccedililmi olur Ayr ca i lem yapan program n da bu belgeleri tan mas ve i lemesi kesinlik
kazan r [70] Belge i lenirken geccedilerlilik derleyicileri (validating parsers) XML belgesinin DTD
geccedilerlili i sa lanana kadar tekrar tekrar kontrol eder E er geccedilerlilik kontroluumlnden geccedilemezse
derleyici hata mesaj verir [66]
ccedileri in bir standarda oturtulmas yla AJAX ve dinamik DOM manipuumllasyonunda
istenmeyen gereksiz kod parccedilalar n n ve ccedilal mayan i aretlemelerin oumlnuumlne geccedililir Ayr ca daha
h zl HTML derleyicileri ve daha iyi ccedilapraz taray c performans iccedilin geli mi arama motoru
optimizasyonu sa lan r Bir DOCTYPE belirlemenin en oumlnemli etkisi HTML iccedileri inin nas l
ayr t r ld n ve yorumland n n Web taray c ya goumlsterilmesi gerekti ini belirtmesidir Ayr ca
DOCTYPE ba l olarak CSS yorumlanabilir ve HTML farkl ekilde goumlruumlntuumllenir [71]
Hangi i lem moduna dacirchil oldu u tespit edilerek Web taray c lar
DOCTYPE
doumlnuuml uumlmuumlnuuml destekler Web taray c lar bir Web sayfas n n nas l HTML ve CSS iccedileri ini
yorumlad n
ve de erlendirdi ini sayfalar n DOCTYPE bildirimlerine dayanarak de i tirir
[71]
382232 DTD tan mlama
DTD olu umu iki yolla yap labilir Birinci yol belge iccedilerisinde a a daki oumlrnekte oldu u
ilk standart sat rdan sonra ltDOCTYPE ile ba layan ve gt i areti ile biten aral kla DTD tan m
yap lmas d r DTD alan nda bir kok_element_adi etiketi tan mlanm t r [ ]
i aretleri aras nda
iccedilsel olarak tan mlanm t r Bu etiketin iccedilerisine element_icerigi olarak alt alanlar belirtilir
XML dokuumlman n n iccedilerik k sm na tan mlanan kok_element_adi etiketleri aras na istenilen metin
giri i yap l r
59
ltxml version= 10 encoding= UTF-8 gt
ltDOCTYPE kok_element_adi
[ltELEMENT kok_element_adi (element_icerigi) gt ]
gt
lt kok_element_adi gt Bu basit bir DTDli XML ornegidir lt kok_element_adi gt
kinci yol ise Web sayfalar n n iccedileri i bir geccedilerlilik servisi kullan larak onaylanmas d r
Do rulu u W3C1 taraf ndan garantiye al nan bir DTD ile geccedilerlilik kontroluuml sa lanabilir [71]
HTML XHTML SMIL MathMLvb Web dokuumlmanlar n n httpvalidatorw3org adresinden
URI adresi dosyalar upload edilerek ya da direk i aretleme giri i yap larak geccedilerlilik kontroluuml
yap labilir [72]
DTD tan m a a daki oumlrnekteki gibi HTML belgesine harici olarak
httpwwww3orgTRxhtml1DTDxhtml1-strictdtd adresindeki haz r kural yap s
dacirchil edilir
Kural ak bu adresten sa lan r [72] A a daki kod sat r nda XML veri tan mlamas na goumlre
ltcodegtltcodegt etiketleri olu turulmu tur
ltDOCTYPE html
PUBLIC -W3CDTD XHTML 10 StrictEN
httpwwww3orgTRxhtml1DTDxhtml1-strictdtdgt
lthtmlgt
ltbodygt
ltpgt Bu alana serbest metin giri i yap labilir
ltcodegt
Bu alanda ise XML veri tan mlamas DTD tan m na goumlre yap lm t r
ltcodegt
ltpgt
ltbodygt
lthtmlgt
Programc lar n en ccedilok ihtiyaccedil duyabilece i 6 tane oumlncelikli DOCTYPE belgelerinin
listesi a a da verilmi tir [72]
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401EN
httpwwww3orgTRhtml4strictdtdgt
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN
httpwwww3orgTRhtml4loosedtdgt
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 FramesetEN
60
httpwwww3orgTRhtml4framesetdtdgt
ltDOCTYPE html PUBLIC -W3CDTD XHTML 10 StrictEN
httpwwww3orgTRxhtml1DTDxhtml1-strictdtdgt
ltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalEN
httpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgt
ltDOCTYPE html PUBLIC -W3CDTD XHTML 10 FramesetEN
httpwwww3orgTRxhtml1DTDxhtml1-framesetdtdgt
382233 DTD ccedilinde Element Tipi Bildirimleri
Elementler hakk nda bilgi veren kodlard r Kullan lan yap ELEMENT ile ba lar
element ad ve element iccedileri inin eklenmesiyle sonlan r
ltELEMENT elementName (elementContents)gt
Element iccedileri i a a daki gibi bo olarak ta tan mlanabilir
ltELEMENT elementName (EMPTY)gt
Element iccedileri inde alt dallar-duuml uumlmler olu turulacaksa a a daki oumlrnekte oldu u gibi
DVD koumlk duuml uumlmuumlne le ayr larak s ras yla baslik format tarz element isimleri yaz l r
Belirlenen s ralama XML belgesi iccedilinde goumlruumlnecek s ralamay da olu turur
ltELEMENT DVD (baslik format tarz)gt
Parsed Character Data (PCDATA) veri tuumlruuml element iccedileri inin metinsel ifade olaca n
bildirir XML ayr t r c s bu metindeki karakter ve varl k referanslar n ccediloumlzuumlmler A a da
ltbaslikgt ltformatgt lttarzgt bildirimlerinin iccedilerik tuumlruuml PCDATA olarak tan mlan r
ltELEMENT baslik (PCDATA)gt
ltELEMENT format (PCDATA)gt
ltELEMENT tarz (PCDATA)gt
61
XML belgelerinde tan mlanan bir element herhangi bir veri kombinasyonunu iccedilerebilir
Bu durumda iccedilerik tuumlruuml ANY olarak tan mlan r En serbest iccedilerik tan m d r Oumlrnek kullan m
a a da goumlsterilmektedir
ltELEMENT KATALOG ANYgt
Elementlerin alabilecekleri nitelikler DTD iccedilerisinde tan mlan r Element iccedilerikleri
hakk nda daha detayl bilgiye ula lmas n sa lar Tablo 36 da kullan labilecek niteleyiciler
goumlsterilmektedir
Tablo 36 DTD karakterleri ve accedil klamalar
Karakter Accedil klama
Elemandan s f r veya daha ccedilok bulunabilir
Alt elemanlar s rayla belirler
| Bir grup element aras nda seccedilim yap lmas na izin verir
+ Elemandan bir veya daha ccedilok bulunabilir
Elemandan s f r veya 1 tane bulunabilir
Sembol olmamas o elementin bir kez goumlruumlnmesi gerekti ini bildirir
Oumlrnek goumlsterimde KULLANICI elementine ait alt element olan AD ouml esi birden fazla
de er alabilece ini goumlsterir TEL bildirimi ile kullan c ya ait di er bilgiler girilirken telefon
numaras
giri i eksik olarak kalabilece ini ve sonradan eklendi inde ise yeni kural
tan mlamas na gerek kalmadan etiket tan mlamas n n yap labilece ini bildirir
ltELEMENT KULLANICI (ADI+ TEL)gt
382234 DTD ccedilinde Nitelik Liste Bildirimleri
Nitelik bildirimleri element bildirimlerinden sonra goumlruumlnuumlr ve biraz daha karma k bir
yap ya sahiptir Bir elementin sahip oldu u oumlzellikler bir liste halinde belirtilebilir
Nitelik liste bildirimi a a daki yap yla goumlsterilir
ltATTLIST Element_adi Nitelik_adi Nitelik_tipi varsayilan_degergt
ltATTLIST DVD id CDATA REQUIREDgt
62
Kod parccedilas nda yaz lan varsayilan_deger niteli in gerekli olup olmad n belirtir
Nitelik tipleri Tablo 37 deki de erleri alabilir
Tablo 37 DTD ccedilindeki niteliklerin de er ve accedil klamalar
[73]
De er Accedil klamas
CDATA De er karakter verisi olmal
(en1|en2|) De er parantez iccedilindeki de erlerden birisi olmal
ID a unique identifier- benzersiz bir tan mlay c -kimlik
IDREF De er ba ka bir eleman n ID si olmal
IDREFS De er ba ka ID lerin listesi olmal
NMTOKEN De er geccedilerli XML ad olmal
NMTOKENS De er geccedilerli XML ad listesi olmal
ENTITY De er bir varl k olmal
ENTITIES De er bir varl k listesi olmal
NOTATION De er bir notasyon olmal
xml De er oumlnceden tan mlam bir XML de eri olmal
Varsay lan de er ise Tablo 38 deki de erleri alabilir
Tablo 38 Varsay lan de erler ve accedil klamalar
De er Accedil klama
deger Niteli in Default de eri
REQUIRED Nitelik de eri Eleman iccedilinde geccedilmek zorundad r
IMPLIED Nitelik de eri Eleman iccedilinde geccedilmek zorunda de ildir
FIXED value Nitelik de eri sabittir E er nitelik de eri belirtilirse default de eri
yazmak zorunludur
A a daki oumlrnekte URUN elementinin RENK niteli i seccedilimli olarak k rm z ye il ya da
mavi olas de erleri tan mlanm t r Varsay lan de eri ise k rm z olarak belirtilmi tir [73]
ltATTLIST URUN RENK (red|green|blue) redgt
63
382235 DTD ccedilinde Varl k (Entity) Bildirimleri
Varl k bildirimleri XML belgesinde kullan lan de i ik tuumlr ve biccedilimlerdeki verilerin
XML belgesine aktar lmas n sa lar Di er programlama dillerinde kullan lan moduumll ya da
makrolar gibi s kl kla kullan lan metin bloklar
varl k olarak tan mlanarak sayfan n istenilen
yerine kolayca eklenebilir Eklenen metin uumlzerindeki de i iklikler varl k bildirimiyle
duumlzenlenebilir [73]
Ayr ca d ar dan bir dosyay
varl k olarak tan mlayarak iccedilindeki veri XML belgesinde
kullan labilinir Bu veri metin olmak zorunda de ildir DTD bir varl k olarak tan mlamak iccedilin
a a daki sat r n kullan lmas
gerekmektedir [73]
ltENTITY varl k_ad varl k_degerigt
ltENTITY copyright Copyright 2009 Yayinevigt
Harici bir dosyadan al nacak bir varl k iccedilin soumlz dizimi ise a a daki gibidir
ltENTITY varl k_ad SYSTEM URIURLgt
ltENTITY tableOfContents SYSTEM entitiesdenemexmlgt
(Not URL = Uniform Resource Locator URI = Uniform Resource Identifier )
38224 XML emas
XML emas DTD lere benzer ekilde XML belgesinin yap s n ve bulundurabilece i
verilerin tuumlruumlnuuml tan mlamakta kullan l r XML emalar
xsd dosya uzant l d r ema XML
belgesinde kullan labilecek ouml eleri nitelikleri ve veri tuumlrlerinin yan s ra XML belgesinin soumlz
konusu XML emas iccedilin geccedilerli olmas n sa lamak amac yla uyulmas gereken yap y da
tan mlar [74]
XML emalar DTD yap lar na goumlre daha guumlccedilluuml bir yap ya sahiptir DTD iccedilerisinde
eleman iccedileri i string ve di er birkaccedil veri tipi ile s n rl d r XML ema integer floating point
say lar date time gibi daha geni bir veri tipi deste i sa lamaktad r XML ema ayr ca accedil k
iccedilerik modeli (open content model) ve isim uzay
(namespace integration) gibi ek oumlzellikler de
sunmaktad r XML ema belgeleri olu turulmas s ras nda XML soumlzdizimi kullan l r Bu DTD
lere goumlre ccedilok belirgin bir uumlstuumlnluumlk sa lar Ccediluumlnkuuml yeni bir soumlz dizimi ouml renilmesi yerine
XML in XML emaya oumlzel komutlar n n ouml renilmesi yeterli olur [75]
64
A a daki oumlrnek ema tan mlamas nda xs schema elementi ile ba layan bir koumlk ouml e
vard r
ltxml version=10 encoding=UTF-8gt
ltxsschema
xmlnsxs=httpwwww3org2001XMLSchemagt
ltxsschemagt
ema elementi iki tane oumlzelli e sahiptir
name
xmlns
ema iccedilin bir isim tan mlamas name oumlzelli i ile sa lan r xmlns oumlzelli inin ise oldukccedila
oumlnemli bir goumlrevi vard r Bu oumlzellik sayesinde oumlrne in Microsoft un schema belirtimlerini
kullanabilmesi iccedilin urnschemas-microsoft-comxml-data de erine ayarlanmas gerekir
A a daki oumlrnekte XML ema belgesi iccedilin name ve xmlns niteliklerinin basit kullan m
goumlsterilmektedir [66 75]
ltschema name=kutuphane xmlns= urnschemas-microsoft-comxml-datagt
lt - - ema iccedileri i buraya yaz l r- -gt
ltschemagt
Oumlrnek XML belgesi olu turma ba l alt nda verilen oumlrne in ema dosyas olan
denemexsd nin kodlar ve ekran goumlruumlntuumlsuuml ekil 323 deki gibidir
ltxml version=10 encoding=UTF-8gt ltxsschema xmlnsxs=httpwwww3org2001XMLSchemagt
ltxselement name=Kullanicilargt
ltxscomplexTypegt
ltxssequencegt
ltxselement ref=Kullanici minOccurs=0 maxOccurs=unboundedgt
ltxssequencegt
ltxscomplexTypegt
ltxselementgt
ltxselement name=Kullanicigt
ltxscomplexTypegt
ltxssequencegt
ltxselement name=adi type=xsstringgt
ltxselement name=soyadi type=xsstringgt
ltxselement name=eposta type=xsstringgt
ltxssequencegt
ltxsattribute name=id type=xsinteger use=requiredgt
65
ltxscomplexTypegt
ltxselementgt
ltxsschemagt
ekil 323 denemexsd nin ekran goumlruumlntuumlsuuml
3823 Belge Duuml uumlmleri
XML dokuumlman nlar ndaki belge duuml uumlmleri a a da incelenecektir
38231 Elementler
XML dokuumlmanlar ndan bahsederken etiket ve element terimleri kullan lmaktad r lk
ba ta birbirinin yerine kullan labilir gibi goumlruumlnse de asl nda farkl iki terimdir Element terimi
herhangi bir iccedilerikle birlikte etiketlerin accedil l p kapanmas olarak tan mlanabilir Etiket elementin
bir parccedilas d r Etiketler de kouml eli parantez accedil larak ba lan r ve sonunda kapat larak bitirilir
A a daki oumlrnek sat rda ltxyztgt etiketlerini iccedileren tam bir element goumlruumllmektedir
Accedil l etiketi Kapan etiketi
ltxyztgtXML de etiket ve element fark ltxyztgt
ccedilerik
Element
66
38232 Nitelikler
Her XML belgesi karakter verisi ve biccedilimlendirmeden olu ur Genellikle karakter verisi
ba lang ccedil ve biti etiketleri aras nda metinsel bilgi iccedilerir
XML etiketlerine bir ya da daha fazla nitelik tan mlanabilir
ccedilerik ya da
Nitelik ba ka etiketler
ltKullanici kullanici_id= 1 gt ltKullanicigt
Etiket sim De er
Accedil l etiketi Kapan etiketi
Element
38233 Metin
Accedil lan ve kapat lan tuumlm etiketlerin iccedileri ini olu turur CDATA gibi metin i aretlemesi
yap lmad kccedila tuumlm metin XML kural yap s na goumlre i lenecektir [66]
38234 CDATA Boumlluumlmuuml
CDATA XML yap s iccedilerisinde i lenmeyecek metinleri bloklar halinde i aretlemeye
yarar XML derleyici bu boumlluumlmde metin iccedilerisinde yer alan i aretleme ay raccedillar n ve etiketlerini
normal karakterler olarak alg lar CDATA yap s ltCDATA[ ile ba lar ve]] kouml eli parantezlerin
kapanmas yla sona erer
ltbaslikgtltCDATA[
]]ltbaslikgt
CDATA boumlluumlmleri Javascript gibi goumlmuumlluuml kodlar XML belgelerinde kullanabilir ve bu
boumlluumlmlere i leme ihtiyaccedil duyulmayan iccedilerik eklenebilir Oumlrne in bir uygulamada veritaban ndan
veri okumas ve i aretlemesi buumltuumln iccedileri in XML belgesine goumlmme bilgisini vermede
karakterler i lenirken accedil kccedila ayr lmas n n oumlnuumlne geccedilebilmek iccedilin CDATA boumlluumlmleri kullan l r
[66]
67
38235 Varl klar
Bir karakteri temsil eden sembol grubuna varl k denir Oumlrne in Ampersand i areti
yerine yani ve yerine kullan lan ampamp ya da bir karakterlik bo luk b rakmak iccedilin
nonbreaking space yerine ampnbsp semboluuml kullan l r
ltmatematikgt18 lt 36ltmatematikgt
Yukar daki kod sat r nda bu element i lenmeye ccedilal ld nda hata iletisi verecektir
Ccediluumlnkuuml 36 de erinin oumlnuumlndeki etiket accedilma i areti olarak alg lanacak ve kod sat r n n i leme
al nmas nda yanl l a neden olacakt r Bu hatay duumlzeltmek iccedilin kod sat r n n a a daki gibi
yaz lmas yeterli olacakt r
ltmatemetikgt18 amplt 36ltmatemetikgt
Tablo 39 da s k kullan lan karakterlerin varl k sembolleri goumlsterilmektedir
Tablo 39 XML Belgelerinde kullan lan varl k bildirimleri
Karakter Varl k
amp ampamp
ampapos
gt ampgt
lt amplt
ampquot
383 XML nin Soumlz Dizim Kurallar
XML iccedileri in i aretlenmesi iccedilin etiketleme dili kullan l r Bu etiketlemeler yap l rken
baz kurallar goumlz oumlnuumlnde bulundurulur imdi bu kurallar incelenecektir
1) XML dili buumlyuumlk kuumlccediluumlk harfe kar duyarl d r XML de kuumlccediluumlk harf kullan m esast r
Oumlrnek yaz m a a daki gibidir [76]
lttable WIDTH= 100 gt kullan m yanl t r
lttable width= 100 gt kullan m do rudur
68
2) Her etiket kapat lmal d r Oumlrne in ltkelimegt etiketini takip eden sat r sonuna ltkelimegt
etiketi de eklenmelidir
3) Dokuumlmanda buumltuumln elementleri iccedileren bir koumlk eleman olmas gerekir Oumlrnek yaz mda
oldu u gibi alt ouml eler duumlzenli bir yap da yaz lmal d r [76]
ltrootgt
ltchildgt lt childgt
ltsubchildgt lt subchildgt
lt rootgt
4) Etiketler belirlenirken bir element ba ka elementleri iccediline alacak ekilde tasarlanabilir
ccedilten d a do ru etiketlerin hepsi kapat lmal d r
ltbgtltigtBu metin koyu ve e ikltbgtltigt yanl kullan m
ltbgt ltigt Bu metin koyu ve e ik lt igt lt bgt do ru kullan m
5) XML elementleri oumlzel karakter verileri bo elementler CDATA ya da yorumlar
bar nd rabilir
6) Oumlznitelik de erleri t rnak iccediline al nm olmal d r Tek t rnak ya da ccedilift t rnak olabilir
lttable width=100gt kullan m yanl t r
lttable width= 100 gt kullan m do rudur
7) Element adlar harfler rakamlar tire alt ccedilizgi iki nokta i aretlerini ve noktalar
iccedilerebilir ki nokta i areti sadece namespace kullan m iccedilindir xml ile ba layan eleman
isimleri oumlnceden tan mlanm oumlzel isimlerdir [86]
ltkullanilabilirIsimlergt
ltisimgt
ltxslcopy-ofgt
ltUzun_bir_isimgt
ltNoktalarlaayrilmisbirisimgt
lth823323123-231-231gt
lt_23gt
ltkullanilabilirIsimlergt
8) Etiketleme yap l rken rakamla ba lamamas na dikkat edilmelidir Bo luk yer
almamal d r
69
384 XML Dokuumlmanlar n n leyi i ve Sunumu
XML i lemleri a accedil tabanl ve olay tabanl olmak uumlzere iki kategoriye ayr l r Verilerin
i lenmesinde XML parser yani ayr t r c kullan l r XML i lemciler genellikle XML ayr t r c
olarak da adland r l r A accedil tabanl ayr t r c lar DOM (Document Object Model) yakla m na
goumlre olay tabanl ayr t r c lar ise SAX (Simple API for XML) yakla m na goumlre veriyi ema
yap s ile birlikte XMLye oumlzguuml hiyerar ik yap da i ler lenen veriler uygulama ve
sorgulamalara haz r hale getirir [66 76]
Genellikle bir XML dokuumlman n XML formatl veri iccedilerik dosyas XSD (DTD yerine)
formatl ema dosyas ve XSL (CSS yerine) formatl stylesheet dosyas olmak uumlzere 3 dosyayla
tan mlanabilir Bu uumlccedil dosya tipi de XML destekli tuumlm sunucu ve veri tabanlar nda ccedilal t r labilir
Verinin yal n (native) olarak sakland veritaban youmlnetim sistemleri di er veritabanlar nda
kar la lan harici veri tipleri veya farkl format doumlnuuml uumlmlerine gerek duymad ndan sorgu
transfer ve entegrasyon i lemlerinin performanslar
oldukccedila yuumlksektir Ayr ca XML veritaban
youmlnetim sistemlerinde verinin yal n biccedilimde kendi iccedil format nda tutuluyor olmas n n bir
avantaj da eri imi kolayla t rmas d r Ba ka veritaban youmlnetim sistemi yakla mlar nda buna
benzer bir arama iccedilin karma k ccediloklu tablolar ara t r l r ve daha sonra XML verisine
doumlnuuml tuumlruumlluumlr Bu da i lem performans n n duuml mesine ve maliyet art r c ek uygulamalar
eklenmesine neden olur [66 76]
39 AJAX Prensipleri
AJAX yeni bir teknoloji olmas itibariyle henuumlz emekleme doumlnemindedir Bununla
birlikte birkaccedil Web tasar mc s bu yenili i ba a ccedil k lmas gereken bir sorun gibi alg lamaktad r
Bu sorun iyi bir AJAX Web uygulamas yapabilmek iccedilin s radan ya da koumltuuml bir uygulamaya
kar ne yap lmas gerekti i olarak tan mlanabilir Michael Mahemoff (wwwmahemoffcom)
bir yaz l m geli tirici ve kullan labilirlik uzman iyi Ajax uygulamalar iccedili birkaccedil temel ilke
belirlemi tir [37]
Minimal Trafik nternet trafi i internet uumlzerindeki veri ak d r Goumlnderilen ve al nan
mesajlar n miktar youmlnuuml web sitesine giren ziyaretccedililerin say s ziyaret ettikleri
sayfalar ccedilevrimiccedili trafi i olu turmaktad r AJAX uygulamalar nda amaccedil bu internet
trafi ini en alt seviyede tutmak iccedilin sunucudan muumlmkuumln olabildi i kadar az bilgi
goumlnderip almakt r Ayr ca bilgi ak nda gereksiz bilgilerin her seferinde goumlnderilip
al nmas n n oumlnuumlne geccedililmesiyle uygulamaya sa laml k kat l r
70
Kullan c etkile imli model Genellikle AJAX uygulamalar geleneksel Web
uygulamalar ndan farkl olarak de i ik kullan c etkile imli modeller sunar Web
standartlar ndaki t kla-bekle anlay na kar AJAX uygulamalar nda an nda suumlruumlkle
b rak ya da ccedilift t klamayla yak nla t rma gibi di er kullan c arayuumlz paradigmalar
vard r E er kullan c
etkile imli modeller seccedililirse kullan c
ne yapaca n bilir
Sade arayuumlz Yan p soumlnen sayfa boumlluumlmuuml ya da suumlrekli doumlnen animasyonlar gibi dikkat
da t c ve gereksiz sayfa elementlerinden kaccedil n l r Kullan c lar goumlze hitabeden
uyumlu ve sade sayfalar tercih etmektedir
Eri ilebilirlik nsanlar n ba lant h zlar ndan fiziksel engellerine ya ad uumllkenin
toplumsal yap s ndan ya l l a kadar birccedilok youmlnden eri ilebilirlik standartlar
incelenebilir Birincil ve ikincil kullan c lar n beklentilerine en uygun olacak AJAX
uygulamalar na eri im seccedilenekleri goumlz oumlnuumlnde bulundurulmal d r Oumlzel yaz l mlarla m
yoksa kullan lacak taray c oumlzellikleriyle mi adaptasyonun sa lanaca belirlenmelidir
Boumlylece yeni hedef kitleler de tamamen d ar da b rak lm olmayacakt r
Sayfan n tamam n indirilmesinden kaccedil nma Tetikleyici sayfa indirildikten sonra
tuumlm sunucu ileti imi AJAX motoru taraf ndan youmlnetilmektedir Boumlylece kuumlccediluumlk bilgi
al -veri leri iccedilin tuumlm sayfan n tekrar yuumlklenmesinin oumlnuumlne geccedililmi olur
lk kullan c AJAX uygulamalar nda tasar m kullan c lar n daha oumlnce
kar la mad klar bir biccedilimdedir Etkileyici efektler ve s k c olmayan bilgilendirici
reklamlarla genel kullan m durumlar n kolayca ba armaktad r
Buumltuumln bu ilkelerde bulunan ortak nokta kullan labilirliktir AJAX oumlncelikle kullan c lar
iccedilin web deneyimini geli tirmeye ccedilal rken arkas ndaki teknoloji sadece bunun iccedilin bir araccedilt r
Yukar daki ilkelere sad k kalarak AJAX uygulamalar oldukccedila faydal ve kullan l olacakt r
[37]
310 AJAX Kuumltuumlphaneleri ve Araccedillar
Kuumltuumlphaneler haz r fonksiyonlara kolayca eri im sa lar Ayr ca s k kullan lan var olan
kodlar tekrar yazarak zaman kaybedilmemesini sa lar A a da en ccedilok kullan lan AJAX
kuumltuumlphanelerine oumlrnekler verilmi tir
3101 Prototype
Prototype dinamik web uygulamalar yaratmak iccedilin kullanabilecek geli mi bir
kuumltuumlphanedir Accedil k kaynakl ve nesne tabanl kod kuumltuumlphanesidir Ajax iccedilin yaz lan
71
kuumltuumlphanelerin ilk oumlrneklerindendir ve di er haz r kuumltuumlphanelerin bir k sm prototypejs
kullanmaktad r [78]
3102 AJAX Gear Toolkit
AJAX olarak bilinen istemci tarafl tekni in buumltuumln avantajlar ndan faydalanmay
muumlmkuumln k lan bir araccedilt r XMLHttpRequest nesnelerini kullanarak internet taray c s n n
asenkron ccedila r yapmas n sa lar [78]
3103 AspNet Ajax
ASPNET AJAX ASPNET ile yap lan ve tuumlm nternet taray c lar nda ccedilal abilen
uygulamalar iccedilin Microsoft taraf ndan geli tirilen bir kuumltuumlphanedir Oumlnce Atlas daha sonra
ASPNET Ajax ad n alm t r ASPNET 20 ile kolay entegrasyon ASPNET 35 ile tam
entegrasyon sa lar Yeni nesil etkile imli arayuumlzler olu turmak iccedilin kullan l r [78]
3104 Dojo Toolkit
Accedil k kaynak kodlu bir javascript toolkit olup dhtml sorunlar n buumlyuumlk oumllccediluumlde ccediloumlzmuuml tuumlr
Arayuumlz programlama karma k kodlar n basite indirgenmesi toolkitin sa lad avantajlard r
Ayr ca dinamik web sitesi ya da ba ka ortamlar haz rlamay kolayla t ran ve sitenin daha
kullan l olmas n sa layan iccedilerikler sunar [78]
3105 MochiKit
Dreamweaver web uygulamalar iccedilin kullan lan ajax kuumltuumlphanelerinden birisidir E
zamanl olmayan davran lar iccedilin erteleme uygulamas n kulland ndan sunucuyla etkile im
halinde olan web sayfalar n n geli tirilmesinde tercih edilir [78]
3106 PHPLiveX
PHP ile yap lan uygulamalar iccedilin kullan lan bir kuumltuumlphanedir Versiyon 25 ile gelen
yenilikler ve optimizasyonlar kuumltuumlphanenin potansiyelini ciddi biccedilimde artt rm t r Di er php
tabanl kuumltuumlphaneler gibi php fonksiyonlar n javascript koduyla ccedila r r fakat di erlerine goumlre
daha az kodla kullan m sa lar [78]
72
3107 Sardalya (Sarmal Dinamik Altyap s )
Sardalya Dinamik AJAX Kuumltuumlphanesi DOM deste i olan tuumlm guumlncel taray c larda
ccedilal mak iccedilin tasarlanm bir AJAX Kuumltuumlphanesi dir Linux windows freebsd osx sun gibi
platformlarda ccedilal abilir Tuumlm taray c lardan ba ms z olarak ccedilal r ve kullan m s ras nda az
yer kaplar [78]
3108 Sajax
Sajax n accedil l m Simple Ajax Toolkit tir ASP ve PHP tabanl programlarda AJAX
uygulamalar geli tirmek iccedilin kullan lan bir kuumltuumlphanedir Buumltuumln sunucu tarafl platformlara
ccedila r goumlnderebilme yetene ine sahiptir [78]
3109 Solvent
AJAX uygulamalar n moduumller bir yap da gerccedilekle tiren farkl bir kuumltuumlphanedir
JavaScript ile yaz lm t r ve tuumlm taray c lardan ba ms z olarak ccedilal an bir AJAX uygulamas d r
Web uygulamalar n kuvvetlendirmek ve uygulamalar n geli tirme suumlrecini h zland rmak iccedilin
kullan l r [78]
31010 AjaxAC
AjaxAC accedil k kaynak kodlu php tabanl bir kuumltuumlphanedir AjaxAC ile varolan PHP
s n flar na ve MySQL veritaban na ek istek verilerini doumlnduumlrmek iccedilin geccedili oldukccedila kolayd r
[78]
31011 Xajax
Xajax Php JavaScript HTML XMLHttp ve XML kullanarak taray c ve sunucu
aras ndaki al veri i ve verileri goumlstermeyi gerccedilekle tirir Xajax ile geli tirilmi
uygulamalar sunucudaki php fonksiyonlar n ccedila rabilir ve sayfay yeniden yuumlklemeden
iccedileri ini guumlncelle tirebilir [78]
73
31012 Scriptaculous
Prototype tabanl bir js framework tuumlr Yap lan AJAX i lemleri prototype iccedilerisinde
bulunan nesneler ve fonksiyonlar ile yap l r [78]
311 AJAX Uygulamalar nda Kullan lan Di er Teknolojiler
AJAX istemci ile sunucu aras nda e zamanl olmayan ileti im sa layan bir teknolojiler
buumltuumlnuumlduumlr
3111 HTMLXHTML
stemci tarafl (client side) bir metin i aretleme dili olan XHTML (Extensible
HyperText Markup Language- Geli tirilebilir Metin aretleme Dili) dili XML soumlz dizimi ile
olu turulmu tur XHTML standart etiket ayarlar n tan mlarken spesifik bir yol kullan lmal d r
World Wide Web Consortium (W3C) duumlnyadaki Web geli tiriciler iccedilin olu turulmu ayn
standartla t r lm yakla m benimserler [66]
3112 CSS
XHTML de stil biccedilimlendirmesini sa lar Yuumlzlerce sayfan n tek merkezden
youmlnetilmesini sa lar Geleneksel youmlntemlerde her sayfan n biccedilimlendirme ayarlar birccedilok kod
sat r aras ndan stillerle ilgili olanlar n seccedililip duumlzeltilmesiyle yap l r CSS kullan lan
youmlntemlerde a a daki gibi bir kod parccedilas
tuumlm sayfalardaki stil ayarlar n n yap lmas n tek
merkeze ba lam t r
kabuk
width760px
background-colorEE7700
spot
colorEE7700
font-familyVerdana Comic Sans MS Helvetica sans-serif
74
AJAX ve CSS birlikte kullan larak masauumlstuuml ccedilal t r labilir EXE yaz l mlar ile ayn
h zda ve performansta ccedilal an web uygulamalar geli tirmek muumlmkuumln hale gelmi tir Google
belgelerinde Gmail bunun en buumlyuumlk oumlrne idir
Web sayfalar ndaki tuumlm iccedilerik biccedilimlendirmeler resimler vb istemciye
HTMLXHTML kodlar halinde goumlnderilir Bu kodlar sade ve basittir Bu da oldukccedila fazla
kullan c ya hitap edebilen web siteleri iccedilin oumlnemlidir Ccediluumlnkuuml internete ba land nda k s tl bir
bant geni li ine sahip kullan c lar daha az say da karakter iccedileren sayfalar daha k sa suumlrede
indirebilecektir Boumlylece kullan c lar toplam suumlrede daha fazla sayfa ziyaret edecektir
Sayfalar n h zl yuumlklenmesi kullan c lar n o siteler hakk ndaki memnuniyetini art racakt r
Ayr ca bu durum yaz c dostu sayfalar n olu turulmas nda etkilidir [79]
3113 XSLT
XSLT (Extensible Stylesheet Language Transformations Geni letilebilir
Biccedilimlendirme Dili Doumlnuuml uumlmleri) XML tabanl doumlkuumlmanlar n orijinal halini de i tirmeden
yeni bir dokuumlman olu turmak iccedilin kullan lan bir dildir [80] Oumlrne in bir XML doumlkuumlman n
XHTML ye doumlnuuml tuumlrmek iccedilin XSL doumlnuuml uumlmuuml (transformation) kullan labilir XMLnin iccedilindeki
hangi data nas l doumlnuuml tuumlruumllecek sorular ndan hangi sorusunun cevab XPath ile belirtilirken
nas l sorusunun cevab ise yine XML ile belirtilir [81]
75
4 FLEX
Flex MXML ActionScript 30 ve Flex s n f kuumltuumlphanelerinin birle iminden olu an
sunucu-istemci tabanl yeni bir teknolojidir Ayr ca Flex Flash uygulamalar ile derlenebilen
XML tabanl bir dil olarakta tan mlanabilir [84] Flex in ccedilal ma sistemati inin i lem ak
emas ekil 41 de goumlsterilmektedir
ekil 41 Flex uygulamalar n n i lem ak emas
ekil 41 de sol alt kouml eden sa uumlst kouml eye do ru i lem ak emas takip edildi inde
Flex Builder 3 ile geli tirlen appmxml uygulamas MXML derleyicide ccedilal t r ld nda bir swf
dosyas uumlretmektedir Ayr ca uumlretilen swf dosyas n n sunucu uumlzerinde test edilebilmesi iccedilin
birde html uzant l dosya olu turulur Flex in en oumlnemli oumlzelli i uumlretilen son uumlruumlnuumln swf
format nda olmas d r Ayr ca olay tutucu komut dizelerinin kolay kullan m
yaz l m n
olu turulmas nda Flex program n tercih nedeni olmas n sa lam t r
Adobereg Flexreg 3 yayg n olarak kullan lan taray c lar masauumlstleri ve i letim
sistemlerinde kolayl kla etkileyici web uygulamalar olu turmaya ve bak mlar n yapmaya
youmlnelik verimlili i yuumlksek bir programd r Accedil k kaynak (open source) altyap s na sahiptir
Eclipse tabanl bir plugin kuumlmesidir
Adobe firmas taraf ndan Flex Builder 3 Pro lisans
herhangi bir e itim kurumuna
ouml renci e itmen ya da ccedilal an olarak ba l olduklar n belgeleyenlere tamamen uumlcretsiz olarak
verilmektedir Kurulum tamamland ktan sonra ilk accedil l ekran ekil 42 de goumlsterildi i gibidir
[83]
76
ekil 42 Flex arayuumlzuuml
41 Adobereg Flexreg 3 Kurulumu ccedilin Gereken Minimum Sistem Gereksinimleri
Uygulama gerccedilekle tirmek iccedilin farkl i letim sistemleri iccedilin gerekli sistem
gereksinimleri a a da belirtilmi tir
411 Windows ccedilin Flex Builder 3 (Standart ve Profesyonel)
Flex in Windows kurulumu iccedilin gerekli minimum sistem gereksinimleri a a da
goumlsterilmektedir [83]
Intelreg Pentiumreg 4 i lemci
Microsoftreg Windowsreg XP Service Pack 2 veya Windows Vistareg Home (Premium
veya Basic) Business veya Ultimate
1 GB RAM (2 GB oumlnerilir)
500 MB kullan labilir sabit disk alan (eklenti yap land rmas iccedilin ek 500 MB gerekir)
Java Virtual Machine Sun JRE 142 Sun JRE 15 (dacirchildir) IBMreg JRE 15 veya
Sun JRE 16
Eklenti yap land rmas iccedilin Eclipse 322 33 ve 34 (Eclipse 33 Windows Vista iccedilin
oumlnerilir)
Adobe Flashreg Player 9 yaz l m
BEA Workshop 101
77
IBM Rational Software Architect 7003 (Yaln zca Eclipse 33 eklenti yap land rmas )
412 Macintosh ccedilin Flex Bu lder 3 (Standart ve Profesyonel)
Macintosh bilgisayarlar iccedilin gerekli minimum sistem gereksinimleridir [83]
PowerPCreg G4 125 GHz veya Intel i lemci
Mac OS X v1047 10410 veya 105
1 GB RAM (2 GB oumlnerilir)
500 MB kullan labilir sabit disk alan
Java Virtual Machine Appledan JRE 15 veya JRE 16
Eclipse 322 33 ve 34 (eklenti yap land rmas iccedilin)
Adobe Flash Player 9 yaz l m
78
5 CcedilEVR M Ccedil KATALOG TASARIMI F rat Uumlniversitesi Oumlrne i
AJAX teknolojisi AdobeMacromedia firmas n n geli tirdi i Flex program
ve
bile enleri kullan larak F rat Uumlniversitesinin 2009 ccedilevrimiccedili katalog ccedilal mas
herhangi bir
teknik bilgi gerektirmeden guumlncellenebilen alt yap s yla gerccedilekle tirilmi tir Kullan c arayuumlzuuml
olu turulurken XML tabanl bir gramer yap s
ve Flex program
kullan lm t r Bu tez
ccedilal mas nda sunucu olarak WampServer 20 kullan lm t r Katalog uygulamas n n kaynak
kodlar na ek boumlluumlmuumlnden bak labilir
AJAX teknolojisiyle ortaya ccedil kmaya ba layan ccedilevrimiccedili bro uumlrler ve kataloglar
internetteki Web uygulamalar uumlzerinde ccedilevrimiccedili hedeflerin oumlnemli bir boumlluumlmuumlne hacirckim
olmaktad r [37] Bu tez ccedilal mas da buna oumlrnek te kil etmektedir
Ccedilal man n olu um haritas na literatuumlr taramas yla ba lanm t r Bir sonraki ad mda
haz rlanacak olan program n oumlzellikleri belirlendi Bu a amadan sonra yaz l m iccedilin kullan lacak
program n seccedilimi yap ld Yaz l m algoritmas planlan p ekil 51 deki kodlama algoritmas
olu turulmu tur Yaz l m test edildi inde olu an hatalar giderilmi tir Ccedilal man n sayfa tasar m
yap larak son ekli verilmi tir
79
ekil 51 Kodlama algoritmas
Ba la
Harici verilerin XML dosyas ndan okunmas iccedilin HttpService s n f tan mland
De i ken tan mlamalar
Flex s n flar eklendi
Uygulamada kullan lacak resim boyutland rmas iccedilin maskeleme yap ld
Sunucu ile taray c ileti iminde AJAX scriptler kullan ld
Tuumlm sayfalar ekran goumlruumlntuumlsuuml iccedilin uygulama boyutland rmas yap ld
Zoom oumlzelli i iccedilin etiket tan mlamas ve buumlyuumltuumllmuuml sayfa goumlruumlntuumlsuuml iccedilin goumlruumlnuumlm
ayarlar fonksiyonu yaz ld
Navigasyon duuml meleri olu turuldu
XML format na uygun duuml uumlmler olu turuldu
Sayfa tasar m yap ld
Dur
A a daki kod sat rlar yla katalog ccedilal mas n n uygulama dosyas olan catamxml
dosyas na Flex iccedilinde ccedilal ma youmlntemlerini belirleyen faydal
s n flar dacirchil edilmi tir
lt[CDATA[
import mxutilsStringUtil
import mxrpcsoapLoadEvent
import mxcontrolsAlert
import mxrpceventsFaultEvent
import qscontrolsFlexBook
import qscontrolsflexBookClassesFlexBookPage
import qscontrolsflexBookClassesFlexBookEvent
import qscontrolsflexBookClassesWBookPageImpl
import qscachingContentCache
import mxrpceventsResultEvent
import mxrpchttpHTTPService
import mxcoreUIComponent
import mxmanagersPopUpManager
import compResimSec
import Kullan
import mxcoreScrollPolicy
import mxcollectionsArrayCollection
XML tan mlamalar diziler sunucu ba lant lar ve zoom i lemleri iccedilin gerekli de i ken
tan mlamalar a a daki kod sat rlar yla yap lm t r
private var aXML
[Bindable]
private var resimlerArrayCollection
private var dataSetHTTPService
private var resimdiziArray=new Array()
private var zoomYapBoolean=false
Katalo un local sunucu uumlzerinde ccedilal t r labilmesi iccedilin kaynak dosyas
Wamp kurulumu
sonras nda olu an www klasoumlruuml iccediline yerle tirilir E-katalog resimleri dinamik olarak data
dizinindeki imagesxml dosyas nda ccedilekilmektedir Katalog resimlerini de i tirmek iccedilin bu
dosyadaki xml duuml uumlmlerinin de i tirilmesi yeterlidir De i iklik yap lacak duuml uumlm oumlrne i
a a da goumlsterilmektedir
81
ltimage source=images2jpg thumb=images2jpg zoom=images2jpggt
Yukardaki sat rdaki duuml uumlmleri accedil klamak gerekirse source duuml uumlmuumlnde katalogda
goumlruumlnecek resim thumb duuml uumlmuumlnde e er as l resim (source) resmi yuumlklenene kadar ba ka bir
resim goumlruumlnmesi isteniyorsa o resmin kayna goumlsterilir Zoom duuml uumlmuuml ise sayfaya zoom
yap lmas esnas nda goumlruumlnecek resmin kayna n goumlsterir
Yukardaki 3 duuml uumlmden thumb duuml uumlmuuml iste e ba l olarak kullan l r Zoom
duuml uumlmuumlndeki resim as l resmin 100 buumlyuumlk hali olmal d r
ekil 52 Katalo un ilk sayfas n n ekran goumlruumlntuumlsuuml
E-katalog sayfalar n boyutunu kataloghtmlde tan ml olan object nesnesinin geni lik ve
yuumlkseklik oumlzelliklerinden almaktad r ekil 52 nin kaynak kodu a a da verilmi tir
ltscript src=ScriptsAC_RunActiveContentjs type=textjavascriptgtltscriptgt
ltscript type=textjavascriptgt
AC_FL_RunContent( idkatalogwidth894height653codebasehttpfpdownloadm
acromediacomgetflashplayercurrentswflashcabmoviekatalogqualityhighbgcolor
000000allowscriptaccesssameDomain ) end AC code
ltscriptgtltnoscriptgtltobject classid=clsidD27CDB6E-AE6D-11cf-96B8-444553540000
id=katalog width=894 height=653
82
codebase=httpfpdownloadmacromediacomgetflashplayercurrentswflashcabgt
ltparam name=movie value=katalogswf gt
ltparam name=quality value=high gt
ltparam name=bgcolor value=000000 gt
ltparam name=allowScriptAccess value=sameDomain gt
ltembed src=katalogswf quality=high bgcolor=000000
width=984 height=653 name=katalog align=middle
play=true
loop=false
quality=high
allowScriptAccess=sameDomain
type=applicationx-shockwave-flash
pluginspage=httpwwwadobecomgogetflashplayergt
ltembedgt
ltobjectgtltnoscriptgt
ekil 53 Katalo un 23 sayfa goumlruumlntuumlsuuml
Oumlrne in ekil 53 te kullan lan resimlerin width=447 height=613 boyutunda ise
resimlerin sayfada goumlruumlnmesi iccedilin html etiketindeki width oumlzelli ini 447x2=984 ve height
83
oumlzelli ini 613+40=653 eklinde duumlzenlenmesi gereklidir Yani width=resim geni li i X 2 ve
height=resim yuumlksekli i + 40 olmal d r
ekil 54 Katalo un sayfa ccedilevirme efektli goumlruumlntuumlsuuml
ekil 54 te goumlruumllen e-katalogun sayfay ccedilevirme oumlzelli i ile h z gibi i lemleri stylecss
dosyas nda tutulmaktad r Gerekli olmad kccedila bu dosya uumlzerinde de i iklik yap lmamas tavsiye
edilir Olu turulan stylecss dosyas n n kodlar a a da goumlsterilmi tir
FlexBook
color 000000
textRollOverColor 000000
border-thickness 0
border-style none
page-slope06
active-grab-area page
page-shadow-strength 1
curve-shadow-strength 1
auto-turn-duration 1500
Application
color F1F1CC
textRollOverColor FFFFFF
84
backgroundGradientColors FFFFFF FFFFFF
backgroundColor FFFFFF
SuperImage
border-thickness 0
border-style none
ekil 55 de goumlruumllen navigasyon ccedilubu unda 1 numara ile goumlsterilen alan istenilen
sayfaya konumland rma yap labilmesi iccedilin sayfa numaras n n girildi i kutudur 2 numara ile
goumlsterilen alan Sayfaya Git duuml mesine t kland nda istenilen sayfan n accedil lmas n sa layan
duuml medir 3 ve 4 numara ile goumlsterilen duuml meler Geri leri duuml meleridir Fare kontroluuml
olmadan da sayfalar aras nda gezinti yap labilmesini sa lar 5 numara ile goumlsterilen alan Tuumlm
Sayfalar duuml mesidir
ekil 55 Katalo un navigasyon ccedilubu u
Tuumlm sayfalar n accedil l r pencere iccedilerisinde goumlruumlntuumllenmesini sa layan fonksiyon a a daki
gibidir Kullanmxml sayfas nda ccedilekilen resimler pencerede goumlster komutuyla geni lik ve
yuumlksekli i ayarlan r Seccedililen nesneler customMoveend() komutuyla ekrana ta n r
private function tumsayfalar()void
Kullanshow_window(thisfalseapplicationwidth-10(applicationheight-60)2)
customMoveend()
customMoveplay()
ekil 56 da goumlruumllduuml uuml uumlzere ccedilevrimiccedili katalogdaki yuumlkluuml olan tuumlm sayfalar yukar dan
accedil lan bir pencere yard m yla goumlsterilir Tuumlm sayfalar
goumlster duuml mesi t kland nda goumlruumlnecek
resimler ile ilgi ayarlar ise data klasoumlruumlndeki onizlexml dosyas ndan ayarlanabilir Xml nin
esnek etiketleme yap s sayesinde onizlexml dosyas nda olu turulan ltsayfalargt etiketi aras na
a a daki kod sat rlar ccedilo alt larak olu turulmu tur
85
ltsayfagt
ltresim1gtimages2jpgltresim1gt
ltresim2gtimages3jpgltresim2gt
ltgitgt2ltgitgt
ltpagesgt23ltpagesgt
ltsayfagt
ekil 56 Tuumlm Sayfalar duuml mesi t kland ndaki ekran goumlruumlntuumlsuuml
Son olarak 6 numaral duuml me t kland nda + ve - konumlar n alarak buumlyuumlteccedil
oumlzelli i kullan l r ekil 57 de goumlsterildi i gibi imleccedil sayfa uumlzerinde gezdirilirken bu alan
uumlzerinde zoom yap larak yan sayfada buumlyuumltuumllmuuml goumlruumlntuuml sa lan r
86
ekil 57 Zoom oumlzelli i
Zoom oumlzelli inde resimler uumlzerindeki geni lik ve yuumlkseklik de erleri iccedilin if else blok
yap s kullan larak maskeleme fonksiyonu yaz lm t r Maskeleme fonksiyonu a a daki kod
sat rlar nda goumlsterilmektedir Fare nin x-y koordinatlar nda alaca de erlere goumlre fare nin
buumlyuumltuumllecek alan uumlzerinde gezinmesiyle yan sayfada buumlyuumltuumllmuuml goumlruumlntuuml elde edilmi tir
private function maskele(eMouseEvent)void if(zoomYap) if((mouseXgt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) )
maskex=0
img2visible=false img1visible=true img1x=(applicationwidth2)-mouseX img1y=-1mouseY else if((mouseXlt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) ) maskex=applicationwidth2 img1visible=false img2visible=true img2x=-1mouseX img2y=-1mouseY
Sayfa goumlruumlntuumllerinin maskelenmesinden sonra resimlerin kaynak dosyadan ccedilekilerek
ekrana buumlyuumltuumllmuuml hallerinin yans t lmas iccedilin a a daki fonksiyon olu turulmu tur
87
private function zoom()void
if(zoomerlabel==+) zoomerlabel=- if(img2source=aimage[bookcurrentPageIndex2]zoom) yuklemevisible=true
img2addEventListener(EventCOMPLETEbuyuk2_yuklendi) img2source=aimage[bookcurrentPageIndex2]zoom
if(aimagelength()gtbookcurrentPageIndex2+1) img1addEventListener(EventCOMPLETEbuyuk1_yuklendi)
img1source=aimage[bookcurrentPageIndex2+1]zoom
zoomYap=true else if(zoomerlabel==-)
zoomerlabel=+
setGorunum()
private function setGorunum()void zoomYap=false zoomerlabel=+ img1visible=false img2visible=false
88
6 SONUCcedil
Web 20 ak m ve zengin internet uygulamalar guumlnuumlmuumlz popuumller konular ndand r Bu
nedenle tez ccedilal mas
bu amaca youmlnelik olarak son teknolojiler kullan larak geli tirilmi tir
AJAX teknolojisi kullan larak kullan c n n istekleriyle sayfan n tamamen yenilenmeden
ilgili i lemin yuumlruumltuumllebilmesi sa lanmaktad r Geli tirilen sistem ccedilapraz taray c deste ine sahip
esnek ve kolay kullan labilir bir yap ya sahip oldu undan herhangi bir programlama bilgisine
sahip olmadan ki ilerin istenilen de i iklikleri yap labilece i bir alt yap ya sahiptir Bu ccedilal ma
nda en yenilikccedili internet yaz l mlar konusunda uygulama yapmak isteyen yaz l m
uzmanlar na kaynak te kil edecek bir ccedilal ma gerccedilekle tirilmi tir Yaz l m geli tiricileri ve
yaz l m mimarlar AJAX Flash Flex Appletler ve di er teknolojileri uygulamalar na kolayca
entegre edebilirler
Bu tez ccedilal mas kapsam nda Web de Ajax Tekni inin Bant Geni lik Optimizasyonuna
Etkisi ba l kl bir makale haz rlanm t r [85] Bu makalede Web Performance Suite 355941
program yla AJAX n performans testi yap lm t r Bu oumllccediluumlmler sonucunda elde edilen de erler
goumlstermi tir ki bir ebeke uumlzerinden goumlnderilecek sinyalin en duuml uumlk ve en yuumlksek frekanslar
aras nda gereksiz yere kullan lan aral n optime edilmesinde AJAX etkili bir youmlntemdir
AJAX n ccedilal ma prensibi sayesinde uygulamalar en iyi performansla gerccedilekle tirilir
AJAX teknolojisinin hala geli imi devam etmekte oldu undan baz eksik yanlar da
bulunmaktad r Oumlrne in taray c
uumlzerindeki Geri
fonksiyonu bazen beklendi i gibi
ccedilal mayabilir Dinamik olarak olu turulan sayfalar taray c n n oumlnceden i ledi i sayfalar
youmlneten mekanizmalar na kendini otomatik olarak kaydetmez bu yuumlzden taray c n n Geri
tu una bas ld nda istenen sayfa elde edilemeyebilir [86] Ba ka bir dezavantaj ise AJAX ile
olu turulan iccedileri in kodlar kaynak kodlar k sm nda goumlruumllememektedir Ayn zamanda Google
ve Yahoo gibi arama motorlar n n Web sayfalar na goumlnderdi i robot yaz l mlar da bu kodlar
goumlrememektedir Dolay s yla tamamen AJAX ile olu turulan iccedilerik arama motorlar n n sonuccedil
sayfalar nda listelenmezler Guumlnuumlmuumlzde yap lan Web sayfas n n arama motorlar nda
goumlruumlntuumllenmesi oldukccedila oumlnemlidir Fakat bir Web uygulamas ziyaretccedililer hakk nda oumlnemli
ki isel bilgilere sahipse bu bilgilerin arama motorlar nda herkes taraf ndan goumlruumlntuumllenmesini
sa lamas bir avantaja doumlnuuml uumlr [87] AJAX yerinde ve do ru bir ekilde kullan ld nda
uygulamalarda performans art n sa lar
Bu tez ccedilal mas nda Web 20 ak m n n ortaya ccedil k nedenleri ve RIA konseptine
duyulan ihtiyac n temeli irdelenmi tir Web 20 ak m nda oumlne ccedil kan uygulamalar ve ccedilal ma
sistematikleri incelenmi tir Oumlne ccedil kan bu uygulamalar n site tasar m nda dikkat ccedileken
89
oumlzelliklerine de inilmi tir AJAX teknolojisini olu turan bile enler incelenmi tir Bu inceleme
ve ara t rma sonucunda zengin internet uygulamalar na oumlrnek te kil edecek Web 20 ak m n n
ccedilekirde i olan AJAX teknolojisi kullan larak F rat Uumlniversitesi iccedilin ccedilevrimiccedili bir katalog
tasarlanm t r Bu tasar mda flexBook flexbookpage landscape wrapper zoomer gibi ek
bile enler kullan lm t r Navigasyon paneli tasarlanm t r Olu turulan tasar mda yerli ve
yabanc literatuumlr taramas yap larak emsallerindeki kullan l oumlzellikler projeye dahil edilmi tir
Projenin geli tirilmesi s ras nda izlenen ad mlar resimlenerek ortaya bir yol haritas ccedil kar lm t r
61 Oumlneriler
Bu tez ccedilal mas esas al narak ileride bu uygulamalar mobil cihazlar arac l yla
kullan labilirli i uumlzerine ara t rmalar suumlrduumlruumllebilir AJAX n uumlstuumln oumlzellikleri sayesinde Web
uumlzerinden yay nc l k ve mobil ileti im alanlar farkl bir boyut kazanm t r Birccedilok irket art k
ta nabilir cihazlar iccedilin Web 20 uygulamalar n AJAX la optimize etmeye ba lam t r Yeni bir
teknoloji olan AJAX la ta nabilir cihazlardaki performans bellek youmlnetimi s n rl tu giri i
gibi sorunlar n uumlstesinden gelinmesi hedeflenmelidir
AJAX kullan larak IDE (Integrated Development Environment) entegrasyonu Eclipse
iccedilin ba lant lar yaz labilir veya yap m servisi arac l yla do rudan IDE den yap m paketleri
geli tirilebilir Guumlnuumlmuumlzde oldukccedila popuumller olan accedil k kaynak kodlu yaz l m geli tirme
ortamlar nda entegre uygulamalar geli tirilebilir
Kullan c Arabirimi aretleme Beti i (User Interface Markup Language) s n f na dacirchil
edilecek gelece in en popuumller web tabanl teknolojilerinden biridir Flex geli tiricileri Adobe
Flex Builder - IDE ortam nda LiveCycle Data Services Java Coldfusion ASPNET JSP PHP
gibi popuumller web programlama dilleri yard m yla etkile imli ve guumlvenli web tabanl projeler
geli tirilebilir [82]
90
KAYNAKLAR
1 nternet Web 20 httptrwikipediaorgwikiWeb_20 Eri im tarihi 03092008
2 Oumlzer Z Web Teknolojileri ve AJAX Seminer Ccedilal mas Fen Bilimleri Enstituumlsuuml sf2
2007
3 nternet Web 20 Nedir wwworeillynetcompubaoreillytimnews20050930what-is-
web-20html Eri im tarihi 04102008
4 nternet httpravenyoungspaceslivecomblogcns17376F4C11A91E0E3717entry
Eri im tarihi 03092008
5 Mcluhan M Povers B R Ccedileviren Bahar Oumlcal Duumlzgoumlren Global Koumly 21 Yuumlzy lda
Yeryuumlzuuml Ya am nda ve Medyada Meydana Gelecek Doumlnuuml uumlmler Scala Yay nc l k 2001
6 nternet RIA konsepti httpwwwademaktepecomGunlukDetayaspxId=122 Eri im
Tarihi 26062008
7 Onat F A man Ouml K l ccedil A Sosyal A Sitelerinin Reklam Ve Halkla li kiler Ortamlar
Olarak De erlendirilmesi Sayfalar 3-6 2008
8 nternet httpi8tinypiccom6kymb0kgif Eri im tarihi 11072008
9 nternet DFA httpwwwdoubleclickcomproductsdfaindexaspx Eri im tarihi
14022009
10 nternet Adsensecom
httpswwwgooglecomadsensesupportbinanswerpyanswer=9712amptopic=13488 Eri im
tarihi 15112008
11 nternet DoubleClickcom wwwdoubleclickcom Eri im 13102008
12 nternet Adsense ho geldiniz wwwgooglecomadsense Eri im 18112008
13 nternet Flicker Tan m httptrwikipediaorgwikiFlickr Eri im tarihi 09032009
14 nternet Flicker Foto raf Payla m Sitesi httpwwwflickrcom Eri im 18022009
15 nternet BitTorent httptrwikipediaorgwikiBitTorrent Eri im tarihi 05012009
16 nternet Bittorent kulan m rehberi httpwwwbittorrentcombtusersguidesbeginners-
guide Eri im tarihi 05012009
17 nternet Bittorent kullan m k lavuzu httpwwwshukkocombittorrent_kilavuzu Eri im
tarihi 05012009
18 nternet Bittorent ccedilal ma mant httpwwwforumelbizbittorent-nedirgne-ise-
yarargresimli-detayli-super-anlatim-
t12836htmls=17f7b3147d97799d31c32b09e87d43e4ampamp Eri im tarihi 05012009
19 nternet Soumlzluumlk
91
httpwwwparliamentvicgovauSARCE-DemocracyFinal_ReportGlossaryhtm Eri im
tarihi 05012009
20 FU F LIU L WANG L Empirical Analysis of Online Social Networks in the Age of
Web 20 2007 Physica A Statistical Mechanics and its Applications Volume 387 Issues 2-3
Sayfalar 675-684
21 nternet Facebook httptrwikipediaorgwikiFacebook Eri im tarihi 06012009
22 nternet Facebook makale httpturkinternetcomhaberyazigosterphp3yaziid=22787
Eri im tarihi 06012009
23 nternet Facebook istatistiksel bilgiler
httpwwwinsidefacebookcom20090107facebook-growth-continuing-surpasses-150-
million-monthly-active-users Eri im tarihi 06012009
24 nternet Peter Thiel Facebook haberleri
httpwwwbusinessweekcomtechnologycontentmar2009tc2009031_743025htm Eri im
tarihi 06012009
25 nternet Blog httptrwikipediaorgwikiBlog Eri im tarihi 13022009
26 nternet Technorati httptechnoratimediacom Eri im tarihi 13022009
27 nternet Blog ara t rmas httpwwwmmistanbulcommakaletitlebloglarin-satin-alma-
kararlarina-etkisi-uzerine-bir-arastirma Eri im tarihi 13022009
28 nternet Wiki nedir httpyunushacettepeedutr~b0343579baglantilerwikinedirhtm
Eri im tarihi 13022009
29 nternet nternette wikinin yeri
httpogrencihacettepeedutr~besstindexphp20080603internette-wikinin-yeri Eri im
tarihi 14022009
30 Bergstedt S Wiegreffe S Wittmann J Moller D Content Management Systems and e-
Learning-Systems
A Symbiosis Proceedings of the The 3rd IEEE International Conference
on Advanced Learning Technologies (ICALT 03)
31 nternet ccedilerik Youmlnetim Sistemleri
httptrwikipediaorgwikiC4B0C3A7erik_yC3B6netim_sistemi Eri im tarihi
17022009
32 nternet ccedilerik Youmlnetim Sistemleri httpwwwmsxlabsorgforuminternet-bilgisayar-
dunyasi22262-icerik-yonetim-sistemi-cms-content-management-systemhtml Eri im tarihi
17022009
33 nternet Web 20 Tasar m Araccedillar httpwwweburhancomhazir-web-20-tasarim-
araclari Eri im tarihi 06022009
92
34 nternet Tasar m rehberi httpwwwhasanyalcincomweb-20-tasarim-rehberi-yansima-
ikon-ve-flaslarref=GuzelsTV Eri im tarihi 06022009
35 nternet AJAX kaynak makalesi
httpadaptivepathcompublicationsessaysarchives000385php Eri im tarihi 06022009
36 Keith J Bulletproof Ajax New Riders yay nc l k Sayfa 3 2007
37 Zakas N C McPeak J Fawcett J Professional Ajax 2nd Edition Wiley Publishing Inc
Sayfalar 5-18 2007
38 Gehtland J Galbraith B Almaer D Pragmatic Ajax A Web 20 Primer The Pragmatic
Programmers LLC sf1 2005
39 Babin L Beginning Ajax with PHP From Novice to Professional Apress Yay nc l k
Sayfa 6 2007
40 Crane D B beault B Sonneveld J Goddard T Gray C Venkataraman R Ve Walker J
Ajax in Practice Manning Publications Co Sayfalar 56 2007
41 Eichorn J Understanding AJAX Using JavaScript to Create Rich Internet Applications
August 11 2006 Sayfalar5-50
42 Ballard P SAMS Teach Yourself Ajax in 10 Minutes Sayfalar 6-78 28 Nisan 2006
43 nternet httpwwwipucuwebtraspders17php Eri im tarihi
44 Ullman C Dykes L Beginnig AJAX Wiley Publishing Inc Sayfa 44-100 2007
45 Zakas N C McPeak J Fawcett J Professional Ajax Wrox Press Chapter 2 Ajax
Basics Ajax Communication Techniques 2006
46 nternet Cross-Browser (Ccedilapraz Taray c Deste i) httpblogceyhunaksancomcross-
browser-capraz-tarayici-destegi Eri im 11032009
47 nternet
httpwwwyazgelistirnetviewtopicphpp=160ampsid=a49d3c26dd8e14e02e65bb222d6bcc39
Eri im 31032009
48 Jacobi J Fallows J R Pro JSF and Ajax Building Rich Internet Components Apress
Sayfa 175 2006
49 Schutta N T Asleson R Pro Ajax and Java Apress Sayfa 10 2006
50 Lauriat S M Ajax Architecture and Best Practices Pearson Education Inc Sayfa 25
2008
51 Powers S Adding Ajax OReilly yay nc l k June 01 2007
52 nternet Asenkron ve Senkron Meselesi httpAJAX-trcomasenkron-ve-senkron-meselesi
Eri im tarihi 02112008
53 Holzner S Ajax For Dummies Wiley Publishing Inc sf 40 2006
93
54 nternet httpwwwecma-internationalorgpublicationsfilesECMA-STEcma-262pdf
Eri im tarihi 06032009
55 Darie C Brinzarea B Chereche -To a F Bucica M AJAX and PHP Building
Responsive Web Applications Packt Publishing Sayfa42 2006
56 Olson S D Ajax on Java OReilly Yay nc l k Chapter 2 February 23 2007
57 nternet httpiibferciyesedutrggwebjavascriptpdf Eri im tarihi 06032009
58 nternet httpwwwmutasyonnetkitaplarasp hakk oumlcal javascript ders notu sf8 Eri im
tarihi 06032009
59 nternet httpwwwbilgisayarogrencomjava5doc Eri im tarihi 06032009
60 Asleson R Schutta N T Foundations of Ajax 2006 sf29
61 Wells C Securing Ajax Applications O Reilly Media Inc sf86 July 2006
62 nternet httpwwww3schoolscomdomdom_introasp Eri im tarihi 19032009
63 nternet httpwwww3orgTRREC-DOM-Level-1introductionhtml Eri im tarihi
19032009
64 nternet httpwwwberkerpeksagcomblogdom-document-object-model-belge-nesne-
modeli Eri im tarihi 19032009
65 nternet httpwwwrssnedircomxml_nedirphp Eri im tarihi 19032009
66 Jacobs S Beginning XML with DOM and Ajax From Novice to Professional Apress
Yay nc l k sf2631 2006
67 nternet
httpwwwcclubmetuedutrnenedirXML+(Extensible+Markup+Language)+Nedir3F
Eri im tarihi 20032009
68 nternet httpbelgelerorgelkitabixmldoc-howto_structhtml Eri im tarihi 20032009
69 nternet httpwwwverivizyoncomdetailaspcid=149 Eri im tarihi 20032009
70 nternet httpwwwbilgisayardershanesicomxml1htm Eri im tarihi 21032009
71 Johnson D White A Charland A ENTERPRISE AJAX Strategies for Building High
Performance Web Applications Prentice Hall Yay nc l k Sayfa 108 2008
72 nternet httpwwww3orgTRxhtml1dtds Eri im tarihi 01042009
73 nternet httpwwwcsharpnedircommakalegosteraspMId=51 52 Eri im tarihi
01042009
74 nternet httpofficemicrosoftcomtr-trinfopathHP010967301055aspx Eri im tarihi
01042009
75 nternet
httpwwwkodpaylascomviewtopicphpt=959ampsid=e5167bdea935943ed9bbdc91ee218c53
Eri im tarihi 01042009
94
76 nternet httpwwww3schoolscomXhtml Eri im tarihi 02042009
77 nternet httpwwwzvonorgxxlXMLTutorialOutput_turexample6html Eri im tarihi
02042009
78 nternet httpwwwbidbituedutrd=837 Eri im tarihi 03042009
79 nternet httpwwwcssnedircom Eri im tarihi 03042009
80 nternet httptrwikipediaorgwikiXSLT Eri im tarihi 03042009
81 nternet httpwwwbilisim-kulubucomsozluksozlukphpe=XSLT Eri im tarihi
08042009
82 nternet httpwwwsanalkursnetadobe-flex-nedir--1081html Eri im tarihi 10042009
83 nternet httpwwwadobecomtrproductsflex Eri im tarihi 11042009
84 nternet httpwwwtrflexcomp=4 Eri im tarihi 11042009
85 Oumlzer Z Varol A Web de Ajax Tekni inin Bant Geni lik Optimizasyonuna Etkisi
Bilimde Modern Youmlntemler Sempozyumu 2008
86 nternet httptrwikipediaorgwikiAJAX(programlama) Eri im tarihi 01062009
87 nternet httpajax-trcomajaxi-anlamak Eri im tarihi 01062009
95
OumlZGECcedilM
Zeynep OumlZER AYDO MU
zeynep_ozermsncom
F rat Uumlniversitesi Teknik E itim Fakuumlltesi
Elektronik Bilgisayar E itimi Boumlluumlmuuml
ELAZI
1983 y l nda Elaz da do du lk orta ve lise ouml renimini Elaz da tamamlad ktan
sonra 2002 y l nda F rat Uumlniversitesi Teknik E itim Fakuumlltesi Elektronik Bilgisayar E itimi
Bilgisayar Ouml retmenli i Boumlluumlmuuml nuuml kazand 2006 y l nda bu boumlluumlmden mezun oldu 2006
y l nda F rat Uumlniversitesi Fen Bilimleri Enstituumlsuuml Elektronik Bilgisayar E itimi Ana Bilim Dal
Bilgisayar Sistemleri Bilim Dal nda yuumlksek lisans e itimine ba lad 2007 y l ubat ay nda
Elaz n Karakoccedilan ilccedilesinin Yenice koumlyuumlnde h J Kd Uumlt m Mahir Oumlzdemir lkouml retim
Okulu nda Bilgisayar Ouml retmeni olarak goumlreve ba lad uan Elaz Korgeneral Hulusi Say n
Lisesi nde Bilgisayar Ouml retmeni olarak goumlrevini suumlrduumlrmektedir Yabanc dili ngilizce dir
Fatih AYDO MU ile evlidir
96
EK
Katalog ccedilal mas n n uygulama dosyas olan catamxml kullanmxml ve
imagepagemxml dosyalar n n kaynak kodlar a a daki gibidir
Catamxml
ltxml version=10 encoding=utf-8gt
ltmxApplication xmlnsmx=httpwwwadobecom2006mxml
layout=absolute
xmlnscontrols=qscontrols
backgroundColor=FFFFFF
creationComplete=init() color=FFFFFF xmlnslocal= xmlnscomp=comp
horizontalScrollPolicy=off verticalScrollPolicy=off borderColor=050505 borderStyle=solid
borderThickness=2gt
ltmxStyle source=stylecss gt
ltmxScriptgt
lt[CDATA[
import mxutilsStringUtil
import mxrpcsoapLoadEvent
import mxcontrolsAlert
import mxrpceventsFaultEvent
import qscontrolsFlexBook
import qscontrolsflexBookClassesFlexBookPage
import qscontrolsflexBookClassesFlexBookEvent
import qscontrolsflexBookClassesWBookPageImpl
import qscachingContentCache
import mxrpceventsResultEvent
import mxrpchttpHTTPService
import mxcoreUIComponent
import mxmanagersPopUpManager
import compResimSec
import Kullan
import mxcoreScrollPolicy
import mxcollectionsArrayCollection
private var aXML
[Bindable]
private var resimlerArrayCollectioncomboresim
97
private var dataSetHTTPService
private var resimdiziArray=new Array()
private var zoomYapBoolean=false
private function init()void
maskex=0
maskey=0
maskewidth=applicationwidth2
maskeheight=applicationheight-40
addEventListener(MouseEventMOUSE_MOVEmaskele)
addEventListener(tamam sayfa_secildi)
dataSet = new HTTPService()
dataSeturl = (dataimagesxml)
dataSetresultFormat = e4x
dataSetsend()
dataSetaddEventListener(FaultEventFAULT onFault)
dataSetaddEventListener(ResultEventRESULT onResult)
var wNumber=new Number
var hNumber=new Number
w=Applicationapplicationwidth
h=Applicationapplicationheight
bookwidth=w
bookheight=h-40
yuklemevisible=false
yuklemesource=assetsloadinggif
yuklemeaddEventListener(EventCOMPLETEyukleme_yuklendi)
private function yukleme_yuklendi(eventEvent)void
yuklemex=(applicationwidth2)-100
yuklemey=(applicationheight-40)2
private function maskele(eMouseEvent)void
if(zoomYap)
98
if((mouseXgt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) )
maskex=0
img2visible=false
img1visible=true
img1x=(applicationwidth2)-mouseX
img1y=-1mouseY
else if((mouseXlt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) )
maskex=applicationwidth2
img1visible=false
img2visible=true
img2x=-1mouseX
img2y=-1mouseY
maskex=mouseX
maskey=mouseY
private function onFault(eEvent)void
trace(e)
private function onResult(eResultEvent)void
a=new XML(eresult)
bookcontent = dataSetlastResultimage
bookaddEventListener(FlexBookEventTURN_STARTloadContent)
bookaddEventListener(FlexBookEventTURN_ENDloadContent)
private function sayfa_secildi(eventResimSec)void
99
sayfatext=eventyeniResim
git()
mxcontrolsAlertshow(sseventyeniResim)
private function loadContent(eventFlexBookEvent)void
setGorunum()
var pageImagePage = ImagePage(eventrenderer)
pageload()
sayfatext=(bookcurrentPageIndex2)toString()
resimdizi[bookcurrentPageIndex]=pagethumbsource
mxcontrolsAlertshow(bookcurrentPageIndextoString())
private function buyuk1_yuklendi(eventEvent)void
yuklemevisible=false
img1width=applicationwidth
img1height=(applicationheight-40)2
img1x=0
img1y=0
private function buyuk2_yuklendi(eventEvent)void
yuklemevisible=false
img2width=applicationwidth
img2height=(applicationheight-40)2
img2x=0
img2y=0
private function tumsayfalar()void
Kullanshow_window(thisfalseapplicationwidth-10(applicationheight-60)2)
customMoveend()
customMoveplay()
private function zoom()void
if(zoomerlabel==+)
zoomerlabel=-
if(img2source=aimage[bookcurrentPageIndex2]zoom)
yuklemevisible=true
img2addEventListener(EventCOMPLETEbuyuk2_yuklendi)
100
img2source=aimage[bookcurrentPageIndex2]zoom
if(aimagelength()gtbookcurrentPageIndex2+1)
img1addEventListener(EventCOMPLETEbuyuk1_yuklendi)
img1source=aimage[bookcurrentPageIndex2+1]zoom
zoomYap=true
else if(zoomerlabel==-)
zoomerlabel=+
setGorunum()
private function setGorunum()void
zoomYap=false
zoomerlabel=+
img1visible=false
img2visible=false
private function next()void
mxcontrolsAlertshow(bookcurrentPageIndextoString() bookpageCounttoString())
if(bookcurrentPageIndex+1 lt bookpageCount)
mxcontrolsAlertshow(--resimdizi[bookcurrentPageIndex])
setGorunum()
bookturnToPage(bookcurrentPageIndex + 1)
private function previous()void
if(bookcurrentPageIndex gt 0)
setGorunum()
bookturnToPage(bookcurrentPageIndex -1)
private function git()void
var s_nouint = new uint
s_no=Mathfloor(uint(sayfatext)2)
101
if(s_nogt0 ampamp s_noltbookpageCount)
bookturnToPage(s_no)
setGorunum()
]]gt
ltmxScriptgt
lt-- 614x453 --gt
ltmxParallel id=customMove target=Kullangt
ltmxMove duration=2000 xTo=(100) 2 yTo=(200) 2 gt
ltmxWipeRight duration=2000 gt
ltmxParallelgt
ltmxVBoxgt
ltmxHBoxgt
ltcontrolsFlexBook id=book width=100 height=100 x=0 y=0 horizontalCenter=0
verticalCenter=0
animateCurrentPageIndex=true
showCornerTease=false
edgeAndCornerSize=150
itemRenderer=ImagePage
animatePagesOnTurn=true
itemSize=halfPage cornerRadius=0 themeColor=1D99E8
backgroundAlpha=10 alpha=10gt
ltcontrolsFlexBookgt
ltmxHBoxgt
ltmxHBox height=30 width=100 verticalAlign=middle
horizontalAlign=center color=B65F5F backgroundColor=121313gt
ltmxSpacer width=10gt
ltmxSpacergt
ltmxTextInput borderColor=FFFFFF width=34 height=24 id=sayfa
color=FFFFFF fontSize=11 text=0 alpha=001gt
ltmxButton click=git() color=ffffff fontWeight=bold fontSize=11
width=114 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label=Sayfaya Git themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxSpacer width=60gt
102
ltmxSpacergt
ltmxButton click=previous() color=ffffff fontWeight=bold fontSize=11
width=70 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label=Geri themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxButton click=next() color=ffffff fontWeight=bold fontSize=11
width=70 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label= leri themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxButton click=tumsayfalar() color=ffffff fontWeight=bold fontSize=11
width=134 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label=Tuumlm Sayfalar themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxButton id=zoomer click=zoom() color=ffffff fontWeight=bold
fontSize=14 width=44 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00
00] label=+ themeColor=EDF2F5 textRollOverColor=EDD617 fontFamily=Arialgt
ltmxSpacer width=5gt
ltmxHBoxgt
ltmxSpacer height=10gt
ltmxVBoxgt
ltmxCanvas id=maske x=224 y=168 width=200 height=168
verticalScrollPolicy=off horizontalScrollPolicy=off borderThickness=0 borderColor=000000
borderStyle=solidgt
ltmxImage id=img1 x=0 y=0gt
ltmxImage id=img2 x=40 y=0gt
ltmxCanvasgt
ltmxImage x=10 y=144 id=yuklemegt
ltmxApplicationgt
103
Kullanmxml
ltxml version=10 encoding=utf-8gt
ltmxTitleWindow xmlns= xmlnsmx=httpwwwadobecom2006mxml
creationComplete=on_creation_complete()
styleName=popupWindow showCloseButton=true
paddingBottom=0 paddingTop=0 paddingLeft=0 paddingRight=0
height=200 width=100 alpha=09 borderAlpha=1gt
ltmxScriptgt
lt[CDATA[
import mxcontrolsAlert
import mxcollectionsArrayCollection
import mxrpceventsResultEvent
[Bindable]
private var sayfalarArrayCollection
[Bindable]
private var introString =
import mxeventsCloseEvent
import mxmanagersPopUpManager
import mxcoreApplication
import mxeventsDragEvent
import mxmanagersDragManager
import mxcoreDragSource
import compResimSec
import koraxcontrolsColorPickerResimSecEvent
private var m_parentDisplayObject = null
private function myResult(eventResultEvent)void
sayfalar = eventresultsayfalarsayfa
private function sayfaac(eventEvent)void
wndwith_last_preved()
mxcontrolsAlertshow(myTileselectedItemgittoString())
uyeler = eventresultsayfalarsayfa
104
private function on_creation_complete()void
myHTTPsend()
private static var wndKullan = null
public static function show_window(parentDisplayObject
modalBooleanwNumberhNumber)void
if (wnd == null)
wnd = new Kullan()
wndaddEventListener(mxeventsCloseEventCLOSE on_close_event)
wndm_parent = parent
if (wndisPopUp)
PopUpManageraddPopUp(wnd DisplayObject(Applicationapplication) modal)
PopUpManagercenterPopUp(wnd)
else
PopUpManagerbringToFront(wnd)
wndstart_init()
wndx=0
wndy=0
wndwidth=w
wndheight=h
wndmyTilewidth=w-20
wndmyTileheight=h-40
private function with_last_preved()void
if (m_parent = null) m_parentdispatchEvent(new ResimSec(tamam
myTileselectedItemgit))
private static function on_close_event(eventCloseEvent)void
if (wnd == null) return
PopUpManagerremovePopUp(wnd)
wnd = null
105
private function yardim()void
Kullanshow_window(thisfalse)
]]gt
ltmxScriptgt
ltmxHTTPService id=myHTTP url=dataonizlexml
result=myResult(event) showBusyCursor=truegt
ltmxTileList id=myTile dataProvider=sayfalar change=sayfaac(event)
itemRenderer=compUyeSayfasi width=100 height=147 rowHeight=110 columnWidth=120
rowCount=2gt
ltmxTitleWindowgt
106
ImagePagemxml
ltxml version=10 encoding=utf-8gt
ltmxCanvas xmlnsmx=httpwwwadobecom2006mxml width=600 height=400
xmlnscontrols=qscontrols
backgroundColor=FFFFFF horizontalScrollPolicy=off verticalScrollPolicy=offgt
ltmxstatesgt
ltmxState name=loadingStategt
ltmxAddChild position=lastChildgt
ltmxImage id=loadingContent horizontalCenter=0 verticalCenter=-6
source=assetsloadinggif gt
ltmxAddChildgt
ltmxStategt
ltmxstatesgt
ltmxtransitionsgt
ltmxTransition fromState= toState=loadingStategt
ltmxFade alphaTo=1 target=loadingContent duration=1000gt
ltmxTransitiongt
ltmxTransition toState= fromState=loadingStategt
ltmxSequencegt
ltmxFade alphaTo=0 target=loadingContent duration=1000gt
ltmxRemoveChildAction target=loadingContent gt
ltmxSequencegt
ltmxTransitiongt
ltmxtransitionsgt
ltmxScriptgt
lt[CDATA[
import mxcontrolsAlert
private var _loadedBoolean = false
public function load()void
if(_loaded)
return
_loaded = true
fullsource = datasourcetoString()
mxcontrolsAlertshow (fullsource)
107
currentState = loadingState
]]gt
ltmxScriptgt
ltcontrolsSuperImage left=0 right=0 top=0 bottom=0 id=thumb
source=datathumbtoString() gt
ltcontrolsSuperImage left=0 right=0 top=0 bottom=0 id=full complete=currentState = gt
ltmxCanvasgt
This document was created with Win2PDF available at httpwwwwin2pdfcomThe unregistered version of Win2PDF is for evaluation or non-commercial use onlyThis page will not be added after purchasing Win2PDF
V
ekil 317 DOM a accedil yap s
46
ekil 318 AJAX oumlrne i 49
ekil 319 sonuchtml sayfas n n ekran ccedil kt s
51
ekil 320 denemexml dosyas n n a accedil yap s
53
ekil 321 XML belgesi 55
ekil 322 Oumlrnek bir XML dokuumlman yap s
56
ekil 323 denemexsd nin ekran goumlruumlntuumlsuuml 65
ekil 41 Flex uygulamalar n n i lem ak emas
75
ekil 42 Flex arayuumlzuuml 76
ekil 51 Kodlama algoritmas
79
ekil 52 Katalo un ilk sayfas n n ekran goumlruumlntuumlsuuml 81
ekil 53 Katalo un 23 sayfa goumlruumlntuumlsuuml 82
ekil 54 Katalo un sayfa ccedilevirme efektli goumlruumlntuumlsuuml 83
ekil 55 Katalo un navigasyon ccedilubu u 84
ekil 56 Tuumlm Sayfalar duuml mesi t kland ndaki ekran goumlruumlntuumlsuuml 85
ekil 57 Zoom oumlzelli i 86
VI
TABLO L STES
Tablo 21 Facebook ve myspace in buumlyuumlme tablosu 10
Tablo 31 Standart XHR nesnesinin oumlzellikleri 30
Tablo 32 Standart XHR nesnesinin fonksiyonlar
31
Tablo 33 De i ken tuumlrleri 41
Tablo 34 leccediller ve goumlrevleri 41
Tablo 35 kili i leccediller 42
Tablo 36 DTD karakterleri ve accedil klamalar
61
Tablo 37 DTD ccedilindeki niteliklerin de er ve accedil klamalar
62
Tablo 38 Varsay lan de erler ve accedil klamalar
62
Tablo 39 XML Belgelerinde kullan lan varl k bildirimleri 67
VII
KISALTMALAR L STES
AJAX Asenkron JavaScript ve XML
API Application Programming Interface (Uygulama Program Arayuumlzuuml)
ASP Active Server Pages (Aktif Sunucu Sayfalar )
CDNs Content Distributed Networks ( ccedilerik Da t c A lar)
CMS Content Management System ( ccedilerik Youmlnetim Sistemi)
CGI Common Gateway Interface (Genel Geccedili Arayuumlzuuml)
CSS Cascading Style Sheets (Basamakl Stil Sayfalar )
DFA DART for Advertisers
DOM Document Object Model (Doumlkuumlman Nesne Modeli)
DTD The Document Type Definition (Dokuumlman Tipi Tan mlama)
DWR Direct Web Remoting ( Direkt Web Eri imi)
ECMA European Computer Manufacturers Association (Avrupa Bilgisayar
Uumlreticileri Birli i)
GOumlBL GNU Oumlzguumlr Belgeleme Lisans
HTML Hyper Text Markup Language (Yard ml Metin aretleme Dili)
HTTP Hypertext Transfer Protocol (Yard ml Metin Aktar m Protokoluuml)
IDE Integrated Development Environment (Tuumlmle ik Geli tirme Ortam )
JSP Java Server Pages (Java sunucu Sayfalar)
LAN Local Area Network (Yerel Alan A )
MIYS E-ticaret ve Muuml teri li kileri Youmlnetim Sistemleri
MSN Microsoft Network
OOP Object Oriented Programming (Nesne Youmlnelimli Programlama)
PHP Hypertext Preprocessor (Yard ml Metin Oumlni leme)
PIs Processing Instructions ( lem Accedil klamalar )
RIA Rich Internet Applications (Zengin nternet Uygulamalar )
VIII
RPC Remote Procedure Call (Uzaktan Yordam Ccedila rma)
SAX Simple API for XML (XML iccedilin Basit API)
WIKI What I Know is (Ne Biliyorsam)
W3C World Wide Web Consortium (Duumlnya Ccedilap nda A Birli i)
XML eXtensible Markup Language (Geli tirilebilir aretleme Dili)
XHR XMLHttpRequest
XHTML Extensible HyperText Markup Language (Geli tirilebilir Yard ml Metin
aretleme Dili)
XSD eXtensible Schema Document(Geni letilebilir ema Dokuumlman )
XSL Extensible Stylesheet Language (Geli tirilebilir Biccedilimlendirme Dili)
XSLT Extensible Stylesheet Language Transformations (Geli tirilebilir
Biccedilimlendirme Dil Doumlnuuml uumlmleri)
IX
OumlZET
Yuumlksek Lisans Tezi
AJAX TEKNOLOJ S KULLANARAK CcedilEVR M Ccedil
KATALOG TASARIMI
Zeynep OumlZER AYDO MU
F rat Uumlniversitesi
Fen Bilimleri Enstituumlsuuml
Elektronik-Bilgisayar E itimi Anabilim Dal
2009 Sayfa 107
Gerccedilekle tirilmi olan bu uygulama kapsam nda Flex program ve Web 20 n
ccedilekirde ini olu turan AJAX (Asynchronous JavaScript and XML) teknolojisi kullan larak F rat
Uumlniversitesini tan tan kolayl kla guumlncellenebilen Zengin nternet Uygulamalar na (RIA- Rich
Internet Applications) oumlrnek bir ccedilevrimiccedili katalog tasar m ve gerccedilekle tirimi yap lm t r
Projenin gerccedilekle tirim a amalar nda kullan lan teknolojilerin ve izlenen youmlntemlerin
anlat mlar n iccedileren bir yol haritas olu turulmu tur
Anahtar soumlzcuumlkler AJAX RIA Web 20 ccedilevrimiccedili katalog e-dergi
X
ABSTRACT
Master Thes s
ONLINE CATALOG DESIGN USING AJAX TECHNOLOGY
Zeynep OumlZER AYDO MU
F rat University
Graduate School of Natural and Applied Sciences
Department of Electronic and Computer Education
2009 Page 107
Embracing in this comparison F rat University is introduced by using Flex program and
AJAX (Asynchronous JavaScript and XML) technology which forms Web 20 Also RIA (Rich
Internet Applications) is easily renowated which is instance for online catalog design A road
map including realization of the project and tracing methods are illustrated
Keywords AJAX RIA Web 20 online catalog e-journal
1
1 G R
Web in geli im suumlrecinde ccedile itli youmlntemler kullan l r Bu youmlntemlerin farkl amaccedillara
hizmet etmeye ba lamas yla Web te ak mlar meydana gelmi tir Bu ak mlardan ilki Web 10
ak m olarak adland r l r Bu ak mda kullan c lar bilgilendirmeye youmlnelik iccedilerik sunumu
yap lmaktad r [1]
Web 20 ak m ise internet sitelerinin bilgi bar na olmas ndan i leyen platformlara
ta nmas
olarak tan mlanabilir Web 20 RIA (Rich Internet Applications- Zengin nternet
Uygulamalar ) i lemleri internet sunucu mimarisi temeline dayanmaktad r RIA da beraberinde
kulland AJAX Flex gibi teknolojiler uumlzerine kuruludur [1]
Baz yeni teknolojilerle de i en World Wide Web duumlnyas Web 20 RIA AJAX
(Asynchronous JavaScript and XML- E zamanl olmayan JavaScript ve XML) terimleriyle izah
edilmektedir
11 Tez Ccedilal mas n n Amac
Bu tez ccedilal mas yla Web 20 n ccedilekirde ini olu turan AJAX (Asynchronous JavaScript
and XML) teknolojisi ve Flex program kullan larak F rat Uumlniversitesini tan tan kolayl kla
guumlncellenebilen Zengin nternet Uygulamalar na (RIA-Rich Internet Applications) oumlrnek bir
ccedilevrimiccedili (online) katalog tasar m yap lmas hedeflenmi tir Projenin gerccedilekle tirim
a amalar nda kullan lan teknolojilerin ve izlenen youmlntemlerin anlat mlar n iccedileren bir yol
haritas olu turulmas amaccedillanm t r Bu tez ccedilal mas sonucunda geli tirilen yaz l mla kolay
guumlncellenebilen katalog haz rlanmas na katk sa lanmas amaccedillanm t r
12 Tez Ccedilal mas n n Kapsam
Bu tez ccedilal mas 6 boumlluumlmden olu mu tur 1 Boumlluumlm giri i olu turmaktad r 2Boumlluumlmde
Web 20 ak m incelenecektir 3 Boumlluumlmde AJAX teknolojisi accedil klanacakt r 4 Boumlluumlmde
yaz l m gerccedilekle tirme arac olarak kullan lan Flex tan t lacakt r 5 Boumlluumlmde gerccedilekle tirilmi
ccedilevrimiccedili katalog hakk nda bilgi verilecektir 6 Boumlluumlmde ccedilal man n sonuccedillar
ve gelece e
youmlnelik oumlneriler bulunmaktad r
2
2 WEB 20 AKIMI
Ccedilo u teknolojilerde oldu u gibi yenilik aray ihtiyaccediltan do ar Yeni Web ak mlar n n
do u u da 2001 y l ndaki tuumlm duumlnyay etkileyen kriz sonras nda iflas eden irketlerin yeniden
aya a kalkma ccedilabalar n n bir sonucu olarak ortaya ccedil km t r [2 3] Web 20 ak m 2005 te ilk
kez OReilly ve MediaLive International aras nda gerccedilekle en bir beyin f rt nas s ras nda
uumlretilmi bir kavramd r [3] Web 20 kavram World Wide Web teknolojisinde kullan lan
de i en ve geli en e ilimlere verilen bir ad olarak da tan mlanabilmektedir
ekil 21 Web 20 kavram
[4]
Web 20 kavram ekil 21 de goumlsterildi i uumlzere Web bir uygulama platformu ve sosyal
etkile imli olma oumlzelliklerini bar nd r r Ccedilevrimiccedili hayat n ba lang c ve devam n temsil eder
Say sal ortamda kendini ifade etme imkacircn sunar Kullan c lar (oku-yaz oumlzelli i ile) Web te
kat l mc kimlik kazan r
Asl nda Web 20 ortam n 1964 y l nda McLuhan Global Koumly terimini kullanarak
ortaya atm t r McLuhan Global Koumlyuuml gelecekte ileri teknolojiye geccedililmesiyle ve toplumlar
aras nda s n rlar n kalkmas yla duumlnyan n her kouml esinde teknolojiyi kullanan herkesin co rafi
s n rlar ve s n rlamalar olmaks z n diledikleri ki iyle ileti im kurabilecekleri
haberle ebilecekleri ve payla mda bulunabilecekleri bir ortam olarak tan mlam t r [5]
Mc Luhan n n tan m ndan guumlnuumlmuumlze kadar geccedilen suumlreccedil iccedilinde kullan c ihtiyaccedillar
da
de i im ve geli im goumlstermi tir Bu ihtiyaccedillar kar lamak iccedilin genel olarak internet
uygulamalar n n daha zengin bir arayuumlz ile sunulmas n sa layan uygulamalar Zengin nternet
Uygulamalar ad alt nda k sa zaman oumlnce hayat m za girmi tir
RIA uygulamalar s radan HTML web uygulamalar ile standart masauumlstuuml uygulamalar
aras ndaki bo lu u dolduran bir geli tirme platformudur Web arayuumlzuumlnde basit HTML ile
3
s n rl kalmadan masauumlstuumlndeki zengin goumlrsel ouml eleri program niteli inde kullanabilecek her
tuumlrluuml araccedil RIA konseptini uygulamaktad r [6]
Kullan c lar art k iccedilerik uumlreticilerin s n rlar n kald rarak kullan c n n yan s ra kat l mc
olarak ta nitelendirilerek etkile imli bir rol uumlstlenmi lerdir nternetin bu yeni gereksinimlere
cevap vermesiyle ortaya ccedil kan Web 20 doumlnuuml uumlmuuml hem kullan c say s nda art a neden
olmu tur hem de kullan c lar n iccedilerikleri yani mesajlar olu turdu u ve payla t buumlyuumlk bir
guumlce doumlnuuml muuml tuumlr Bu guumlcuumln oumlnemini ccedilabuk anlayan kurulu lar mimarilerine AJAX da dacirchil
ederek oumlnce arama motorlar n Google Yahoo yu daha sonra MSN yi Hotmail i bloglar
(Myspace Bloggercom Blogcucom gibi) Youtube u Wikileri ve sosyal a sitelerini
(Facebook Twitter Orkut vb) ke fetmi lerdir Bu ke iflerin sonucunda McLuhan n Global
Koumly uumlnuumln 21 Yuumlzy lda tam olarak gerccedilekle ti i soumlylenebilir Bu interaktif siteler sayesinde
ayn anda milyarlarca ki inin rk dil din ya am tarz e itim ya cinsiyet statuuml goumlzetmeksizin
e zamanl payla mda bulunup kendi ccedilevreleri ve ba ka ccedilevrelerle ileti ime geccedilebilmektedirler
ekil22 de goumlsterilen irketler Web 20 ak m nda oumlne ccedil kan sitelerin oumlzellikle ccedilevrimiccedili
faaliyet goumlsteren reklacircm irketleri pazarlama ve ticari irketler perspektifinden bak ld nda da
oumlnemli bir potansiyele sahip kitle ileti im araccedillar olarak goumlruumlluumlr [7]
ekil 22 Web 20 ak m nda oumlne ccedil kan uygulamalar [8]
Kitle ileti im arac olarak kullan labilen bu uygulamalar iccedilin birccedilok geli tirme ortam
mevcuttur Adobe Flex AJAX Java Applet Adobe Flash ve Microsoft Silverlight uygulamalar
en ccedilok bilinen RIA uygulamalar d r A a da da bu uygulamalarla olu turulmu Web 20
platformunda oumlne ccedil kan popuumller uygulama oumlrnekleri incelenecektir [7]
4
21 Web 20 Platformunda Oumlne Ccedil kan Popuumller Uygulamalar
kinci nesil internet hizmeti olarak literatuumlre giren Web 20 ak m yla internet sitelerinin
ccedilehresi de i mi tir nternet siteleri art k masauumlstuuml uygulamalar ile internet uygulamalar
aras nda bir koumlpruuml goumlrevi uumlstlenmi tir A a da bu ak m n popuumller uygulamalar ndan oumlrnekler
bulunmaktad r
211 Double Click - Google AdSense
Google firmas na ait iki uygulama da reklacircm verenlerin ve yay nc lar n web uumlzerinden
reklacircm hizmeti sunmas n sa layan sitelerdir Her reklacircmc n n hedefi tuumlketicilerin isteklerine
uygun ccediloumlzuumlmler sunmakt r Bu ccediloumlzuumlm ise Web 20 la reklacircmlar n profilini de i tirmi tir Art k
istenmeyen kendili inden accedil lan reklacircm pencerelerinin yerini kullan c n n bilgisayar na
yerle tirilmi ccedilerezlerden ccedilekti i bilgilere dayanarak kullan c n n ilgisini ccedilekebilece ini tahmin
etti i rahats z edici olmayan metin ya da resim tabanl
reklacircmlar alm t r
DoubleClick in di er reklacircm firmalar ndan ayr lan youmlnuuml reklacircmc lar iccedilin DART
oumlnerisiyle k saca DFA (DART for Advertisers) ile reklacircm youmlnetimi ve servis ccediloumlzuumlmlerinde
kullan c lar na dijital pazarlama programlar n n tuumlmuumlnuuml kapsayan youmlnetimi kolay daha iyi bir
arayuumlze sahip h zl geni bir arama sistemine sahip de eri artan sitelerin trafik ak n
belirleyen bir ccediloumlzuumlm olmu tur DoubleClick daha ccedilok grafiksel reklacircmlar yay nlamaktad r
Oumlnceleri Web 10 uygulamalar aras nda say lan bu site Web 20 doumlnuuml uumlmuumlnuuml ba ar yla
gerccedilekle tirmi tir [9]
Google AdSense ise web sitesi yay nc lar n n site iccedileri iyle alakal dinamik ve goumlze
batmayan Google reklacircmlar n
web sitelerinde goumlstererek kullan c lar n bu reklacircmlara
t klamalar yla para kazanmalar n sa laman n h zl ve kolay bir yoludur Uumlcretsiz olan bu
program sayesinde her t klama ve goumlsterim iccedilin site sahiplerine oumldeme yap l r [10] Bu
uygulamalar sayesinde Web de daha ak ll bir sisteme do ru youmlnelim ba lam t r
ekil 23 Doubleclick ve Google Adsense sitelerinin logolar [11 12]
5
212 Flickr
Yahoo nun sundu u bir hizmet olan uumlcretsiz foto raf arama ve payla m sitesi Flickr
ayn zamanda web servisi ve ccedilevrimiccedili topluluk platformudur Web 20 n ilk uygulamalar ndan
biridir Foto raf payla m nda en popuumller sitelerin ba nda gelmektedir ccedileri inde yakla k
olarak 3 milyar
a an foto raf bulunmaktad r Yenilikccedili ccedilevrimiccedili topluluk araccedillar foto raflar
etiketlemeye ve s n fland rmaya yard mc olur Bu da popuumllaritesindeki ciddi art n
nedenlerinden biridir
Flickr a imaj yuumlkleyebilmek iccedilin Yahoo dan bir e-mail adresiyle sisteme giri
yap lmal d r Payla lmak istenen foto raflar uumlcretli uumlyelik olmadan her imaj iccedilin 5 Mb l k
s n rlamayla ayda toplam 100 Mb a kadar yuumlkleme yap labilir Sadece foto raf eklemenin
d nda imajlar uumlzerinde duumlzenlemeler yap labilir Belirlenen alanlara notlar eklenebilir
Be enilen foto raflara yorumlar eklenebilir Ccedile itli gruplara uumlye olunup ileti im kurulabilir
Ayr ca API leri sayesinde XML-RPC (Remote Procedure Call- Uzaktan Yordam Ccedila rma)
arabirimi kullanarak flickr sitesindeki foto raflarla ilgili bilgileri proseduumlrler sayesinde XML
format nda al p ayr t rarak ba ka bir programda kullan labilinir Flickr daki blog grup ve
etiketleme alt yap s bu API lere dayanmaktad r [13]
ekil 24 Flickr sitesinin logosu [14]
213 BitTorrent
BitTorrent internet uumlzerinden yuumlksek h zlarla iccedileri in da t ld duumlnya ccedilap nda bir
standartt r Ayr ca 150 milyondan fazla kullan c ya sahip en son p2p (peer to peer) dosya
payla m youmlntemlerinden biridir Di er p2p payla m programlar ndan fark sabit olmayan
ba ms z sunucu tan mlama dosyalar sayesinde sabit bir sunucuya ihtiyaccedil olmaks z n belirli bir
protokol ccedilerccedilevesinde indirme (download) yaparken yuumlkleme (upload) yap lmas na da izin
vererek payla ma devam edebilmesidir [15]
Python programlama diliyle yaz lm bir uygulamad r [15]
ekil 25 ccedilerik da t m sitelerinde bittorrent site logosu [16]
6
Bit Seli olarak da ccedilevirebilece imiz ccedilok h zl bir sistemdir BitTorrent sayesinde
oldukccedila buumlyuumlk boyutlu videolara ses ya da yaz l m dosyalar na daha h zl daha ucuz ve daha
kolay bir ekilde ula labilmeyi sa lar
Guumlnuumlmuumlzde ccedilerik Da t c A lar (Content Distributed Networks-CDNs) guumln geccediltikccedile
popuumllaritesini art rmaktad r Bittorent kullan m n n 2004 te internet te teknik standartlar ve
youmlnetim konusunda yetkili organ olan W3C (World Wide Web Consortium - Duumlnya Ccedilap nda
A Birli i) taraf ndan yap lan bir ccedilal maya goumlre P2P ba lant lar n toplamda 60 n tuumlm
internet trafi inin ise 30 unu a aca tahmin edilmektedir
BitTorrent le dosya transferi yap l rken oumlncelikle bilgisayarda BitTorrent stemci
(Client) yuumlkluuml olmal d r stemci yaz l mlara oumlrnek Flashget Azureus BitTorrent Torrent
ABC LimeWire vb yaz l mlar olabilir ekil 26 ve ekil 27 de en popuumller uygulamalardan
Torrent yaz l m n n kurulum ve arayuumlz oumlrne i goumlruumllmektedir
ekil 26 Torrent program n n anasayfas
7
ekil 27 Torrent program n n arayuumlzuuml
BitTorrent istemciler BitTorrent Protokol uygulamalar n yapar Her istemci bu
protokoluuml kullanarak dosyalar n kullan c lar n BitTorent in kulland protokole sahip
duumlnyadaki tuumlm iccedileriklere h zl ve guumlvenilir bir ekilde eri mesine izin verir stenilen iccedileri in
indirilebilmesi iccedilin gerekli tan mlama bilgilerinin bar nd
torrent uzant l bir dosyaya
ihtiyaccedil vard r Bu torrent dosyalar n ccedile itli duyuru sitelerinden ya da Web den temin edildikten
sonra istemciler yukar da bahsedilen herhangi bir torrent yaz l m kullanarak bu dosyay accedilarlar
ndirme ba lad anda indirilmek istenen dosyay payla an kullan c lar n olu turdu u kuumlccediluumlk
a a (swarm) dacirchil olurlar Bu kuumlccediluumlk a daki her kullan c dosyan n indirdi i boumlluumlmuumlnuuml di er
kullan c larla payla mas gerekir Tuumlm bu i lemleri de takipccedili (tracker) isimli bir sunucu kontrol
eder Yakla k olarak 256 Kb buumlyuumlkluuml uumlndeki bu kuumlccediluumlk boyutlu dosyalara indeksleyici
(indexer) de denmektedir Kuumlccediluumlk bir a
kurulmas iccedilin tuumlm dosyaya sahip en az bir da t c n n
(seeder) olmas gerekir Da t c lar herhangi bir dosyay yuumlkleyen kaynaklard r O dosyan n
tamam n
kendi bilgisayar na indiren her kullan c art k bir da t c
olur Fakat da t c olmak
kullan c lar n insiyatifindedir ndirme i lemi bittikten sonra o dosya payla ma accedil k tutulmazsa
di er kullan c lar da t c dan bu dosyay ccedilekerek indirme i lemini h zland ramazlar Da t c
say s
ne kadar artarsa indirme i lemi o kadar h zl olur ndirme yapan kullan c lara da grup
uumlyeleri (peers) denilmektedir Torrent dosyas n indiren kullan c lar izleyicilere (tracker) dosya
hakk nda bilgi goumlnderirler di er kullan c lar (peers) ise izleyicilere ba lanarak kimde hangi
dosyan n hangi parccedilalar n n oldu unu ouml renirler zleyiciler uumlzerinden kesinlikle dosya transferi
8
gerccedilekle mez sadece kaynak payla l r Hangi kullan c ne kadar dosya ccedilekti ve ne kadar
yuumlkledi gibi istatistiksel bilgileri de bar nd rabilir [16 17]
Sadece indirme i lemi yap p kaynak olmay istemeyen ki ilere leecher (suumlluumlk) denir Bu
anlay a sahip ki iler gruplar iccedilinde ho kar lanmazlar Bir torrent dosyas payla m nda
kaynak (seed) say s s f r ise yani dosyan n tamam na sahip ki iler payla mdan ccedilekilmi lerse
eksik dosyaya sahip buumltuumln uumlyeler (peer) birbirleri aras nda veri al veri i yaparak eksik
parccedilalar indirebilecekleri bir kaynak olmad ndan belli bir yuumlzdesi tamamlanm dosyaya
sahip olarak kal rlar Bu durumda daha oumlnce dosyay indirmi ve dosyan n tamam na sahip olan
bir kullan c
eksik parccedilalar goumlndermek iccedilin dosyay yeniden payla ma accedilabilir (seed eder) Bu
olaya reseed etme denir [18]
214 Sosyal A Siteleri
Sosyal a lar bireyler aras ndaki ki isel veya profesyonel ili kilerin olu turuldu u
duumlzenlendi i a d r [19] Son y llardaki bilgi teknolojilerindeki geli meler sosyal a lar n gerccedilek
ya amdakinden daha farkl bir ekilde yeniden yap lanmas n
sa lam t r Herhangi bir
irketteki yerel a iccedilinde personelin e-posta al p-goumlndermesiyle olu an etkinlik ve e-posta
gruplar ilk ccedilevrimiccedili sosyal a oumlrneklerinden say labilir Daha sonra h zla hayat m za giren
bloglar wikiler ve sosyal a siteleri gibi sosyal i birli i sa layan teknolojilerin geli mesi
insanlar n ileti im kurduklar bilgi resim muumlzik video payla t klar ve birbirleriyle suumlrekli
haberle tikleri ccedilevrimiccedili sanal topluluklar n olu mas n sa lam t r [20] Bu topluluklar n h zla
yay lmas n n temelinde kullan c lar n bireysel aktivitesine ba l olarak duygu ve duuml uumlncelerini
bilgiyi guumlncel haberleri tavsiyelerini be enilerini payla ma fikri vard r A a da sosyal a
sitelerinden en popuumller olanlar iccedilinde yer alan Facebook incelenecektir [7]
2141 Facebook
En yayg n sosyal a sitesi Facebook Amerika Birle ik Devletleri nde 4 ubat 2004
tarihinde Harvard Uumlniversitesinde ouml renci Mark Zuckerberg taraf ndan kurulmu tur Facebook
oumlncelikle Harvard ouml rencileri iccedilin kurulmu tu Daha sonra h zla tuumlm duumlnyaya yay lm t r
Kullan c lar siteyi uumlcretsiz uumlye olarak kullanabilmektedir Site gelirini banner reklamlar ndan ve
sponsor gruplar ndan almaktad r Duumlnyan n en popuumller Web 20 blogu TechCruncha goumlre
Amerika Birle ik Devletleri ndeki uumlniversitelerdeki ouml rencilerin 85inin facebookda bir
hesab bulunmakta ve bunlar n 60 her guumln ba lanmaktad r 85 her hafta 93 her ay
ba lananlar aras ndad r [21] Facebook sitesinden ba ms z Web 20 ak m n yak ndan takip
9
eden bir blog sitesi olan insidefacebook 2009 Ocak ay n n ba nda yay nlad habere goumlre
facebook kullan c say s a a daki grafikte goumlruumllduuml uuml gibi yakla k 140 milyonu bulmu tur
Milyonlar a k n aktif uumlye say s yla guumlnde ortalama 150 bin aktif kullan c yla sanal duumlnyan n en
popular sitesi olmu tur [22]
ekil 28 Facebook kullan c say s n n aylara goumlre da l m grafi i [23]
Aktif kullan c lar n iccedileri e katk s a a daki istatistik sonuccedillar n do urmu tur [22]
13 milyon kullan c durumlar n en az ndan guumlnde bir kez guumlncellenmektedir
25 milyon kullan c her guumln Sayfa hayran (fan of Pages) olmaktad r
Siteye her ay 700 milyon foto raf yuumlkleniyor ki toplam foto raf rakam yakla k 10
milyar bulmaktad r
Her ay 4 milyon video yuumlklenmektedir
Her ay 15 milyon iccedilerik parccedilas (web linki yeni hikacircyeler blog yaz lar notlar
foto raflar vb) payla ma sunulmaktad r
Her ay 2 milyon etkinlik olu turulmaktad r
Sitede 19 milyon adet aktif grup varl n suumlrduumlrmektedir
Yukar da belirtilen bu rakamlar sosyal ileti im a lar n n ne kadar ciddi boyutlarda bir
kapasiteye sahip oldu unu goumlstermektedir
10
ekil 29 Aylara goumlre facebook ve myspace site analizi [22]
Facebook ve ona en yak n rakibi sosyal ileti im web sitesi olan MySpace compete de
kar la t r ld nda yukar daki grafik elde edilmektedir
Tablo 21 Facebook ve myspace in buumlyuumlme tablosu
Tarih 032008 032009 Kullan c
Ayl k Y ll k
facebookcom
91054535 234
1951
myspacecom
55594761 48
-114
Tablo 21 de Mart 2008 ile Mart 2009 aras ndaki ayl k aktif ziyaretccedili say s n
goumlstermektedir Compete verilerine goumlre Aral k 2008 de facebook myspace in kullan c say s n
yakalam t r Tablo 21 deki verilere goumlre bir oumlnceki y la goumlre Facebook taki kullan c say s nda
ayl k 234 luumlk bir art varken MySpace 48 lik bir buumlyuumlmeye sahiptir Yakla k olarak
ayl k MySpace Facebook u 5 kat geriden takip etmektedir Facebook taki bir oumlnceki y la
goumlre 1951 lik buumlyuumlmeye kar n myspace de 114 luumlk kuumlccediluumllme goumlruumllmektedir Elde edilen
veriler ileriki y llarda bu rakamlar aras ndaki uccedilurumun artaca n i aret etmektedir
Facebooktaki bu h zl buumlyuumlme ekonomi ve ticari sektoumlruumlnuumln de ilgisini ccedilekmektedir Oumlnemli bir
yat r m alan olarak giri imcileri cezbetmektedir
Facebook youmlneticilerinden Peter Thiel ise Facebookun iccedil de erinin 8 Milyar dolar
oldu unu ve proje gelirlerinin 2015 y l iccedilin 1 milyar dolar oldu unu soumlylemektedir [24]
Duumlnyaca tan nm Microsoft irketi 24 Ekim 2007 de Facebooku 16l k hissesini 240 milyon
dolara sat n alm t r Google ve di er irketler de gittikccedile de er kazanan Facebook hisselerine
youmlnelmektedir [24]
11
215 Web Guumlnluumlkler
ngilizcedeki Web
ve log kelimelerinin birle iminden olu an Blog kelimesi internet
uumlzerinden ki ilerin istedikleri konu hakk nda fikir beyan edebilecekleri kendilerini kolayca
ifade etmelerini sa layacak bir ortamd r
Bloglar genellikle en yeni yorum ve yaz lardan eski tarihli yorum ve yaz lara do ru
s ralanm web tabanl yay nlar
belirtir Bloglar n iccedileri i suumlrekli guumlncellendi i iccedilin sadece
bloglar iccedilin kurulmu oumlzel indeksleme mekanizmalar ve arama motorlar bulunmaktad r [25]
Duumlnya ccedilap nda indeksleme mekanizmalar n n en oumlnde geleni Technorati firmas
milyonlarca blog okuyucusu iccedilin her geccedilen guumln 15 milyondan fazla yeni blogu
indekslemektedir [26] Forrester in ara t rma irketlerinden internet ile ilgili ciddi bir ara t rma
kurumu olan JupiterResearch uumln 2008 A ustos unda bloglar uumlzerine gerccedilekle tirdi i
ara t rmada internet kullan c lar na 40 soruluk kapal uccedillu soru youmlneltilmi tir Bu ara t rma
sonucunda geccedilti imiz doumlrt y l iccedilerisinde bloglar n okunma oranlar nda 300 oran nda bir art
oldu u ortaya ccedil km t r Belki ilgimi ccedilekecek bir bloga ula abilirim duuml uumlncesi ile kullan c lar
okuduklar bloga eklenmi
olan di er linkleri de takip edebiliyorlar S k blog okuruyum
diyenlerin 38 i yeni bir blogu okudu u blogun linklerinden ke fetti ini belirtmi tir
Ara t rmaya kat lan blog okurlar n n 34 uuml Web te dola rken yeni bir blogla tan t n 11 i
blog arama motorlar n kulland n
belirtmi [27]
Bloglar n bu kadar yayg nla mas n n nedenlerinde biri de internet gezginler sanal
acirclemdeki tek duumlze yorumsuz hatta bazen oldukccedila bilimsel bir dille yaz lm yaz lardan
s k ld klar iccedilin bloglar tercih etmektedir Bloglarda ki iler gittikleri bir seminer hakk ndaki
yorumlar n kulland klar bir uumlruumln hakk ndaki fikirlerini k saca hayata dair kendi yorumlar n
katarak ba ka ki ilerle payla abilmektedirler
216 Wiki
Bilgiye ula mak iccedilin eskiden oldu u gibi kitap ya da ansiklopediler kullan lmamaktad r
Guumlnuumlmuumlzde kuumlreselle menin ve geli en teknolojinin etkisiyle tuumlm kaynaklara bilgisayar
uumlzerinden ula lmas elde edilen bilgilerin k sa suumlrede derlenebilmesine imkacircn vermi tir
Wiki ler kullan c lar n uumlzerinde istedi i gibi duumlzenlemeler yapmas na izin veren bilgi
sayfalar toplulu udur ngilizce What I Know is soumlzcuumlklerinin k saltmas
olan Wiki
Bildi im kadar yla anlam na gelir [28]
12
Wikilerin ccedilal ma prensibi u ekilde accedil klanabilir Bir web program script ya da script
grubu sayesinde veritaban na yaz lm olan ya da sadece dosya halindeki verileri okur bu
verileri HTML kodlar ile de i tirir ve Web taray c s na yans t r
ekil 210 Vikipedi oumlzguumlr ansiklopedi sitesinin logosu
Wiki dilini kullanan ve internetin en geni iccedileri ine sahip ccedilevrimiccedili ansiklopedisi
Vikipedi 22 Ocak 2007de Alt n Oumlruumlmcek 2006 En yi ccedilerik oumlduumlluumlnuumln sahibi oldu
Wikipediaorg taraf ndan geni kitlelere tan t lan Wiki dili pek ccedilok farkl programlama
platformunda Javascript ASP PHP C++ vb kullan labilmektedir
2161 Wiki Kullanman n Avantajlar
Web proje gruplar
projeleri olu tururken ekiplere ayr ld iccedilin programc lar kendi
goumlrevi d ndaki ccedilal malarda neler yap ld n
tam olarak bilemez ccedileri in yap land r lmas nda
geli melerden sadece iccedilerik koordinatoumlrleri haberdard r An nda yap goumlster oumlzelli iyle Wikiler
bu sorun iccedilin pratik bir ccediloumlzuumlm te kil eder
ndekslenme yapan sitelerde bile arama yap l rken defalarca ayn siteye girilebilir yahut
aran lan bilgiyi bulmak ccedilok zaman alabilir Wiki gereksiz tekrarlardan kurtar r steyen herkes
wiki iccedileri indeki bilgileri eksik ya da hatal
ise de i tirilebilir veya kald rabilir Bu i lemleri
yapan wiki youmlneticilerine wikipedist denir Wikipedistler sayfa duumlzenlemelerine ve iccedilerik
zenginle tirmeye yard mc olurlar
Wiki de de i iklik yap ld nda de i iklik yapan ki inin bir hesab yoksa IP adresiyle
varsa kullan c ad yla kaydedilerek hemen sonuccedil goumlzlenebilir Yap lan iccedileriksel herhangi bir
hata ba kalar taraf ndan fark edildi inde duumlzeltilir Geccedilmi sekmesiyle duumlzeltilen sayfalar n
oumlnceki suumlruumlmleri kronolojik s ralamayla takip edilebilir hatta sayfalar aras nda kar la t rma
bile yap labilir Sayfa iccedilerikleri hakk nda Tart ma
sekmesiyle fikir beyan nda bulunulabilinir
Tart malara yorum eklenebilir Denetleme mekanizmas sayesinde telif haklar n n ihlali gibi
durumlarda ihlali yapan kullan c lar engellenebilmektedir
13
Wiki di er ansiklopedilerden farkl olarak Vikipedi GNU Oumlzguumlr Belgeleme Lisans
(GOumlBL) kullanmaktad r Kullan c lar na oumlzguumlr iccedilerik kat l m e it tarafs z ve uumlcretsiz kat l m
hakk verir Ayr ca diluumllkekonuya goumlre geli mi kategorilendirme sistemine sahiptir Diff
oumlzelli i sayesinde sayfalar aras ndaki fark izlenebilir [29]
217 ccedilerik Youmlnetim Sistemleri
ngilizce Content Management System ya da k saca CMS olarak tan nan ccedilerik
Youmlnetim Sistemleri - YS bilgiyi olu turmak ar ivlemek ara t rmak denetlemek ve
yay nlama olana sa layan buumlyuumlk bir veritaban na sahip moduumlllerden olu an buumltuumlnle ik bir
ortamd r YS lerde iccedilerik iki ayr boumlluumlmden olu ur Bunlardan birincisi uumlzerinde i lem
yap lmam olan ham bilgiyi bar nd ran veritaban
di eri ise bu bilginin yerle imini goumlsteren
ablondur ablonda bilginin goumlsterilece i sayfan n goumlrsel boumlluumlmuumlnuuml olu turan yaz tipleri
renkleri gibi tuumlm biccedilim bilgileri saklan r Genellikle PHP benzeri dillerle kodlan r Boumlylece daha
esnek hale gelebilirler [30]
ccedilerik Youmlnetim Sistemleri uluslararas platformda birccedilok organizasyon iccedilin zorunluluk
haline gelen modern bir veri youmlnetimi tekni idir Guumlnuumlmuumlzde iccedilerik youmlnetim sistemleri kendi
iccedilerisinde boumlluumlnmuuml bir yaz l m enduumlstrisi haline gelmi tir Kendi iccedilerisinde portal sistemleri
Wiki sistemleri web-based grupware vb alt dallara ayr lan enduumlstri guumlnuumlmuumlzde halen
geli imini suumlrduumlrmektedir [31]
Web yay nlama sistemi kullan c lar arad klar iccedileri e goumlre veritaban iccedilinde anahtar
kelimeler yazar olu turulma tarihi gibi ccedile itli oumllccediluumltlere goumlre arama yapabilirler Web iccedilerik
youmlnetim sistemleri bilgi portallar olu turmak iccedilin bilgi youmlnetimi hizmeti sunar YS buumlnyesinde
bar nd rd
yaz l m moduumllleri sayesinde herhangi bir kullan c n n web sitesi uumlzerindeki
i lemleri yapabilmesi iccedilin grafiksel kullan c arayuumlzuuml sunar
YSnin temeli iccedileri in olu turulmas ndan son hali olan yay nlanma evresine kadar tuumlm
evrelerde iccedileri i youmlnetme esas na dayan r Ayr ca YS nin iccedileri i E-ticaret ve Muuml teri li kileri
Youmlnetim Sistemleri (MIYS) (ing CRM - Customer Relationship Management System) ile de
payla labilir YS sayesinde iccedilerik yay n
teknik bilgisi olmayan kullan c lar taraf ndan bile
yap labilir Kullan c lar na sade basit ama guumlccedilluuml web taray c s destekli bir uygulama arayuumlzuuml
sunar [32]
14
218 Etiketleme (Folksonomi)
Web 20 sitelerinde goumlze ccedilarpan etiket bulutlar ile kullan c lara ilgilendikleri konulara
ili kin kolay ve h zl ba lant lar sa lanmaktad r Site iccedileri iyle ilgili konular ccedile itli etiketler ad
alt nda s n fland r l r Her etiket iccedilinde bar nd rd makale yaz ba l k ile farkl boyutlarda
olabilmektedir Yani etiketin yaz boyutu ne kadar buumlyuumlkse iccedilinde bar nd rd iccedilerik o kadar
fazlad r ekil 211 de bir etiket bulutu goumlruumllmektedir
ekil 211 Oumlrnek etiket bulutu
22 Web 20 da Site Tasar m nda Dikkat Ccedileken Oumlzellikler
Yukar daki popuumller uygulamalar olu turulurken dikkat ccedileken ortak oumlzellikler bu ba l k
alt nda incelenecektir Genel olarak Web sitelerindeki de i im ve geli im tasar m ve arayuumlz
accedil s ndan de erlendirilecektir
221 Logolar
Logolara daha parlak bir goumlruumlntuuml verilirken yans ma efekti bolca kullan lmaktad r
Yans ma efekti dinamik olmayan tuumlm objelere kullan larak siteye derinlik hareket ve modern
bir goumlruumlnuuml kazand r l r Kullan c lar n dikkatini ccedilekmek iccedilin ekil 212 de goumlruumllduuml uuml gibi
logolara rozet eklinde yenilik bildiren kelimeler eklenebilmektedir [33] Bu yenilik bildiren
kelimelerden Beta ifadesiyle s k s k kar la l r Bunun nedeni Web 20 ak m na goumlre
kullan c lar birer yard mc -geli tiriciler olarak benimsenir Sonuccedil olarak ortaya ccedil kan site suumlrekli
geli mekte ve de i mektedir Logolara yerle en Beta bu geli imin bir simgesi haline gelmi tir
[34]
15
ekil 212 Yans mal logo oumlrne i [34]
222 Butonlar
Butonlarda ise klasik butonlar yerine resim olarak haz rlanan butonlarda oumlzellikle cam
efekti ve renk geccedili (gradient) efekti hacirckimdir Gradient efekti butonlarda logolarda ya da arka
planlardaki renk geccedili lerini daha yumu at r Bir renkten farkl bir renge keskin geccedili lerin oumlnuumlne
geccedililmi olur [33] Ccedile itli buton oumlrnekleri ekil 213 de goumlruumllmektedir
ekil 213 Web 20 da buton oumlrnekleri
223 Arka Planlar
Web 20 ile sitelerde arka planlar olu turulurken yatay eritlerden ya da duumlz renk
geccedili lerinden faydalan labilinir Her iki ekilde de hedeflenen ortak amaccedil ekil 214 te oldu u
gibi goumlzuuml yormayan tasar mlar gerccedilekle tirmektir [33]
ekil 214 Web 20 da arka plan oumlrnekleri
16
224 Ccedilerccedileveler
Site iccedilinde goumlruumlnmez iframe ler yerine ekil 215 deki gibi ccedilerccedilevelerin yuvarlak kouml eli
kutular olarak tasarlanmas
oumln plana ccedil km t r Kouml eleri keskin duumlz kare veya dikdoumlrtgen
biccedilimde kutular art k kullan lmamaktad r Yuvarlak kouml eli kutu yap m iccedilin farkl tekniklerle
olu turulabilecek programlar mevcuttur Resim css ve html teknikleri kullan lacaksa Spiffy
Corners RoundedCornr ve CSS Rounded Box Generator gibi araccedillar kullan labilirken Nifty
Corners Cube ve curvyCorners gibi araccedillar da JavaScript tekni i ile kullan labilinir [33]
ekil 215 Web 20 da ccedilerccedileve yap s na oumlrnek
225 Menuumller
Site iccedileri inden etkin bir ekilde faydalanabilmek iccedilin menuuml ve sekmeler sade kolay
anla labilir olmal d r Hem goumlrsel hem kullan l menuumller CSS kodlarla olu turulabilir [33]
ekil 216 Web 20 da menuuml oumlrne i
Yukar da bahsedilen konu Web 20 platformunda olu turulan sitelerin genel oumlzellikleri
olarak alg lanabilir Bu oumlzellikler d nda da tasar mlar olabilmektedir
17
3 AJAX
AJAX kavram n n ilk ccedil k noktas
ubat 2005 de Jesse James Garrett taraf ndan the
Adaptive Path Web sitesinde Ajax A New Approach to Web Applications ba l yla
yay nlanan makaledir [35]
ekil 31 Jesse James Garrett in makale goumlruumlntuumlsuuml [36]
Bu makalede Web uygulamalar olu turulurken tasar mlardaki buumlyuumlleyici geli meler
yenilikccedili ccedilevrimiccedili projelerle desteklenirken bunun yan nda h zl cevap verebilir daha zengin
goumlrsellere sahip masauumlstuuml uygulamalar aras ndaki bo lu a dikkat ccedilekilmi tir Bu bo lu u
dolduran Google Suggest ve Google Maps uygulamalar Adaptive Path sitesinde AJAX olarak
adland r lan Web uygulamalar na yeni yakla m n en iyi oumlrnekleri oldu u belirtilmi tir Klasik
Web uygulamalar n n ccedilal ma modeliyle AJAX l uygulamalar n ccedilal ma modeli
kar la t r lm t r AJAX di er uygulama youmlntemlerinden ay ran oumlzellikleri belirtilmi tir
AJAX yakla m na buumlyuumlk yat r mlar yapan Google n neden AJAX tercih etti i accedil klanm t r
Google Groups Google Suggest Gmail Google Maps ve ard ndan Flickr Amazon nun
A9com servisleriyle kullan c lar n oda haline geldi ine de inilmi tir [35]
AJAX n ccedilekirde i olan XMLHttpRequest (XHR) nesnesi sayesinde de iyi haz rlanm
sa lam ve kolay anla labilir-kullan labilir sitelerin olu umuna dikkat ccedilekilmi tir [35] A a da
18
ise AJAX tekni i kullanan en populer servislerden Google Suggest ve Google Maps hakk nda
k sa bilgi verilecektir
31 Google Suggest
ekil 32 Google Suggest ekran goumlruumlntuumlsuuml
Google Suggest a httpwwwgooglecomigcomplete=1amphl=en
adresine girildi inde
ekil 32 de goumlruumlnen ana sayfaya ula lmaktad r Google Suggest servisinin oumlzelli i arama
motorunda aranacak kelimenin harfleri girilmeye ba land andan itibaren filtreleme yaparak
text alan n n alt na accedil lan boumllmede oumlneriler sunulmaktad r Sadece oumlneri sunmakla da kalmay p
oumlnerileri popuumllarite s ras na goumlre s ralar Kelime tamamlama oumlzelli i sayesinde aranan kelime
tam yaz lmadan gelen oumlnerilerden biri t klanarak istenen sonuca ula labilinir Ayr ca oumlnerilerin
yan nda o kelimeye ait kaccedil sonuccedil oldu u da belirtilir ve bu i lem sadece 1-2 sn iccedilinde
gerccedilekle ir
32 Google Maps
ekil 33 Google Maps ekran goumlruumlntuumlsuuml
19
Google Maps sitesine httpmapsgooglecom
adresinden ula labilinir Google n
etkile imli harita servisi ile arama motorunda goumlruumlntuumllenmek istenen konum yaz larak
Haritalarda Ara butonu ile o konuma odaklan l r Bir yerden bir yere gitmek iccedilin Yol
Tariflerini Al butonu kullan l r Konumun iste e goumlre uydu arazi ve sokak haritas
goumlruumlnuumlmlerine ula labilinir Daha fazla seccedilene i ile resim video ve wikipedia katmanlar da
goumlruumlntuumlye eklenir Hatta yurtd ndaki ba lant larda yoldaki trafik ak n n h z hakk nda bile
bilgi katman mevcuttur
Di er harita web uygulamalar ndan farkl olarak Google Maps te harita uumlzerinde ccedile itli
youmlnlere ula mak iccedilin suumlrekle b rak youmlntemi kullan l r Harita bir imaj serisi halinde ayr larak
boumlluumlnuumlr Biti ik imajlar n birlikte goumlruumlntuumlsuumlnuumln olu turulabilmesi iccedilin bu serilerden faydalan l r
Goumlruumlntuumllenen haritada kullan lan imaj say s s n rl d r Bu da her seferinde yeni imajlar n
olu turulmas gerekti ini goumlsterir Kullan c n n harita uumlzerindeki h zl hareketleri haf za
problemlerine yol accedilabilir Bunun yerine ayn imajlar haritan n farkl segmentlerinde tekrar
tekrar goumlruumlntuumllenir [37]
stemci-sunucu ileti imi gizli bir IFRAME uumlzerinden yap l r Bir arama yap ld nda
veya yeni bir yol soruldu unda bu bilgiler goumlnderilir ve IFRAME iccedilinde doumlnduumlruumlluumlr Veri XML
format nda ccedilevrilir ve bir Javascript fonksiyonunda (AJAX Motorunda) kullan lmak iccedilin
aktar l r Bu XML verisi sonra farkl ccedile itli ekillerde kullan l r Bazen hatas z harita imajlar n n
ccedila r lmas nda bazen de XML dokuumlmanlar n n XSLT (Extensible Stylesheet Language
Transformations Geni letilebilir Biccedilimlendirme Dili Doumlnuuml uumlmleri) sayesinde HTML kodlar na
doumlnuuml tuumlruumllerek ana pencerede goumlruumlntuumllenmesinde kullan l r [37]
Bunlar n d ndaki daha birccedilok accedil k kaynak projeler ve ticari uumlruumlnler bu yeni Web
uygulama modelinin avantajlar ndan faydalanarak geli tirilmeye ba lanm t r [37]
33 Neden AJAX
AJAX terimi oldukccedila guumlccedilluuml bir kelimedir Guumlcuumlnuuml daha zengin geni enduumlstri trendlerinin
olu umunda kullan labilmesinden ve oumlzguumlr Web uygulamalar n n kurulumunda odak noktas
olmas ndan al r Ayr ca programc lar yabanc olduklar yeni programlama dilleri ouml renmelerine
gerek kalmadan geli tirdikleri Web uygulamalar na istedikleri etkiyi katabilmektedirler Bunu
yaparken de sunucu tarafl teknolojileri kullan rken var olan yat r mlar n n d nda ba ka
masraflar olmaz AJAX guumlccedilluuml bir teknik olmas n n yan s ra di er teknolojilerle birlikte
kullan ld nda daha etkili sonuccedillar al nabilmektedir [38] AJAX Java 2 Enterprise Edition
(JAVA EE) Net PHP Flex CGI scriptler ve di er birccedilok uygulama geli tirme ortam nda
ccedilal abilir
20
AJAX uygulamalar n n gittikccedile yayg nla mas n n bir nedeni de geleneksel uygulamalara
goumlre istekcevap modelleri aras ndaki farkt r ekil 34 te goumlsterildi i uumlzere geleneksel Web
uygulamalar nda sunucuya yap lan her istekte olu turulan cevap Web sayfas n n tuumlmuumlnuuml
etkileyerek yeniden yuumlklenmesine neden olmaktad r
ekil 34 Geleneksel sunucularda istekcevap modeli [39]
AJAX n asenkron metodolojisiyle klasik Web mimarilerindeki gibi sunucuya gidip
parametreleri i lemek yerine ekil 35 te goumlruumllduuml uuml uumlzere birccedilok sunucu iste i tuumlm sayfan n
yenilenmesine ihtiyaccedil duymadan cevaplanabilmektedir
ekil 35 AJAX n asenkron istekcevap modeli [39]
Yukar da anlat lan durum kullan c lar ekil 36 da goumlruumllen t kla-bekle doumlnguumlsuumlnden
kurtar r AJAX kullan c lara ekil 37 deki gibi kesintisiz gezinti (soumlrf) imkacircn sunar
21
ekil 36 Klasik Web uygulamalar nda t kla-bekle doumlnguumlsuuml [40]
ekil 37 T kla-T kla interaktif AJAX uygulamas
[40]
stek i lem basamaklar ekil 38 te goumlsterildi i gibi AJAX motoru sayesinde JavaScript
kod betikleri kullan larak sunucuya HTTP tabanl ba lant sa lan r Bu ba lant
XMLHttpRequest protokoluumlnuuml kullanarak mesaj transferi yap lmas n sa lar Bu sayede hem h z
artar hem de bant geni li i verimli bir ekilde kullan lm olur
ekil 38 Geleneksel Web ileti im modeli ile AJAX ileti im modeli [37]
AJAX sunucuya kullan c n n Web taray c s uumlzerinden Javascript ortam nda ikinci bir
ileti im yoludur AJAX n kullan m normal Web uygulamalar nda goumlruumllen tipik sayfa ak nda
de i ikliklere neden olur AJAX ile istekler daha s k ve daha kuumlccediluumlk cevaplar halinde HTML
olmayan veri formunda cevaplan r Daha iyi anlayabilmek iccedilin normal bir Web uygulamas n n
ileti im ak ekil 39 da goumlruumllmektedir [41]
22
ekil 39 Web uygulamas ndaki cevap ak
Bir AJAX Web uygulamas bir Web uygulamas n n normal ileti im ak n al r ve yeni
bir istek tipi ekler Bu durum sunucuya normal sayfa iste i gibi goumlruumlnuumlr ama Web taray c iccedilin
farkl formatta bir giri i vard r Kullan c taraf ndan do rudan tetiklenmeyen ve sayfan n
tamam n n yeniden yuumlklenmesini gerektirmeyen bir istektir Ccedilo u durumda bu AJAX istekleri
baz verilerin oumln yuumlklenmesi ya da bir formdaki baz alanlar n do rulama istekleri gibi kuumlccediluumlk
de i iklikler olabilir Bazen de JavaScript ile bir form goumlnderimi veya HTML sayfalar n n bir
parccedilas uumlzerindeki iccedileri i de i tirmek iccedilin kullan l r Oumlrnek bir AJAX ileti im ak ekil
310 da goumlruumllmektedir AJAX uygulamalar ndaki istek biti zamanlar ve bunun normal Web
uygulamalar yla kar la t rmas ekil 311 de goumlruumllebilir Boumlylece ikisinin aras ndaki istek
frekanslar n n fark na var labilinir [41]
ekil 310 AJAX uygulamalar ndaki istek ak
23
ekil 311 Normal Web ile AJAX uygulamalar n n kar la t rmas
AJAX Web uygulamalar yla frekanstaki bu de i im hostlar iccedilin buumlyuumlk etki yapabilir
Boumlylece sunucular ayn kullan c say s yla yuumlksek h zlarda veri al -veri ini yapabilecek duruma
gelir Bu oumlzellikle daha fazla i lem gerektiren normal sayfa yuumlklemelerinde oldukccedila zor bir
i lemdi [41]
34 AJAX Metodolojisi
World Wide Web istemci-sunucu a mimarisine uygun ccedilal r [42] A aktiviteleri iki
tiptir Bunlardan birincisi kullan c taraf ndan tetiklenen HyperText Transfer Protocol (HTTP)
istekler (URL yazarak ya da bir link t klanarak olu turulur) di eri ise sunucu cevaplar d r
HTTP protokoluuml soru ve cevaplar serisinden olu an bir ileti im yoludur [41]
ekil 312 Geleneksel istekcevap (requestresponse) youmlntemi [39]
24
Web taray c dan bir istekte bulunuldu unda HTTP kullan larak cevap goumlnderilir Web
taray c bir istemci internet sayfas n n sunucusu ise HTTP sunucudur AJAX sunucu
cevaplar n HTTP kullanarak goumlnderir Sunucu taraf ndan geri doumlnduumlruumllen farkl tuumlrlerdeki
HTTP istek ve cevaplar n n tan nmas oumlnemlidir AJAX uygulamalar n sunucudan gelecek olan
HTTP cevaplar n iccedileri inin ne oldu u hakk nda karar verebilmesi iccedilin sunucunu
sorgulanmas nda HTTPRequest nesnesine ihtiyaccedil duyar [42]
341 HTTP Requests Nesnesi
HTTP request nesnesinin kullan m format a a daki ekildedir
ltrequest-linegt
ltheadersgt
ltblank linegt
[ltrequest-bodygt]
HTTP request nesnesinin ilk sat r genellikle iste in tipini belirten uumlccedil boumlluumlmden olu ur
Youmlntemin ad gerekli olan sunucu kayna n n yolu HTTP suumlruumlmuumlduumlr Birinci istek sat r (accedil l
sat r ) olmal d r kinci boumlluumlm sunucunun kullanabilece i ba l k sat r eklenebilen bilgilerin
goumlsterildi i boumlluumlmduumlr Son boumlluumlm olan bo sat r ise iste e ba l olarak BODY boumlluumlmuumlnden
ccedila r labilecek ek verilerin takip edilebilece i sat rd r
HTTP iccedilinde ccedile itli istek tuumlrlerinin tan mlanabilece i ccedilok say da youmlntem vard r Fakat
AJAX sadece GET ve POST youmlntemleriyle ilgilenir
3411 GET Youmlntemi
HTTP GET youmlntemi ccedila r lmak istenen URL adresi ard na eklenen anahtar-de er
ccediliftleri (key-value pair) ile ccedilal r Bir Web taray c dan talep edilen bir URL ccedila r s sunucuya
GET youmlnetemi ile bir istek goumlnderir Basitccedile sunucu kayna getirir ve taray c ya cevab
goumlnderir A a da Get youmlnetemi kullan larak F rat uumlniversitesinin Web sitesine yap lan bir ccedila r
sat r goumlsterilmektedir
GET HTTP11 ltrequest-linegt
Host wwwfiratedutr
User-Agent Mozilla50 (Windows U Windows NT 51 en-US rv176) ltheadersgt
Connection Keep-Alive
25
Oumlrnek kod parccedilas nda da goumlruumllduuml uuml uumlzere ilk sat r GET istek sat r d r Di er boumlluumlm ise
istek hakk nda bilgi goumlnderilen ba l k (header) k sm d r Bu boumlluumlme bir parametre ve her sat r
ba na bir de er ccedilifti gelebilir Host ba l iste in hedef sunucu adresini iccedilerir User-Agent
ba l eri ilebilir her iki sunucu ve istemci tarafl scriptler ve taray c lar n temel ta d r Bu
bilgi ile her istekte otomatik olarak goumlnderilir ve kullan lan taray c tan mlan r Connection
ba l ise taray c i lemleri iccedilin kullan lan tipik ba lant ayarlar nda kullan l r
3412 POST Youmlntemi
POST iste i ise sunucuya request body iccedilinde ek bilgi sa lar Genellikle ccedilevrimiccedili
formlarda doldurulmayan sat r bilgileri POST youmlntemi ile sunucuya bildirilir POST istekleri
a a daki yap dad r
POST HTTP11
Host wwwfiratedutr
User-Agent Mozilla50 (Windows U Windows NT 51 en-US rv176)
Content-Type applicationx-www-form-urlencoded
Content-Length 40
Connection Keep-Alive
Yukar daki kod parccedilas nda gri ile vurgulanan sat rlar GET youmlnteminden farkl olan
sat rlar goumlstermektedir lk sat rda kullan lan youmlntemin ad belirtilmi tir Content-Type sat r
request-body nin nas l kodland n goumlsterir Content-Length sat r nda request-body nin kaccedil
byte uzunlu unda oldu u goumlsterilir [37]
342 HTTP Request Nesnesinin Oumlzellikleri ve Youmlntemleri
Request nesnesi be tane temel fonksiyon bulundurmaktad r [43] Bunlar
Querystring URL iccedilersinde bulunan dosya ismi ile birlikte goumlnderilen bilginin veya
form iccedilerisinden GET
youmlntemi ile goumlnderilen bilgilerin al nmas nda kullan l r
Form POST
youmlntemi genellikle form iccedilerisinden bilgi al nmas iccedilin kullan l r
Servervariables Web sunucu request ile ilgili bilgilere (Http ServerVariables)
ula may sa layan bir youmlntemidir
Cookies(Ccedilerezler) Kullan c n n taray c s sunucudan gelen ccedilerezleri kabul ediyor ise
bu bilgilere ula lmas n sa lar
26
ClientCertificate Dijital bir sertifikad r Sunucu ve istemcinin birbirini tan mlamas
iccedilin kullan l r
343 HTTP Response Nesnesi
HTTP response nesnesi HTTP request nesnesine benzer ekilde goumlsterilir
ltstatus-linegt
ltheadersgt
ltblank linegt
[ltresponse-bodygt]
HTTP request nesnesinden tek fark ilk sat rda istek bilgisinin yerine iccedileri in durum
bilgisi vard r Durum sat r istek kayna
hakk nda temin edilen bir durum kodunu bildirir
A a da basit bir HTTP response kod parccedilas
goumlsterilmektedir
HTTP11 200 OK
Date Sat 31 March 2009 165959 GMT
Content-Type texthtmlcharset=ISO-8859-1
Content-Length 122
lthtmlgt
ltheadgt
lttitlegtFirat Universitesilttitlegt
ltheadgt
ltbodygt
lt-- body buraya gelir --gt
ltbodygt
lthtmlgt
Bu oumlrnekte durum sat r nda 200 eklinde bir HTTP durum kodu ve Tamam (OK)
diye bir mesaj verilmektedir Durum sat r her zaman durum kodu ve her hangi bir kar kl
oumlnlemek iccedilin k sa bir mesaj iccedilerir A a da en yayg n kullan lan durum kodlar verilmektedir
200 (OK) Sunucu ba ar l istekler iccedilin bu kodu kullan r
304 (NOT MODIFIED) Sunucu goumlnderilen istekle ilgili verilerin daha i lenmedi ini
istemciye bildirmek iccedilin bu kod kullan l r Taray c lar n oumln bellek mekanizmalar iccedilin en s k
kullan lan koddur
27
401 (UNAUTHORIZED) stemcinin kaynak eri im yetkisi yoktur
anlam nda
kullan l r Genellikle bu taray c n n sunucudan kullan c ad ve ifre gibi bilgi giri i istemesiyle
olu an hatalarda meydana gelir
403 (FORBIDDEN) Yetki elde etmek iccedilin istemci ba ar s z oldu
hata kodudur 401
hatas ndan sonra e er do ru bir kullan c ad ve ifre ile oturum accedil lmamas halinde genelde bu
hata kodu olu ur
404 (NOT FOUND) Kaynak belirtilen yerde bulunamad nda bu hata kodu uumlretilir
Kod parccedilas n n ikinci sat r nda uumlretilen cevab n tarihi ve saati Date ba l nda
sunucuya goumlnderilir Content-Type ve Content-Length ba l klar POST youmlnteminde oldu u gibi
kullan l r BODY cevab basitccedile istemci kayna (iccedilerik duumlz metin ikili veri ya da farkl
tuumlrden
bilgiler olabilir) HTML kayna n iccedilerir [42]
35 AJAX leti im Teknikleri
Web uygulamalar nda ccedilo unlukla kullan c istekleri bir form uumlzerinden yap l r ve
sunucu cevab h zl bir ekilde Java ya da Php gibi bir programlama dili ile olu turulur Normal
Web uygulama modelinde kullan c daima istek uumlretir boumlylece kullan c lar n h zl ca
t klamalar yla olu an yuumlksek h zlardaki sayfa istekleri genellikle rastgele aral klarla olu ur ve
her bir istek h z n n cevab duuml uumlktuumlr [41]
AJAX uygulamalar nda yukarda bahsedilen eksikli in oumlnuumlne geccedilebilmek iccedilin ccedile itli
ileti im teknikleri geli tirilmi tir Bu teknikler
Gizli Ccedilerccedileve (Hidden Frame) Tekni i stemci-sunucu ileti iminde kullan lan gizli
ccedilerccedileve yap s yuumlksekli i ve geni li i 0 pikselden olu an ekranda goumlruumlnmeyen bir
frameset yap s na dayan r
XMLHttp Requests (XHR) AJAX teknolojisinin temel nesnesidir A a daki ba l kta
ayr nt l bir biccedilimde incelenecektir
351 XMLHttp Requests (XHR) Nesnesi
AJAX la do rudan ilgili teknolojilerin ccedilo u asenkron ve XML tekni i ile yak ndan
ilgilidir Ccediluumlnkuuml veri kodlama yollar ve ileti im katmanlar n n tedarik edilmesi bu teknikler ve
kuumltuumlphaneler uumlzerinden hareket eder Ccedilo u durumda bu XMLHttpRequest nesnesi kullan l r
ancak IFrame lerde popuumllerdir Ccedilerezler veya ActiveX Java goumlmuumlluuml ba ka bir alternatif de
kullan labilir [41]
28
XHR Nesnesi Internet Explorer 50 (IE 5) iccedilindeki ActiveX control ile ortaya ccedil km t r
XHR Javascript ile olu turulur [44] Sayfalar n tamamen yeniden yuumlklenmeden sa lanan parccedilal
guumlncelleme oumlzelli i bu nesne sayesinde olmaktad r Arka planda ccedilal an bu sistem sayesinde
asenkron bir ileti im gerccedilekle ir Yenilenme s ras nda taray c yla ba lant kesilmeksizin yeni bir
istek yap labilir
World Wide Web Consortium (W3C) standart organizasyonu standartla amam
XMLHttpRequest nesnenin tuumlm taray c larda kullan labilen youmlntem ve oumlzelliklerinin genel bir
alt kuumlmesini olu turma ccedilal malar suumlrmektedir u anda kullan lan kural kuumlmesi W3C DOM
Level 3 yuumlkleme ve kaydetme oumlzellikleri iccedilerir kinci ccedilal ma tasla
wwww3orgTRXMLHttpRequest adresinde bulunabilir Henuumlz bir standart haline
gelememesinin nedeni taray c dan taray c ya goumlre farkl davran lar goumlstermesidir
Ccedilal ma tasla na goumlre XHR nesnesinin iki goumlrevi vard r Birincisi HTTP yolu ile
sunucuya programlanabilir ba lant kuran betiklerin ccedilal mas na izin verir kinci ifade ekli ise
normal HTTP istekcevap doumlnguumlsuumlnuumln d nda sunucuyla ileti ime izin verir
XMLHttpRequest Microsoft taray c ccedile itlerinde Mozilla Firefox Konqueror Opera
ve Safari gibi neredeyse tuumlm modern taray c lar taraf ndan desteklenmektedir [42]
3511 XMLHttpRequest Nesnesi Olu turma
Nesneler olu turulurken farkl taray c lar iccedilin farkl kurallar vard r Oumlrne in Microsoft
Internet Explorer XMLHttpRequest nesnesini bir ActiveX nesnesi olarak Safari Mozilla
Firefox ve Opera ise sadece normal bir JavaScript nesnesi olarak yorumlar
Windows un guumlncelleme sisteminin temelini olu turan ActiveX Web sayfalar ndaki
aktif nesneleri etkinle tiren oumlzel bir Microsoft teknolojisidir ActiveX i mevcut Web taray c lar
aras nda u anda sadece Microsoft Internet Explorer desteklemektedir Microsoft IE nin di er
suumlruumlmleri iccedilin MSXML geli tirerek daha aktif ve kararl bir yap olu turulmu tur IE nin farkl
suumlruumlmleri iccedilin a a daki bile enler kullan l r [45]
MicrosoftXMLHttp
MSXML2XMLHttp
MSXML2XMLHttp30
MSXML2XMLHttp40
MSXML2XMLHttp50
29
IE 60+ taray c lar iccedilin a a daki tan mlama yap l r
var nesne = new ActiveXObject(Msxml2XMLHTTP)
IE 55 suumlruumlmleri iccedilin ise a a daki tan mlama yap l r
var nesne = new ActiveXObject(MicrosoftXMLHTTP)
Mozilla Firefox Opera Safari gibi taray c lar iccedilin ise a a daki tan mlama yap l r
var nesne = new XMLHttpRequest ()
Ayn anda birden fazla internet taray c s (ie firefox opera vb) ile uyumlu Web
uygulamalar iccedilin ccedilapraz taray c deste i ifadesi kullan lmaktad r Ccedilapraz taray c deste i bir
arayuumlz kodlamas nda kodlay c lar n en ccedilok zaman harcad konudur Guumlnuumlmuumlzde ccedilapraz
taray c deste i bir zorunluluk haline gelmi tir [46] AJAX uygulamalar n n sorunsuz tuumlm
taray c larla uyumlu bir ekilde ccedilal abilmesi iccedilin JavaScript iccedilerisinde try-catch bloklar
yazarak taray c ya goumlre yeni bir nesne olu turulur
function NesneOlustur()
var nesne
try
nesne = new ActiveXObject(Msxml2XMLHTTP) IE 60+ taray c lar iccedilin
catch(e)
try
nesne = new ActiveXObject(MicrosoftXMLHTTP) IE 55 taray c lar iccedilin
catch(e)
try
nesne = new XMLHttpRequest () Firefox Opera 80+ ve Safari taray c lar iccedilin
30
catch(e)
alert( Maalesef taray c n z AJAX desteklemiyor)
return null
return nesne
Yukar da tan mlanan fonksiyon sayesinde dinamik ve ccedilapraz taray c deste ine sahip bir
XHR nesnesi olu turulmu tur
3512 XHR Nesnesinin Oumlzellik ve Youmlntemleri
XMLHttpRequest nesnesine eklenebilen oumlzellikler Tablo 31 de goumlsterilmektedir [42]
Tablo 31 Standart XHR nesnesinin oumlzellikleri
Oumlzellikler Tan mlar
onreadystatechange
Nesnenin readyState oumlzelli i de i ti inde hangi olay tutucunun (event
handler) ccedila r laca n belirler
readyState ste in durumunu raporlayan tamsay de eridir
0 = uninitialized ( stek haz rlanmad Henuumlz open youmlntemi kullan lmad )
1 = loading ( stek haz rland goumlnderiliyor)
2 = loaded ( stek goumlnderildi)
3 = interactive ( stek de erlendiriliyor ve sonuccedil bekleniyor)
4 = completed ( stek tamamland ve sonuccedil geldi)
responseText Form iccedilindeki metin dizesi sunucu taraf ndan veriye doumlnuuml tuumlruumlluumlr
responseXML Sunucu taraf ndan bir belge nesnesi gibi ifade edilen veri geri doumlnduumlruumlluumlr
Status Sunucu taraf ndan geri doumlnduumlruumllen HTTP durum kodudur Oumlrne in 404
kodu Not Found yani istenilen sayfa bulunamad anlam na gelir 200 ise
OK de eri goumlnderir ve i lemin tamamland n belirtir
31
statusText Status oumlzelli inin metin kar l n verir
XMLHttpRequest nesnesinin fonksiyonunu artt ran ek youmlntemler Tablo 32 de
goumlsterilmektedir Bu youmlntemler sayesinde sunucuyla asenkron ileti im kurulur
Tablo 32 Standart XHR nesnesinin fonksiyonlar
[42]
Youmlntemler Tan mlar
abort() Geccedilerli iste i iptal eder
getAllResponseHeaders()
Gelen cevab n ba l k bilgilerini string olarak getirir
getresponseHeader(x) x gibi bir parametre olarak verilen ba l k bilgisini getirir
setRequestHeader(xy) stekle goumlnderilen ba l k bilgisine istenilen etiketi ya da de eri atar
Tablodaki youmlntemler d nda open ve send youmlntemleri de s kccedila kullan lmaktad r
Open youmlnteminin parametreleri a a da goumlsterilmektedir
nesneopen( POST | GET URL asynch username password)
1 Parametre Web sayfas na yap lacak iste in hangi youmlntemle yap laca n belirtir
2 Parametre stek yap lacak Web sayfas n n URL adresi E er GET youmlntemi
kullan l yorsa querystring lerin de erleri URL e birle tirilerek belirtilmelidir
3 Parametre True de eriyle yap lacak iste in e zamans z olaca false de eri ile
e zamanl
olaca belirlenir E er false de eri verilirse i lem bitene kadar taray c di er
kullan c isteklerine cevap veremeyecektir True yap l rsa istek ayr bir i lem olarak ele
al nacakt r
4 ve 5 Parametre Opsiyonel parametreler olup e er istek yap lan Web sayfas ifre ve
kullan c ad istiyorsa bu ekilde goumlnderilebilir [47]
Open ile haz rlanan istek sunucuya goumlnderilir E er open ile accedil lan istek post metodunu
kullan yorsa send metodu parametre olarak goumlnderilecek veriyi ta yabilir
Send metodu parametresiz veya null parametresi ile de kullan labilinir Send metodunda
cevab n gelip gelmedi inin anla labilmesi iccedilin yani e zamanl haberle menin hangi safhada
oldu unun belirlenebilmesi iccedilin Tablo 31 deki oumlzellikler eklenir Send metodunun kullan m
ekli a a da verilmi tir [42 47 48 49]
nesnesend() veya nesnesend(null)
32
3513 XHR Ccedilal ma Mant
ekil 313 bir AJAX uygulamas nda standart etkile imli bir paradigmay
goumlsterir [49]
lem ad mlar a a da s ralanmaktad r
ekil 313 Standart AJAX etkile imi [49]
1 stemci tarafl bir olay AJAX olay (event) tetikler stemcinin a a daki gibi her
hangi bir hareketi onchange olay n ba lat r
ltinput type=text d=eposta name=eposta onblur=validateEposta()gt
2 Oumlrnek bir XHR nesnesi olu turmak iccedilin open() youmlntemi kullan l r ve ccedila r lar iccedilin
ayarlan r URL ayarlar iste e goumlre kullan lacak HTTP youmlntemlerinden GET ya da
POST a goumlre belirlenir A a daki kod oumlrne inde oldu u gibi istek send() youmlntemi
ile bir ccedila r y tetikler
var xmlHttp
function validateEposta()
var eposta= documentgetElementById(eposta)
var url = validateeposta= + escape(epostavalue)
if (windowActiveXObject)
xmlHttp = new ActiveXObject(MicrosoftXMLHTTP)
else if (windowXMLHttpRequest)
xmlHttp = new XMLHttpRequest()
xmlHttpopen(GET url)
xmlHttponreadystatechange = gericagir
33
xmlHttpsend(null)
3 Sunucuya bir istek yap l r Bu bir servlet CGI script PHP ya da ASPNET ile
yaz lm herhangi bir sunucu tarafl (server-side) script olabilir
4 Sunucu herhangi bir veri ambar na eri ebilir
5 stek taray c ya geri doumlnduumlruumlluumlr XHR nesnesi Content-Type ayar textxml dir
XHR nesnesi sadece texthtml tipindeki sonuccedillar i leyebilir Daha karma k
oumlrneklerde cevap JavaScript DOM manipuumllasyon ya da ba ka benzer teknolojiler
iccedilerebilir
responsesetHeader(Cache-Control no-cache)
responsesetHeader(Pragma no-cache)
Taray c lokal sonuccedillar oumln belle inde depolamaz Bunun iccedilin yukar daki kod sat rlar na
ihtiyaccedil duyar
6 Bu oumlrnekte i lemler geri doumlnduumlruumllduuml uumlnde gericagir() ad ndaki XHR fonksiyonu
ayarlan r Bu fonksiyon sunucudan goumlnderilen durum kodlar na bakar ve XHR
nesnesinin readyState oumlzelli ini kontrol eder gericagir() fonksiyonu beklendi i gibi
i lenmi se a a daki gibi bir kod parccedilas goumlruumlluumlr
function gericagir()
if (xmlHttpreadyState == 4)
if (xmlHttpstatus == 200)
stek Ba ar l
Yukar daki anlat mla XHR nesnesinin ccedilal ma mant na de inilmi tir Genellikle
kullan lan standart ccedila r lar oumlrneklenmi tir Bu ccedila r lar yap l rken bir kuumltuumlphaneden yap lan bir
uygulamadan da faydalan labilir Yeni bir ccedilal ma alan olmas na ra men accedil k kaynak
topluluklar nda hat r say l r etkinlikler yap lmaktad r [49]
Uygulamalar olu turulurken genellikle ccedile itli frameworkler ve toolkitlerden faydalan l r
Bunlardan baz lar sadece istemci tarafl ccedilal r baz lar ise sunucu uumlzerinde ccedilal maya ihtiyaccedil
duyar
34
Bu frameworkler suumlrekli de i en ve geli en bir ortam oldu u iccedilin yeni kuumltuumlphaneler ve
suumlruumlmleri takip edilmelidir En yayg n kullan lan kuumltuumlphanelerin ba nda Prototype
scriptaculous Dojo Toolkit Direct Web Remoting (DWR) Taconite ve Rico gelmektedir [49]
36 AJAX Olu turan Bile enler
Asynchronous JavaScript and XML kelimelerinin ba harflerinden olu an AJAX
kavram kullan l zengin Web uygulamalar geli tirebilmek iccedilin pratik bir araccedilt r [50]
AJAX n A parccedilas veri ileti im tekni ini JA parccedilas ileti im youmlntemini X
parccedilas tekni in veri kodlama k sm n olu turur AJAX tam manas yla anlayabilmek iccedilin onu
olu turan bile enlerin her birini de anlamak gerekmektedir [41]
361 E zamanl Olmayan leti im
AJAX tekni inin ccedilekirde ini olu turan XMLHttpRequest nesnesi hem e zamanl hem
de e zamans z olarak ccedilal abilen bir yap uumlzerine kurulmu tur
Ccedilo u AJAX uygulamas XHR nesnesini asenkron olarak kullan r Asenkron istek
taray c ya goumlnderilir ama sunucudan bir cevap gelmesini beklemektense sonraki istek kodlar
i letilmeye devam eder lenen cevap goumlnderildi inde XHR nesnesinin onreadystatechange
oumlzelli i bir fonksiyona ba lan r Bu fonksiyonun i letilmesinden sonra readystate koduyla
iste in durumu test edilir readystate oumlzelli i 4 de erini ald nda sunucuya istek tamamland
ve sonuccedil geldi mesaj gider [51]
A a daki kod parccedilas nda asenkron bir ileti im goumlsterilmektedir [51]
get recipe using Ajax
function getRecipe(evnt)
if (xmlhttp) xmlhttp = aaGetXmlHttpRequest( )
if (xmlhttp) return
var drink = encodeURIComponent(documentgetElementById(drink)value)
var qry = drink= + drink
var url = recipephp + qry
xmlhttpopen(GET url true)
xmlhttponreadystatechange = printRecipe
xmlhttpsend(null)
if (evnt ampamp evntpreventDefault( ))
evntpreventDefault( )
35
return false
E zamans z ileti imde kullan c ayn zaman diliminde birden fazla i lem yapabilir
Oumlrne in Web sayfas nda bir form dolduruldu unda formdaki bilgiler AJAX ile goumlnderilirken
i lemin bitmesini beklemek gerekmemektedir O zaman diliminde Web sayfas n n ba ka bir
yerinde bulunan anket cevapland r labilir Ccediluumlnkuuml e zamanl
ccedilal l rken bloke edilen JavaScript
motoru e zamans z ccedilal rken serbesttir ve ba ka isteklerin goumlnderilmesine muumlsaade eder Yani
ayn zaman dilimi iccedilerisinde birden fazla iste i kabul edebilir [52]
ekil 314 E zamanl olmayan ileti im modeli
ekil 314 te goumlruumllduuml uuml gibi ayn zaman dilimi iccedilerisinde 4 adet istek yap lm t r
Kullan c bu isteklerin tamamlanmas n beklemek zorunda de ildir Bu sebeple istemci ve
sunucu aras ndaki t kla-bekle-t kla-bekle etkile imi ortadan kalkmaktad r
362 E zamanl leti im
Senkron isteklerde taray c cevap iccedilin beklerken kilitlenir
var state = documentforms[0]elements[0]value
var url = ajaxphpstate= + state
xmlhttpopen(GET url false)
xmlhttpsend(null)
alert(xmlhttpgetAllResponseHeaders( ))
Yukar daki kod dizesiyle bir form alan na Web servisi uumlzerindeki HTTP GET istek
yap s kullan larak eri ilir Uumlccediluumlncuuml sat rdaki open youmlnteminin uumlccediluumlncuuml parametresinin false
olmas n n anlam iste in e zamanl (senkron) oldu unu goumlsterir Herhangi bir parametre
almadan null de erli istek goumlnderilir stek goumlnderildikten hemen sonra uyar mesaj kutusu
36
accedil larak cevap ba l yaz l r [51] Kullan lan Web servisi h zl ysa cevap hemen gelir E er
servis yava sa istek bitinceye kadar di er sayfa aktiviteleri gerccedilekle emez [51]
E zamanl
ileti imde ayn zaman diliminde yaln zca bir i lem yap labilinir Web
taray c m zdan uzaktaki Web sunucusuna goumlnderilen istek Web sunucusunda i lenir ve tekrar
geldi i yoldan Web taray c s na geri doumlner Bu i lem belli bir zaman al r E zamanl
ccedilal rken
bu zaman diliminde ba ka bir istek goumlnderilemez [52]
E zamanl
ccedilal ma oumlzellikle Web sunucusu ayn bilgisayarda ise veya yak n olan bir
LAN uumlzerindeyse sa l kl ccedilal abilir Fakat Web sunucusu a r bir yuumlk alt ndaysa veya Web
taray c s Web sunucusuyla yava bir ba lant uumlzerinden etkile ime geccediltiyse koumltuuml bir
performans verecektir Ccediluumlnkuuml Web taray c s iccedilindeki JavaScript motoru goumlnderdi i istek
tamamlan ncaya kadar bloke edilir ve Web taray c s donmu bir ekilde iste in
tamamlanmas n bekler Bu zaman diliminde kullan c goumlnderilen iste i iptal de edemez Bu
yuumlzden Web sayfas ndaki ba ka bir noktaya t klayamaz veya ba ka bir sekmeye geccedili yapamaz
[52]
ekil 315 E zamanl
ileti im modeli
ekil 315 de goumlruumllduuml uuml gibi Web taray c s ndan goumlnderilen 1 nolu istek Web
sunucusuna iletilmektedir Al nan istek i lendikten sonra Web taray c s na geri
goumlnderilmektedir Bu zaman diliminde ba ka bir istek yap lamaz
363 Javascript
1995 y l nda Brendan Eich ad ndaki yaz l m geli tiricisi taraf ndan Netscape Navigator
20 ile birlikte geli tirilen JavaScript dili istemci tarafl
(client-side) bir betik (script) dilidir
Web sayfalar nda dinamik iccedilerik sa lamak ya da kullan c yla ileti im kurmak iccedilin kullan l r [53]
Bu ileti imin sa lanabilmesi iccedilin ortak kurallar duumlnyada uluslararas standart kurumu olan
Avrupa Bilgisayar Uumlreticileri Birli i (European Computer Manufacturers Association-ECMA)
taraf ndan belirlenir Temel kurallar ECMA Script (ECMA-262) ad verilen bir standartta
toplanm t r [54]
37
Javascript in soumlz dizim kurallar C diline benzerlik goumlsterir Derleme i lemi yap lmayan
ayr t rmal (parsed language) bir dildir Nesne youmlnelimli programlama (Object Oriented
Programming - OOP) yetene ine sahiptir [55]
AJAX n JavaScript le olan ili kisi k saca u ekilde oumlzetlenir Herkes taraf ndan
bilinen goumlnder (submit)-cevap(response) doumlnguumlsuumlnuumln oumlnuumlne geccedilerek kullan c lar n Web
sunucusuyla direk etkile im iccedilinde bulunmas n sa lar [56] AJAX goumlnder duuml mesi olmaks z n
sunucu etkile imini sa lar Veriye ihtiyaccedil duyuldu unda Web sayfas iccedilindeki Javascript kodlar
ile bir istek yapar Sunucu cevab tam bir HTML sayfas olarak de il veri olarak geri doumlnduumlruumlr
ve istemciyi cevaplar Cevab n bu ekilde olu turulmas Web uygulamalar n n masauumlstuuml
uygulamalar gibi ccedilal abilmesini sa lar [56]
Sonuccedil olarak Javascript HTML kodlar aras na goumlmuumllebilen kod parccedilalar d r Bunun
yan s ra tek ba na js uzant l JavaScript kodlar da yaz labilir Bu kodlar Internet Explorer
Firefox Opera vb tuumlm taray c lar taraf ndan desteklendi i iccedilin sorunsuz ccedilal r [57]
3631 JavaScript Ccedilal ma Prensibi
JavaScript kodlar
iccedilin herhangi bir metin editoumlruuml kullan labilir ya da Notepad gibi bir
duumlz yaz program yla da kodlar olu turulabilir Taray c lar n yorumlayabilmesi iccedilin ltSCRIPTgt
etiketiyle ba layan ltSCRIPTgt etiket ile biten JavaScript kodlar HTML belgelerinin ccedile itli
yerlerine eklenebilir Eklenen kodlar kullan c lar n HTML belgesindeki bir ba lant ya t klamas
veya klavyede bir tu a basmas yla tetiklenir ya da HTML sayfas kullan c
Browser nda
goumlruumlntuumllendi i anda otomatik olarak ccedilal maya ba lar Otomatik ccedilal an Javascript kodu ise iki
ayr youmlntemle ccedilal t r labilir lk youmlntem HTML kodlar i letilmeden oumlnce (yani Web sayfas
kullan c n n Web Browser nda goumlruumlntuumllenmeden oumlnce) ccedilal mas ikinci youmlntem sayfa
goumlruumlntuumllendikten sonra script kodlar n n ccedilal mas d r [58] Bu youmlntemler a a da s ras yla
accedil klanmaktad r
HEAD boumlluumlmuumlnde
BODY boumlluumlmuumlnde
HEAD Boumlluumlmuumlndeki Scriptler HEAD etiketleri iccediline ltSCRIPTgt ltSCRIPTgt etiketi
kullanarak istenilen JavaScript kodlar
eklenebilir Bu kodlar HTML sayfas n n BODY boumlluumlmuuml
yuumlklenmeden i lenir
38
ltHTMLgt
ltHEADgt
ltSCRIPT LANGUAGE=Javascript12gt
alert(Merhaba Duumlnya) ltSCRIPTgt
ltHEADgt
ltBODYgt
ltBgtDeneme Sayfas na Ho geldinizltBgtltbrgt
ltBODYgt
ltHTMLgt
Yukar daki oumlrnekte kaynak kodlar yukar dan a a ya do ru i letilirken sayfada ilk
goumlruumlntuumllenecek olan alert( ) komutuyla ekrana yaz lan Merhaba Duumlnya
ileti im kutusu
olacakt r Gelen ileti im kutusunda Tamam butonuna bas ld nda body boumlluumlmuumlndeki
kodlar n i lenmesine s ra gelecektir Ekrana Deneme Sayfas na Ho geldiniz mesaj
yazacakt r
BODY Boumlluumlmuumlndeki Scriptler HTML belgesinin BODY boumlluumlmuumlnde JavaScript
kullanmak iccedilin iki yol vard r
Do rudan ccedilal acak kodlar ve kullan c taraf ndan ccedilal acak kodlar
Do rudan ccedilal acak JavaScript kodlar
ltBODYgtltBODYgt etiketleri aras na
ltSCRIPTgt etiketi kullan larak HTML belgesinin istenilen yerine yaz l r Bu cuumlmleler taray c
taraf ndan okundu u anda yerine getirilir
ltHTMLgt
ltHEADgt
kinci Ornek
ltHEADgt
ltBODYgt
ltSCRIPT LANGUAGE=Javascript12gt
alert(Javascript duumlnyas na ho geldiniz)
ltSCRIPTgt
ltBODYgt
ltHTMLgt
Yukar daki oumlrnekte ise kod i leme s ras na uygun olarak i letilerek oumlnce HEAD
etiketleri yorumlanarak ekrana kinci Ornek yaz p hemen ard ndan ileti im kutusu ccedil karak
39
Javascript duumlnyas na ho geldiniz yazacakt r Kullan lan di er bir youmlntem ise kullan c
taraf ndan bir olay n ba lat lmas yla bir JavaScript kodunun ccedilal t r lmas d r
ltHTMLgt
ltHEADgt
ltSCRIPT LANGUAGE=Javascript12gt
genel de i ken tan mlar
var n = Merhaba Duumlnya
bu fonksiyon uyar kutusu accedilar
function merhaba()
alert(n)
ltSCRIPTgt
ltHEADgt
ltBODYgt
ltbrgtltbrgtltbrgtltbrgtltBgtButona T klad n zda Merhaba Duumlnya yazan ileti im kutusu ekrana
gelecektirltBgtltbrgtltbrgt
ltFORMgt
ltINPUT TYPE=SUBMIT NAME=dugme1 VALUE=TIKLAYINIZ
onclick=merhaba()gt
ltFORMgt
ltBODYgt
ltHTMLgt
Yukar daki oumlrnekte ise HEAD etiketleri aras nda de i ken tan mlama ve fonksiyon
olu turma i lemleri yap lm t r BODY komutu i letildikten sonra FORM ouml esiyle olu turulan
duuml me kullan c taraf ndan t kland nda script kodu tetiklenerek fonksiyon ccedila r l r ve mesaj
kutusu ekrana gelir
Ayr ca ltBODYgt iccedilinde URL kullan larak da a a daki oumlrnek kodla goumlsterildi i gibi
JavaScript kodu ccedila r labilmek muumlmkuumlnduumlr
ltA HREF=javascript alert(Ccedil kmak istedi inizden emin misiniz)gtSiteden Ccedil kltAgt
40
3632 Javascript Dilinin Oumlzellikleri
JavaScript dilinin temel soumlz dizim yap s na a a da incelenecektir
36321 De i kenler
Bir de eri iccedileren bellek adlar n ifade ederler De i kenler verileri saklar ve onlara
eri imi sa larlar De i kenlerin bir ad olur bir de de eri olur Program boyunca de i kenin ad
de i mez fakat iccedileri i de i ebilir
Bir JavaScript de i keni belli kurallara uymak zorundad r
a) De i kenler harfle ya da alt ccedilizgi (_) ile ba lamal d r Rakam veya di er
i aretler birinci karakter olarak kullan lamaz fakat de i ken ad n n di er
karakterlerinde kullan labilir
b) Javascript buumlyuumlk kuumlccediluumlk harfe kar duyarl d r (case-sensitive oumlzellli i) Ayn
kelimenin buumlyuumlk harfle yaz lmas ile kuumlccediluumlk harfle yaz lmas farkl isimler
olarak alg lanmas na neden olur
c) De i ken isimleri iccedilinde bo luk olmamal d r
d) Kullan c lar n bilgisayar nda kullan lan dil setinin ayarlar her bir kullan c iccedilin
farkl l k goumlsterebilece i iccedilin ngilizce alfabede bulunmayan Tuumlrkccedile ve di er
dillerdeki high-ASCII karakterleri ( ile uuml Uuml ouml Ouml ccedil ve Ccedil)
kullanmamakta fayda vard r [58]
36322 Kapsam
Bir de i kene bir de er atand nda bu de erin geccedilerli olaca suumlreyi belirlemek iccedilin
kapsam (scope) kavram kullan l r Bir de i kenin kapsam
global ya da lokal olabilir Bir
global de i kene sayfa uumlzerinde herhangi bir JavaScript ten eri ilebilir Lokal de i ken ise
de erin atand yordam iccedilinde geccedilerlidir
A a daki oumlrnekte bir de i kenin kendisine atama yaparak de er verilir
adi= Zeynep
Bir fonksiyon yaz l rken yerel bir de i ken olu turmak iccedilin a a daki oumlrnekte oldu u
gibi var kelimesiyle tan mlama yap l r
41
function toplama()
var sayi=1
toplam=0
deyimler
Yukar daki oumlrnekte sayi adl de i ken toplama fonksiyonu iccedilin yerel toplam de i keni
ise tuumlm sayfa iccedilin genel (global) de i ken olacakt r De i kenlere atanan de erler Tablo
33 deki de i ken tuumlrlerinden herhangi biri olabilir Verinin tuumlruumlne ba l olarak de er uumlzerinde
belirli i lemler yap labilir ya da yap lamaz Oumlrne in iki string de er uumlzerinde aritmetik i lem
yap lamaz
Tablo 33 De i ken tuumlrleri
De i ken Tuumlrleri
Numbers Tam ve ondal kl
say lar iccedilerir Pozitif 0 ya da negatif olabilir
Booleans Mant ksal veri tuumlruumlduumlr True (Do ru) ya da False (Yanl ) de erini al r Sorgulama
sonunda geriye True iccedilin 1 False iccedilin 0 de erini doumlnduumlruumlr
Strings Karakter bilgi iccedileren bir de i kendir T rnak iccedilinde yaz lan ifadeler de i kene
atan r
Objects Taray c ya ait nesnelerdir nesne= new Object() eklinde kodlamada kullan labilir
Null Oumlzel bir de i kendir ccedili bo ya da de ersiz olarak ifade edilir
Undefined
Bir de i ken yarat ld ktan sonra iccedilerdi i tan ms z de eri simgeler
36323 leccediller (Operators)
leccediller iki ya da daha fazla de er uumlzerinde i lem yap lmas n sa lar De erler ya da
de i kenler aras nda toplama ccedil karma mod gibi i lemler yap labilir
Tablo 34 leccediller ve goumlrevleri
leccediller ve Goumlrevleri
+ Toplama
- Ccedil karma
Ccedilarpma
Boumllme
42
MOD Boumllmede kalan verir (10 3 i lemi 1 de erini verir )
++
Tek art r m De er 1 art r l r
-- Tekli azaltma
- Negatifle tirme lenenin negatif de erini doumlnduumlruumlr
36324 kili leccediller
kili i leccediller birden ccedilok kar la t rma i lemini tek bir ko ul ifadesi olarak birle tirirler
Oumlrne in
sayi =1 AND dongu gt 1000 ise gibi
Tablo 35 kili i leccediller
kili i leccediller
ampamp
Mant ksal Ve And ki ifade de do ruysa True de erini doumlnduumlruumlr
|| Mant ksal Veya Or fadelerden birisi do ruysa True de erini doumlnduumlruumlr
Mant ksal De il Not Negatifle tirme i lemi do ruysa True de erini doumlnduumlruumlr
36325 Atama Deyimi
Atama deyimi (=) bir de i kene sa dan bir de erin atanmas n sa lar De i kenlere
tuumlrlerine ve tan mlamalar na uygun olan herhangi bir de er atanabilir
Oumlrnek sayi=100
Oumlrnek toplam=(fiyat+kdv)
Sa daki de eri soldaki de i kene atayan += -= = = ifadeleri de kullan labilir
Oumlrne in toplam+=fiyat (di er bir de i kenden gelen fiyat de erini toplam de erine
ekler ve sonucu toplam de i kenine atar)
36326 fadeler
De i kenlerin i leccedillerin ve deyimlerin bir araya gelerek olu turduklar yap lar
ifade
eder
Oumlrne in toplam = sayi 1 sayi2 formuumlluuml bir ifadedir
43
36327 Deyimler
Deyimler belli bir komut ya da soumlz dizimi bile enlerine verilen add r Oumlrne in bir komut
ya da bir IF yap s deyim olabilir
Oumlrnek if (basari_notugt50) deyimler else deyimler
36328 Nesneler
Kendi de erleri oumlzellikleri ve i lemleri olan bile enlere nesne (object) denir JavaScript
dilinde ccedilok say da yerle ik nesne vard r
JavaScript buumltuumln Web sayfas n ve taray c y nesneler toplulu u olarak goumlruumlr Bu
sisteme DOM (Document Object Model) denir [59]
JavaScript kullanarak dinamik ve etkile imli goumlruumlnuumlmler elde edilir DOM a JavaScript
ve JScript gibi ECMAScript olan kullan c taraf ndaki bir scripting dili yard m yla eri ilebilinir
DOM la veri al -veri i yeni bir sayfada kullan c ekran na yans t lmaz Parccedilal guumlncelleme
olay n n buumlyuumlk k sm bu modelle gerccedilekle tirilir
Ba lang ccedilta Javascript geli tiricileri kullan c lar na daha zengin uygulama deneyimleri
ya atabilmek ve sayfalardaki etiketlerde dinamik de i imler sa lanabilmesi iccedilin ccedilaba sarf
ediyordu Bu durum sayfalar n bir nesne gibi i lenebilmesini gerekli k ld Boumlylece DOM ortaya
ccedil km t r lk oumlnceleri Javascript ve DOM s k bir ili ki iccedilindeydi sonuccedilta ise iccedilerik ayr larak
geli tirilmi tir DOM sayfalar n JavaScript veya VBScript gibi bir betik dili ile de i tirilebilir
sayfalar n tamamen nesne youmlnelimli goumlsterimidir [60]
DOM ekil 316 da goumlsterilen JavaScript iccedilindeki buumltuumln nesneleri ifade etmektedir
Hiyerar ik olarak ccedilok say da nesneyi iccedilerir NetScape ve Microsoft taray c lar iccedilin DOM
nesneleri farkl oldu u iccedilin yaz lan kodlar uyumlu de ildir [59]
44
ekil 316 Javascript nesneleri [59]
Window nesnesi taray c n n kendisidir Window nesnesi birccedilok youmlnteme oumlzelli e ve
olaya sahiptir Form nesnesi DOM nesnesinin ana nesnesidir Form uumlzerindeki alanlar bu nesne
arac l yla kullan l r [59]
Verilerin yuumlklenmesinde kullan lan XML ile uumlretilen Javascript istemci kodlar ve veri
sunucu uumlzerindeki kodlar aras ndan ayr larak goumlsterilir Bu istemcinin etkilenmeksizin sunucu
uumlzerinde de i iklik yap lmas n sa lar Benzer API iccedileren di er istemciler iccedilin bilgileri accedil a
ccedil kar r [41]
363281 DOM (Document Object Model)
Document Object Model (DOM) XML ve HTMLXHTML iccedilin World Wide Web
Consortium (W3C) taraf ndan geli tirilen bir belgenin a accedil yap s n (tree-based) temsil eden bir
standartt r DOM bir tak m nesneler iccedilin belgenin yap s n temsil etmesinin yan s ra bu
nesnelere eri im iccedilin youmlntemler de sa lar [44]
DOM bir belgenin stilini kaynak dosyas n yap s n ve iccedileri ini guumlnceller ve program
ile scriptlerin belgeye eri imine izin veren bir platformdur Ayn zamanda bir API (application
programming interface) dir [62]
Nesneleri iccedileren belgeler iccedilin standart model olarak DOM uumlccedil boumlluumlme ayr lm t r
Core DOM
XML
HTMLXML DOM - XML
45
HTML DOM
HTML
DOM da her internet sayfas bir belge ve bu belge iccedilerisinde bulunan tuumlm elemanlar ise
nesne olarak kabul edilir DOM sayfa uumlzerindeki her bir XML eleman
iccedilin nesnelerin a accedil
yap s n n resmini goumlrselle tirmenin kolay bir yoludur A a daki oumlrnek basit bir XML
belgesinin doumlrt duuml uumlmden olu an DOM u goumlstermektedir Koumlk Dokuumlman duuml uumlmuuml koumlk etiketi
iccedilin bir Element duuml uumlmuuml alt etiketler iccedilin bir Element duuml uumlmuuml ve alt etiketin sahip olaca
herhangi bir bilgi girilebilen bir metin duuml uumlmuumlduumlr [41]
ltrootTaggt
ltchildTaggtSome TextltchildTaggt
ltrootTaggt
Bir a accedil yap s n n goumlrsel bir temsili a a da goumlsterilmektedir
Dokuumlman
Element (koumlkEtiket)
Element (altEtiket)
Metin
A a daki kod kuumlmesinin [63] DOM goumlsterimi ekil 317 deki gibidir
ltTABLE border=1gt
ltTBODYgt
ltTRgt
ltTDgtOumlgr NoltTDgt
ltTDgtAd Soyad ltTDgt
ltTRgt
ltTRgt
ltTDgt900ltTDgt
ltTDgtZeynep OumlZERltTDgt
ltTRgt
ltTBODYgt
ltTABLEgt
46
ekil 317 DOM a accedil yap s
[63]
Geccedilerli her HTML ve XML belgesindeki element nitelik metin duuml uumlmuuml (text node)
hatta bo luk ve sekme karakterleri(whitespace) bile W3C DOM taraf ndan duuml uumlm (node) olarak
kabul edilir ekil 317 deki gibi belgedeki duuml uumlmlerin kullan m hiyerar isine goumlre
s ralanmas na da duuml uumlm a ac (node tree) denir Belge nesnesi yeni duuml uumlmler olu turmak bu
duuml uumlmlerin oumlzeliklerini de i tirmek ve youmlnetmek iccedilin ccedilok say da youmlnteme sahiptir
363282 DOM Elementinin S k Kullan lan Genel Oumlzellikleri ve Youmlntemleri
A a da duuml uumlmlere eri mek ve youmlnetmek iccedilin s k kullan lan JavaScript youmlntemleri
vard r [64]
getElementById()
Soumlzdizimi
documentgetElementById(herhangiBirID)
Oumlrnek kullan m
element = documentgetElementById(kimlik)
getElementById() youmlntemi id oumlzelli i belirtilen elementlerin referans n n al nmas n
sa lar Ayn id kimli ine sahip ba ka bir element olmas durumunda sadece ilk elementi verir
Di erlerine eri im sa lamaz kimlik
dokuumlman uumlzerinde elementi bulmak iccedilin kullan lacak
e siz bir oumlzelli ini ifade eder
47
getElementsByTagName()
Soumlzdizimi
documentgetElementsByTagName(herhangiBirHTMLElementi)
Oumlrnek kullan m
documentgetElementsByTagName(etiketAdi)
Dokuumlman uumlzerinde belirtilen ayn etiket ismine ait buumltuumln elementlerin bir listesini verir
documentgetElementById(herhangiBirID)documentgetElementsByTagName()
parametresiyle id niteli inin de eri herhangiBirID olan elementin duuml uumlmleri
iccedilindeki tuumlm elementler listelenir
getElementsByName()
Soumlzdizimi
documentgetElementsByName(herhangiBirIsim)
Oumlrnek Kullan m
documentgetElementsByName(baslik)
Bu youmlntem dokuumlman uumlzerinde belirtilen name oumlzelli ine sahip elementlerin bir listesini
verir Oumlrnek kullan mda name niteli inin de eri baslik olan elementleri verir
firstChild
Bu oumlzellik elementin ilk alt elementini verir
Soumlzdizimi
documentgetElementById(herhangiBirID)firstChild
lastChild
Bu oumlzellik elementin son alt eleman n verir
Soumlzdizimi
documentgetElemementById( herhangiBirID )lastChild
48
nodeValue
nodeValue oumlzelli i text comment ve CDATA duuml uumlmlerinin iccedilerdikleri de eri verir
Soumlzdizimi
m= documentgetElemementById( herhangiBirID )lastChildnodeValue
m e er varsa duuml uumlmuumln iccedilerdi i de erin string olarak de eridir document nesnesinin
ve elementlerin nodeValue de eri null doumlner
removeAttribute()
removeAttribute fonksiyonu elementin belirtilen bir oumlzelli inin silinmesini sa lar
Soumlzdizimi
elementremoveAttribute(ozellik)
ozellik silinecek oumlzelli in ad d r
nodeName
Duuml uumlm bilgilerini almak iccedilin kullan l r Geccedilerli duuml uumlmuumln ad n doumlnduumlruumlr
Geccedilerli duuml uumlm element ise elementin tipini doumlnduumlruumlr Nitelik ise nitelik ad n doumlnduumlruumlr
nodeType
Geccedilerli duuml uumlmuumln tuumlruumlnuuml say sal olarak doumlnduumlruumlr
nextSibling
Duuml uumlmler aras gezinti yap labilmesiyi sa lar Geccedilerli duuml uumlmden bir sonrakine referans verir
previousSibling
Geccedilerli duuml uumlmuumln bir oumlncekine referans verir
setAttributeNode
Bir duuml uumlme nitelik atamada kullan l r
Soumlzdizimi
elementsetAttributeNode(nitelik)
49
36329 Fonksiyonlar
Fonksiyonlar birden fazla ad mdan olu an i lemlerin kolayca tek seferde yap lmas n
sa lar Fonksiyonlar bir dizi i lemi yerine getirir ve bir sonuccedil doumlnduumlruumlr Ayr ca fonksiyonlar
parametre olarak kabul edilen birccedilok de er al rlar
Fonksiyonlar n HTML dosyas n n HEAD boumlluumlmuumlne koyulmas yani gerekli buumltuumln
fonksiyonlar alt alta HTML in HEAD boumlluumlmuumlnde yer alacak bir SCRIPT etiketi iccedilinde
olu turulmas taray c n n Javascript yorumlay c s bak m ndan h z kazanmas n sa lar Sonra
ihtiyaccedil duyuldu unda yeni bir SCRIPT etiketi koyarak bu fonksiyon goumlreve ccedila r l r [58]
function fonksiyonun_ad (arguumlman1 arguumlman2 arguumlmanN)
i lemler
deyim 1
deyim 2
deyim N
363210 Accedil klamalar
Programlar n anla l r olmas n sa layan accedil klama sat rlar JavaScriptte bu lt- ve --gt
i aretlerinin aras nda ifade edilir [58]
lt- Accedil klama sat r d r --gt
37 Basit Bir AJAX Oumlrne i
Ekran ccedil kt s ekil 318 de goumlruumllen basit bir oumlrnek uumlzerinde i leyi anlat lacakt r
ekil 318 AJAX oumlrne i
50
indexhtml dosyas accedil ld nda Metnin AJAX la getirilmesi iccedilin tiklayiniz
ba lant s na t kland nda taray c kullan lan AJAX youmlntem sayesinde tuumlm sayfa yeniden
yuumlklenmeden iccedileri i sunucu da depolanan sonuchtm dosyas ndan alarak ekrana yans t r
Yukar daki indexhtml dosyas n n kodlar a a da goumlsterilmektedir
lthtmlgt
ltheadgt
lttitlegtAJAXla oumlrne ilttitlegt
ltscript language=JavaScript type=textjavascriptgt
function getXmlHttpRequestObject()
if (windowXMLHttpRequest)
return new XMLHttpRequest() IE olmayan
else if(windowActiveXObject)
return new ActiveXObject(MicrosoftXMLHTTP) IE
else
alert(Maalesef taray c n z XmlHttpRequest nesnesini desteklememektedir AJAX
destekleyen bir taray c da tekrar deneyiniz)
var receiveReq = getXmlHttpRequestObject()
function cevap()
if (receiveReqreadyState == 4 || receiveReqreadyState == 0)
receiveReqopen(GET sonuchtml true)
receiveReqonreadystatechange = handlecevap
receiveReqsend(null)
function handlecevap()
if (receiveReqreadyState == 4)
documentgetElementById(span_result)innerHTML = receiveReqresponseText
ltscriptgt
ltheadgt
lta href=javascriptcevap()gtMetnin AJAXla getirilmesi icin tiklayinizltagtltbr gt
51
ltspan id=span_resultgtltspangt
lthtmlgt
Oumlrnekte ilk olarak tuumlm taray c larda sorunsuz ccedilal abilmesi iccedilin ccedilapraz taray c deste i
sa lanm t r receiveReq de i keni getXmlHttpRequestObject() ile tan mlanm t r Daha
sonra cevap fonksiyonu olu turulmu tur Sunucudan gelen cevab n durumu ifelse yap s yla
kontrol edilmi tir Sunucudan gelen gelen cevaba goumlre doumlnduumlruumllen de erlerle sonuchtml sayfas
ccedila r larak uygulama sonlan r
AJAX youmlntemi ile ccedilekilen bilginin tutuldu u sonuchtml dosyas nda ise sadece ekil
319 de yazan veri bulunmaktad r
ekil 319 sonuchtml sayfas n n ekran ccedil kt s
38 XML
XML (eXtensible Markup Language) internet te teknik standartlar ve youmlnetim
konusunda yetkili organ olan W3C (World Wide Web Consortium) organizasyonu taraf ndan
geli tirilmi tir XML programc lar n kendi sistemlerini olu turabilecekleri kendi etiketlerini
tan mlayarak ccedilok daha rahat ve etkin programlama yapabilecekleri ve bu belirlenen etiketleri
kendi yap lar iccedilerisinde standartla t rabilece i esnek geli tirilebilir ve kolay uygulanabilir bir
meta-dil (bir dili tan mlamak iccedilin kullan lan soumlzcuumlkler dilbilim dili) dir [65]
XML ile ilgili ilk ve en oumlnemli nokta ba l ba na bir dil olmamas d r Daha ziyade
di er dilleri ya da bir dili olu turan soumlzcuumlkleri olu turmak (vocabularies) iccedilin kullan lan bir
meta-dildir XML bu soumlzluumlklerin olu turulmas iccedilin gerekli kurallar tan mlar [66]
XML bu kural yap s na uygun olarak etiketleri iccedilerik bilgisiyle tan mlayabilir XML nin
esnek yap s sayesinde a a daki oumlrnekte oldu u gibi kullan lan dilde ccedilok farkl tiplerde etiket
olu turulmas na muumlsaittir XML soumlzluuml uumlndeki tek k s tlamas etiketlerin iyi biccedilimlendirilmi
olmas gerekti idir [66]
52
ltnotgt
ltkimegt Melek lt kimegt
ltkimdengt Zeynep lt kimdengt
ltbaslikgt Hatirlatici ltbaslikgt
ltbodygt Bana proje teslim tarihini hatirlat lt bodygt
ltnotgt
Yukar daki not oumlrne i kendi kendini accedil klay c bir oumlrnektir Goumlnderici ve al c bilgisinin
yan nda mesaj metni ve ba l da mevcuttur XML nin HTML de oldu u gibi oumlnceden
tan mlanm etiketleri yoktur XML yazar kendi etiketlerini ve kendi belge yap s n oumlrnekteki
gibi olu turabilir
Her dil farkl d r ama hepsinde iccedileri i i aretlemek iccedilin etiketler kullan l r Etiket
adlar n n seccedilimi ve yap s esnektir ve genellikle gruplarda bilginin payla labilmesi iccedilin standart
XML soumlzluumlkleri kararla t r lm t r [66]
XML 1998 y l nda SGML alt yap s uumlzerine kurulmu tur SGML (Standard
Generalized Markup Language) bir etkinle tirme teknolojisidir HTML gibi uygulamalarda
kullan l r Geni letilebilir aretleme Dili (Extensible Markup Language-XML) nin oldukccedila
basit bir diyalektidir [66]
XML SGML ve HTML sistemlerinin her ikisinin de uygulanmas n kolayla t rmak iccedilin
tasarlanm t r XML ayn zamanda son derece popuumller bir veri format d r Ccediluumlnkuuml ccedilo u
programlama dili taraf ndan desteklenir Bu dil sayesinde geli iguumlzel veri tipleri tan mlamak
kolayd r Ccedilo u kez XML Uzak Yordam Ccedila r s - Remote Procedure Call (RPC) mekanizmas
sayesinde istemci-sunucu ileti imini kolayla t rmak iccedilin kullan lm t r [66] XML elde edilmek
istenen alan bilgileri konfiguumlrasyon parametreleri teknik ccedilizim hesap ccedilizelgesi (spreadsheet)
gibi ouml eleri iccedileren dosyalar n yaz l m nda kullan l r [67]
XML verileri goumlruumlntuumllemek iccedilin de il verilerin platformdan ba ms z bir ekilde
depolanmas ve transferi iccedilin tasarlanm t r XML tuumlm bilgiler duumlz metin format nda saklar Bu
da tuumlm platformlarda sorunsuz bir ekilde kullan labilir olmas n sa lar Bu dosyalar diskte duumlz
metin olarak tutman n bir avantaj
da olu turuldu u programda accedil lmas gerekli de ildir Bu
yaz dosyalar programc n n istedi i bir yaz i leme program nda accedil l p duumlzenlenebilir Ayr ca
XML veriyi duumlz metin (plain text) format nda saklamas ndan dolay veriyi payla t rma
konusunda hem yaz l m hem de donan mdan ba ms z hareket edebilme imkacircn n sunmu tur
53
381 Oumlrnek XML Belgesi Olu turma
XML belgelerinin yap s n n daha iyi kavranabilmesi iccedilin basit bir oumlrnekten yola ccedil k l r
Bir dizi karakter mant ksal bir yap ya ccedilevrilmelidir Bu ccedilevrim a accedil yap s kullan larak
yap labilir Oumlrnek belgede koumlk dizin ya da element ve alt boumlluumlmler iccedilin de dallar belirlenir
denemexml olarak kaydedilecek belgenin iccedileri inde sisteme kay tl kullan c lar n bilgileri
vard r
Haz rlanan denemexml belgesinin a accedil yap s a a daki gibi olu turulmu tur Koumlk
element ve alt dallar ve alt dala ait nitelik belirtilmi tir
ekil 320 denemexml dosyas n n a accedil yap s
A accedil yap s olu turulduktan sonra kodlama k sm na geccedililir XML de kod yaz m n
kolayla t rmak iccedilin Altova XMLSpy MoreMotion XML Editor XMLwriter XML Editor 26
gibi ccedile itli editoumlr programlar kullan labilir Bu tez ccedilal mas nda oldukccedila i levsel oumlzelliklere
sahip Altova XMLSpy yaz l m kullan lm t r Editoumlr kullanarak dokuumlmandaki metinlerin
yap sal elemanlar yaz oumlzellikleri (renk stil biccedilim vb ) belirginle tirilir mlerin otomatik
soyadi
adi
soyadi
eposta
adi
soyadi
eposta
Kullanicilar Kullanici Kullanici_id= 2
Kullanici Kullanici_id= 3
Kullanici Kullanici_id= 1
adi
eposta
54
olarak kapanmas sa lanabilir Olu turulan yap lar n do rulu u ve geccedilerlili i kolayca kontrol
edilebilir Altova XMLSpy editoumlruumlyle olu turulan belge a a daki kodlardan olu maktad r
ltxml version=10 encoding=UTF-8gt lt--Bu XML belgesi kullan c bilgilerini tan mlar --gt ltKullanicilargt
ltKullanici kullanici_id=1gt
ltadigtZeynepltadigt
ltsoyadigtOZERltsoyadigt
ltepostagtz_ozerhotmailcomltepostagt
ltKullanicigt
ltKullanici kullanici_id=2gt
ltadigtYagmurltadigt
ltsoyadigtOZERltsoyadigt
ltepostagty_ozeryahoocomltepostagt
ltKullanicigt
ltKullanici kullanici_id=3gt
ltadigtFatihltadigt
ltsoyadigtAYDOGMUSltsoyadigt
ltepostagtf_aydogmusgmailcomltepostagt
ltKullanicigt ltKullanicilargt
Haz rlanan dokuumlman iyi biccedilimlendirilmi (well-formed) bir yap ya sahiptir ekil 321
de Altova XMLSpy editoumlruumlyle olu turulan belgenin ekran goumlruumlntuumlsuumlnde denemexml
goumlruumllmektedir
55
ekil 321 XML belgesi
382 XML Dokuumlman n n Yap s
XML ile veriler yap bak m ndan moduumllerlik kazanmaktad r Bu sayede verilerin iccedilerik
yap ve sunum k s mlar ayr moduumlller halinde farkl XML dokuumlmanlar nda tutulmaktad r
Her XML belgesini olu turan moduumlller iki boumlluumlmde incelenecektir Bu moduumlller giri
boumlluumlmuuml (prolog) ve belge ya da koumlk duuml uumlm (document node) olarak ayr lm t r
Prolog XML belgesinin ba nda goumlruumlntuumllenir ve belge hakk nda iccedilerikle ilgili bilgiler
iccedilerir XML bildirimleri i lem accedil klamalar yorumlar ve DTD (Document Type
Definition)XML ema iccedilerebilir
yi duumlzenlenmi bir XML dokuumlman tek ve temel bir koumlk duuml uumlm uumlzerine kurulur
Elementler nitelikler metin CDATA (character data) varl k ve yorumlar iste e ba l olarak
eklenebilir
56
ekil 322 Oumlrnek bir XML dokuumlman yap s
[ 66]
3821 Giri Boumlluumlmuuml (Prolog)
Bu boumlluumlmde XML belgesinde bulunabilecek oumln tan mlama konular incelenecektir
3822 XML Bildirimleri
XML dokuumlmanlar genellikle a a daki bildirim sat r yla ba lar Bildirim sat r ndan
oumlnce ba ka komut sat r yaz lmamal d r Tersi bir durumda XML dokuumlman iccedileri i i leme
koyarken do ru bir ekilde okuyamaz ve hata mesaj uumlretir
ltxml version= 10 encoding= UTF-8
gt
Bu i lem sat r nda ba lang ccedil etiketi ve biti etiketi yoktur XML bildiriminin yap ld
ltxml ve gt i lem komut etiketleridir lem komutlar oumlrnekteki gibi biti ik yaz l r Bu oumlrnek
sat rda 2 tane oumlznitelik bar n r Birinci oumlznitelik xml dokuumlman n n hangi suumlruumlm oldu unu bildirir
ve yaz lmas zorunludur En yayg n kullan lan ve en guumlncel suumlruumlmuuml olan 10 yerine ba ka bir
57
de er yaz ld nda dosya i lenmeyebilir kinci oumlznitelik olan encoding belge i lenirken
kullan lacak dil seccediliminin belirtildi i aland r Oumlrnekteki kod birccedilok dili destekleyen UTF-8
karakter dil setini tan mlar
38221 lem Accedil klamalar (Processing Instructions)
Giri boumlluumlmuumlnde di er uygulamalara XML dokuumlman hakk nda bilgi veren i lem
accedil klamalar (Processing Instructions- PIs) dacirchil edilebilir lem accedil klamalar lt karakterleriyle
ba lar ve gt karakterleriyle biter PIs XML belgesinin di er boumlluumlmlerinde goumlruumllebilmesine
ra men genellikle giri boumlluumlmuumlnde goumlruumlluumlr
XML bildirimleri ltxml karakter grubuyla ba lar lem accedil klamalar yla benzerlik
goumlsterir Fakat aralar ndaki fark XML bildirimleri ltxml karakter grubuyla ba larken i lem
accedil klamalar ise lt karakterleriyle ba lar
Bir XSL stylesheet i referans goumlsteren PI goumlsterimi
ltxml-stylesheet type= textxsl
href= stylesheetxsl gt
PI nin ilk ouml esi bir isimdir PI hedefi olarak adland r l r Yukar da goumlsterilen PI xml-
stylesheet ismine sahiptir simler ltxml karakter grubundan - semboluumlyle ayr l r PI ler type=
textxsl href= stylesheetxsl metin karakter dizesine sahiptir Oumlrnek kod sat r nda stylesheet
ad nda metin iccedilerikli bir XSL dosyas referans goumlsterilmi tir
38222 Yorumlar (Comments)
Yorum sat rlar XML belgesinin hemen hemen her yerinde iste e ba l olarak
kullan labilir XML yorum sat rlar XHTML belgelerindeki yap yla ayn d r Ayn karakterlerle
ba larlar
lt--Bu alana yorumlar yaz labilir --gt
Yorum sat rlar XML belgesi i lenirken etkilenmezler Bu sat rlar programc lar n ya da
kullan c lar n program kodlar n kolayca anlayabilmeleri iccedilin yaz l r [68]
58
38223 Dokuumlman Tipi Tan mlama-The Document Type Definition (DTD) ve XML
emalar
XML belgesinin standartla t r lmas iccedilin kullan lan bir yap d r XML belgesinin hangi
elementleri iccedilerece ini ve bu elementlerin oumlzniteliklerinin ne olaca n elementlerin neleri
ta yaca n dokuumlman iccedilerisindeki tekrar eklini ve say s n kurallarla belirtir [69]
382231 DTD kullanman n Avantajlar
Veri depolama XML nin temel amaccedillar ndan birisidir Oumlrne in yaz l m geli tirecek bir
proje ekibi ccedilal rken ortak bir DTD nin olu turulmas yla geli iguumlzel yeni etiketler eklenmesinin
etiketlerle depolanan bilginin hatal s ralanmas n n etiketlere hatal nitelikler eklenmesinin
oumlnuumlne geccedililmi olur Ayr ca i lem yapan program n da bu belgeleri tan mas ve i lemesi kesinlik
kazan r [70] Belge i lenirken geccedilerlilik derleyicileri (validating parsers) XML belgesinin DTD
geccedilerlili i sa lanana kadar tekrar tekrar kontrol eder E er geccedilerlilik kontroluumlnden geccedilemezse
derleyici hata mesaj verir [66]
ccedileri in bir standarda oturtulmas yla AJAX ve dinamik DOM manipuumllasyonunda
istenmeyen gereksiz kod parccedilalar n n ve ccedilal mayan i aretlemelerin oumlnuumlne geccedililir Ayr ca daha
h zl HTML derleyicileri ve daha iyi ccedilapraz taray c performans iccedilin geli mi arama motoru
optimizasyonu sa lan r Bir DOCTYPE belirlemenin en oumlnemli etkisi HTML iccedileri inin nas l
ayr t r ld n ve yorumland n n Web taray c ya goumlsterilmesi gerekti ini belirtmesidir Ayr ca
DOCTYPE ba l olarak CSS yorumlanabilir ve HTML farkl ekilde goumlruumlntuumllenir [71]
Hangi i lem moduna dacirchil oldu u tespit edilerek Web taray c lar
DOCTYPE
doumlnuuml uumlmuumlnuuml destekler Web taray c lar bir Web sayfas n n nas l HTML ve CSS iccedileri ini
yorumlad n
ve de erlendirdi ini sayfalar n DOCTYPE bildirimlerine dayanarak de i tirir
[71]
382232 DTD tan mlama
DTD olu umu iki yolla yap labilir Birinci yol belge iccedilerisinde a a daki oumlrnekte oldu u
ilk standart sat rdan sonra ltDOCTYPE ile ba layan ve gt i areti ile biten aral kla DTD tan m
yap lmas d r DTD alan nda bir kok_element_adi etiketi tan mlanm t r [ ]
i aretleri aras nda
iccedilsel olarak tan mlanm t r Bu etiketin iccedilerisine element_icerigi olarak alt alanlar belirtilir
XML dokuumlman n n iccedilerik k sm na tan mlanan kok_element_adi etiketleri aras na istenilen metin
giri i yap l r
59
ltxml version= 10 encoding= UTF-8 gt
ltDOCTYPE kok_element_adi
[ltELEMENT kok_element_adi (element_icerigi) gt ]
gt
lt kok_element_adi gt Bu basit bir DTDli XML ornegidir lt kok_element_adi gt
kinci yol ise Web sayfalar n n iccedileri i bir geccedilerlilik servisi kullan larak onaylanmas d r
Do rulu u W3C1 taraf ndan garantiye al nan bir DTD ile geccedilerlilik kontroluuml sa lanabilir [71]
HTML XHTML SMIL MathMLvb Web dokuumlmanlar n n httpvalidatorw3org adresinden
URI adresi dosyalar upload edilerek ya da direk i aretleme giri i yap larak geccedilerlilik kontroluuml
yap labilir [72]
DTD tan m a a daki oumlrnekteki gibi HTML belgesine harici olarak
httpwwww3orgTRxhtml1DTDxhtml1-strictdtd adresindeki haz r kural yap s
dacirchil edilir
Kural ak bu adresten sa lan r [72] A a daki kod sat r nda XML veri tan mlamas na goumlre
ltcodegtltcodegt etiketleri olu turulmu tur
ltDOCTYPE html
PUBLIC -W3CDTD XHTML 10 StrictEN
httpwwww3orgTRxhtml1DTDxhtml1-strictdtdgt
lthtmlgt
ltbodygt
ltpgt Bu alana serbest metin giri i yap labilir
ltcodegt
Bu alanda ise XML veri tan mlamas DTD tan m na goumlre yap lm t r
ltcodegt
ltpgt
ltbodygt
lthtmlgt
Programc lar n en ccedilok ihtiyaccedil duyabilece i 6 tane oumlncelikli DOCTYPE belgelerinin
listesi a a da verilmi tir [72]
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401EN
httpwwww3orgTRhtml4strictdtdgt
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN
httpwwww3orgTRhtml4loosedtdgt
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 FramesetEN
60
httpwwww3orgTRhtml4framesetdtdgt
ltDOCTYPE html PUBLIC -W3CDTD XHTML 10 StrictEN
httpwwww3orgTRxhtml1DTDxhtml1-strictdtdgt
ltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalEN
httpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgt
ltDOCTYPE html PUBLIC -W3CDTD XHTML 10 FramesetEN
httpwwww3orgTRxhtml1DTDxhtml1-framesetdtdgt
382233 DTD ccedilinde Element Tipi Bildirimleri
Elementler hakk nda bilgi veren kodlard r Kullan lan yap ELEMENT ile ba lar
element ad ve element iccedileri inin eklenmesiyle sonlan r
ltELEMENT elementName (elementContents)gt
Element iccedileri i a a daki gibi bo olarak ta tan mlanabilir
ltELEMENT elementName (EMPTY)gt
Element iccedileri inde alt dallar-duuml uumlmler olu turulacaksa a a daki oumlrnekte oldu u gibi
DVD koumlk duuml uumlmuumlne le ayr larak s ras yla baslik format tarz element isimleri yaz l r
Belirlenen s ralama XML belgesi iccedilinde goumlruumlnecek s ralamay da olu turur
ltELEMENT DVD (baslik format tarz)gt
Parsed Character Data (PCDATA) veri tuumlruuml element iccedileri inin metinsel ifade olaca n
bildirir XML ayr t r c s bu metindeki karakter ve varl k referanslar n ccediloumlzuumlmler A a da
ltbaslikgt ltformatgt lttarzgt bildirimlerinin iccedilerik tuumlruuml PCDATA olarak tan mlan r
ltELEMENT baslik (PCDATA)gt
ltELEMENT format (PCDATA)gt
ltELEMENT tarz (PCDATA)gt
61
XML belgelerinde tan mlanan bir element herhangi bir veri kombinasyonunu iccedilerebilir
Bu durumda iccedilerik tuumlruuml ANY olarak tan mlan r En serbest iccedilerik tan m d r Oumlrnek kullan m
a a da goumlsterilmektedir
ltELEMENT KATALOG ANYgt
Elementlerin alabilecekleri nitelikler DTD iccedilerisinde tan mlan r Element iccedilerikleri
hakk nda daha detayl bilgiye ula lmas n sa lar Tablo 36 da kullan labilecek niteleyiciler
goumlsterilmektedir
Tablo 36 DTD karakterleri ve accedil klamalar
Karakter Accedil klama
Elemandan s f r veya daha ccedilok bulunabilir
Alt elemanlar s rayla belirler
| Bir grup element aras nda seccedilim yap lmas na izin verir
+ Elemandan bir veya daha ccedilok bulunabilir
Elemandan s f r veya 1 tane bulunabilir
Sembol olmamas o elementin bir kez goumlruumlnmesi gerekti ini bildirir
Oumlrnek goumlsterimde KULLANICI elementine ait alt element olan AD ouml esi birden fazla
de er alabilece ini goumlsterir TEL bildirimi ile kullan c ya ait di er bilgiler girilirken telefon
numaras
giri i eksik olarak kalabilece ini ve sonradan eklendi inde ise yeni kural
tan mlamas na gerek kalmadan etiket tan mlamas n n yap labilece ini bildirir
ltELEMENT KULLANICI (ADI+ TEL)gt
382234 DTD ccedilinde Nitelik Liste Bildirimleri
Nitelik bildirimleri element bildirimlerinden sonra goumlruumlnuumlr ve biraz daha karma k bir
yap ya sahiptir Bir elementin sahip oldu u oumlzellikler bir liste halinde belirtilebilir
Nitelik liste bildirimi a a daki yap yla goumlsterilir
ltATTLIST Element_adi Nitelik_adi Nitelik_tipi varsayilan_degergt
ltATTLIST DVD id CDATA REQUIREDgt
62
Kod parccedilas nda yaz lan varsayilan_deger niteli in gerekli olup olmad n belirtir
Nitelik tipleri Tablo 37 deki de erleri alabilir
Tablo 37 DTD ccedilindeki niteliklerin de er ve accedil klamalar
[73]
De er Accedil klamas
CDATA De er karakter verisi olmal
(en1|en2|) De er parantez iccedilindeki de erlerden birisi olmal
ID a unique identifier- benzersiz bir tan mlay c -kimlik
IDREF De er ba ka bir eleman n ID si olmal
IDREFS De er ba ka ID lerin listesi olmal
NMTOKEN De er geccedilerli XML ad olmal
NMTOKENS De er geccedilerli XML ad listesi olmal
ENTITY De er bir varl k olmal
ENTITIES De er bir varl k listesi olmal
NOTATION De er bir notasyon olmal
xml De er oumlnceden tan mlam bir XML de eri olmal
Varsay lan de er ise Tablo 38 deki de erleri alabilir
Tablo 38 Varsay lan de erler ve accedil klamalar
De er Accedil klama
deger Niteli in Default de eri
REQUIRED Nitelik de eri Eleman iccedilinde geccedilmek zorundad r
IMPLIED Nitelik de eri Eleman iccedilinde geccedilmek zorunda de ildir
FIXED value Nitelik de eri sabittir E er nitelik de eri belirtilirse default de eri
yazmak zorunludur
A a daki oumlrnekte URUN elementinin RENK niteli i seccedilimli olarak k rm z ye il ya da
mavi olas de erleri tan mlanm t r Varsay lan de eri ise k rm z olarak belirtilmi tir [73]
ltATTLIST URUN RENK (red|green|blue) redgt
63
382235 DTD ccedilinde Varl k (Entity) Bildirimleri
Varl k bildirimleri XML belgesinde kullan lan de i ik tuumlr ve biccedilimlerdeki verilerin
XML belgesine aktar lmas n sa lar Di er programlama dillerinde kullan lan moduumll ya da
makrolar gibi s kl kla kullan lan metin bloklar
varl k olarak tan mlanarak sayfan n istenilen
yerine kolayca eklenebilir Eklenen metin uumlzerindeki de i iklikler varl k bildirimiyle
duumlzenlenebilir [73]
Ayr ca d ar dan bir dosyay
varl k olarak tan mlayarak iccedilindeki veri XML belgesinde
kullan labilinir Bu veri metin olmak zorunda de ildir DTD bir varl k olarak tan mlamak iccedilin
a a daki sat r n kullan lmas
gerekmektedir [73]
ltENTITY varl k_ad varl k_degerigt
ltENTITY copyright Copyright 2009 Yayinevigt
Harici bir dosyadan al nacak bir varl k iccedilin soumlz dizimi ise a a daki gibidir
ltENTITY varl k_ad SYSTEM URIURLgt
ltENTITY tableOfContents SYSTEM entitiesdenemexmlgt
(Not URL = Uniform Resource Locator URI = Uniform Resource Identifier )
38224 XML emas
XML emas DTD lere benzer ekilde XML belgesinin yap s n ve bulundurabilece i
verilerin tuumlruumlnuuml tan mlamakta kullan l r XML emalar
xsd dosya uzant l d r ema XML
belgesinde kullan labilecek ouml eleri nitelikleri ve veri tuumlrlerinin yan s ra XML belgesinin soumlz
konusu XML emas iccedilin geccedilerli olmas n sa lamak amac yla uyulmas gereken yap y da
tan mlar [74]
XML emalar DTD yap lar na goumlre daha guumlccedilluuml bir yap ya sahiptir DTD iccedilerisinde
eleman iccedileri i string ve di er birkaccedil veri tipi ile s n rl d r XML ema integer floating point
say lar date time gibi daha geni bir veri tipi deste i sa lamaktad r XML ema ayr ca accedil k
iccedilerik modeli (open content model) ve isim uzay
(namespace integration) gibi ek oumlzellikler de
sunmaktad r XML ema belgeleri olu turulmas s ras nda XML soumlzdizimi kullan l r Bu DTD
lere goumlre ccedilok belirgin bir uumlstuumlnluumlk sa lar Ccediluumlnkuuml yeni bir soumlz dizimi ouml renilmesi yerine
XML in XML emaya oumlzel komutlar n n ouml renilmesi yeterli olur [75]
64
A a daki oumlrnek ema tan mlamas nda xs schema elementi ile ba layan bir koumlk ouml e
vard r
ltxml version=10 encoding=UTF-8gt
ltxsschema
xmlnsxs=httpwwww3org2001XMLSchemagt
ltxsschemagt
ema elementi iki tane oumlzelli e sahiptir
name
xmlns
ema iccedilin bir isim tan mlamas name oumlzelli i ile sa lan r xmlns oumlzelli inin ise oldukccedila
oumlnemli bir goumlrevi vard r Bu oumlzellik sayesinde oumlrne in Microsoft un schema belirtimlerini
kullanabilmesi iccedilin urnschemas-microsoft-comxml-data de erine ayarlanmas gerekir
A a daki oumlrnekte XML ema belgesi iccedilin name ve xmlns niteliklerinin basit kullan m
goumlsterilmektedir [66 75]
ltschema name=kutuphane xmlns= urnschemas-microsoft-comxml-datagt
lt - - ema iccedileri i buraya yaz l r- -gt
ltschemagt
Oumlrnek XML belgesi olu turma ba l alt nda verilen oumlrne in ema dosyas olan
denemexsd nin kodlar ve ekran goumlruumlntuumlsuuml ekil 323 deki gibidir
ltxml version=10 encoding=UTF-8gt ltxsschema xmlnsxs=httpwwww3org2001XMLSchemagt
ltxselement name=Kullanicilargt
ltxscomplexTypegt
ltxssequencegt
ltxselement ref=Kullanici minOccurs=0 maxOccurs=unboundedgt
ltxssequencegt
ltxscomplexTypegt
ltxselementgt
ltxselement name=Kullanicigt
ltxscomplexTypegt
ltxssequencegt
ltxselement name=adi type=xsstringgt
ltxselement name=soyadi type=xsstringgt
ltxselement name=eposta type=xsstringgt
ltxssequencegt
ltxsattribute name=id type=xsinteger use=requiredgt
65
ltxscomplexTypegt
ltxselementgt
ltxsschemagt
ekil 323 denemexsd nin ekran goumlruumlntuumlsuuml
3823 Belge Duuml uumlmleri
XML dokuumlman nlar ndaki belge duuml uumlmleri a a da incelenecektir
38231 Elementler
XML dokuumlmanlar ndan bahsederken etiket ve element terimleri kullan lmaktad r lk
ba ta birbirinin yerine kullan labilir gibi goumlruumlnse de asl nda farkl iki terimdir Element terimi
herhangi bir iccedilerikle birlikte etiketlerin accedil l p kapanmas olarak tan mlanabilir Etiket elementin
bir parccedilas d r Etiketler de kouml eli parantez accedil larak ba lan r ve sonunda kapat larak bitirilir
A a daki oumlrnek sat rda ltxyztgt etiketlerini iccedileren tam bir element goumlruumllmektedir
Accedil l etiketi Kapan etiketi
ltxyztgtXML de etiket ve element fark ltxyztgt
ccedilerik
Element
66
38232 Nitelikler
Her XML belgesi karakter verisi ve biccedilimlendirmeden olu ur Genellikle karakter verisi
ba lang ccedil ve biti etiketleri aras nda metinsel bilgi iccedilerir
XML etiketlerine bir ya da daha fazla nitelik tan mlanabilir
ccedilerik ya da
Nitelik ba ka etiketler
ltKullanici kullanici_id= 1 gt ltKullanicigt
Etiket sim De er
Accedil l etiketi Kapan etiketi
Element
38233 Metin
Accedil lan ve kapat lan tuumlm etiketlerin iccedileri ini olu turur CDATA gibi metin i aretlemesi
yap lmad kccedila tuumlm metin XML kural yap s na goumlre i lenecektir [66]
38234 CDATA Boumlluumlmuuml
CDATA XML yap s iccedilerisinde i lenmeyecek metinleri bloklar halinde i aretlemeye
yarar XML derleyici bu boumlluumlmde metin iccedilerisinde yer alan i aretleme ay raccedillar n ve etiketlerini
normal karakterler olarak alg lar CDATA yap s ltCDATA[ ile ba lar ve]] kouml eli parantezlerin
kapanmas yla sona erer
ltbaslikgtltCDATA[
]]ltbaslikgt
CDATA boumlluumlmleri Javascript gibi goumlmuumlluuml kodlar XML belgelerinde kullanabilir ve bu
boumlluumlmlere i leme ihtiyaccedil duyulmayan iccedilerik eklenebilir Oumlrne in bir uygulamada veritaban ndan
veri okumas ve i aretlemesi buumltuumln iccedileri in XML belgesine goumlmme bilgisini vermede
karakterler i lenirken accedil kccedila ayr lmas n n oumlnuumlne geccedilebilmek iccedilin CDATA boumlluumlmleri kullan l r
[66]
67
38235 Varl klar
Bir karakteri temsil eden sembol grubuna varl k denir Oumlrne in Ampersand i areti
yerine yani ve yerine kullan lan ampamp ya da bir karakterlik bo luk b rakmak iccedilin
nonbreaking space yerine ampnbsp semboluuml kullan l r
ltmatematikgt18 lt 36ltmatematikgt
Yukar daki kod sat r nda bu element i lenmeye ccedilal ld nda hata iletisi verecektir
Ccediluumlnkuuml 36 de erinin oumlnuumlndeki etiket accedilma i areti olarak alg lanacak ve kod sat r n n i leme
al nmas nda yanl l a neden olacakt r Bu hatay duumlzeltmek iccedilin kod sat r n n a a daki gibi
yaz lmas yeterli olacakt r
ltmatemetikgt18 amplt 36ltmatemetikgt
Tablo 39 da s k kullan lan karakterlerin varl k sembolleri goumlsterilmektedir
Tablo 39 XML Belgelerinde kullan lan varl k bildirimleri
Karakter Varl k
amp ampamp
ampapos
gt ampgt
lt amplt
ampquot
383 XML nin Soumlz Dizim Kurallar
XML iccedileri in i aretlenmesi iccedilin etiketleme dili kullan l r Bu etiketlemeler yap l rken
baz kurallar goumlz oumlnuumlnde bulundurulur imdi bu kurallar incelenecektir
1) XML dili buumlyuumlk kuumlccediluumlk harfe kar duyarl d r XML de kuumlccediluumlk harf kullan m esast r
Oumlrnek yaz m a a daki gibidir [76]
lttable WIDTH= 100 gt kullan m yanl t r
lttable width= 100 gt kullan m do rudur
68
2) Her etiket kapat lmal d r Oumlrne in ltkelimegt etiketini takip eden sat r sonuna ltkelimegt
etiketi de eklenmelidir
3) Dokuumlmanda buumltuumln elementleri iccedileren bir koumlk eleman olmas gerekir Oumlrnek yaz mda
oldu u gibi alt ouml eler duumlzenli bir yap da yaz lmal d r [76]
ltrootgt
ltchildgt lt childgt
ltsubchildgt lt subchildgt
lt rootgt
4) Etiketler belirlenirken bir element ba ka elementleri iccediline alacak ekilde tasarlanabilir
ccedilten d a do ru etiketlerin hepsi kapat lmal d r
ltbgtltigtBu metin koyu ve e ikltbgtltigt yanl kullan m
ltbgt ltigt Bu metin koyu ve e ik lt igt lt bgt do ru kullan m
5) XML elementleri oumlzel karakter verileri bo elementler CDATA ya da yorumlar
bar nd rabilir
6) Oumlznitelik de erleri t rnak iccediline al nm olmal d r Tek t rnak ya da ccedilift t rnak olabilir
lttable width=100gt kullan m yanl t r
lttable width= 100 gt kullan m do rudur
7) Element adlar harfler rakamlar tire alt ccedilizgi iki nokta i aretlerini ve noktalar
iccedilerebilir ki nokta i areti sadece namespace kullan m iccedilindir xml ile ba layan eleman
isimleri oumlnceden tan mlanm oumlzel isimlerdir [86]
ltkullanilabilirIsimlergt
ltisimgt
ltxslcopy-ofgt
ltUzun_bir_isimgt
ltNoktalarlaayrilmisbirisimgt
lth823323123-231-231gt
lt_23gt
ltkullanilabilirIsimlergt
8) Etiketleme yap l rken rakamla ba lamamas na dikkat edilmelidir Bo luk yer
almamal d r
69
384 XML Dokuumlmanlar n n leyi i ve Sunumu
XML i lemleri a accedil tabanl ve olay tabanl olmak uumlzere iki kategoriye ayr l r Verilerin
i lenmesinde XML parser yani ayr t r c kullan l r XML i lemciler genellikle XML ayr t r c
olarak da adland r l r A accedil tabanl ayr t r c lar DOM (Document Object Model) yakla m na
goumlre olay tabanl ayr t r c lar ise SAX (Simple API for XML) yakla m na goumlre veriyi ema
yap s ile birlikte XMLye oumlzguuml hiyerar ik yap da i ler lenen veriler uygulama ve
sorgulamalara haz r hale getirir [66 76]
Genellikle bir XML dokuumlman n XML formatl veri iccedilerik dosyas XSD (DTD yerine)
formatl ema dosyas ve XSL (CSS yerine) formatl stylesheet dosyas olmak uumlzere 3 dosyayla
tan mlanabilir Bu uumlccedil dosya tipi de XML destekli tuumlm sunucu ve veri tabanlar nda ccedilal t r labilir
Verinin yal n (native) olarak sakland veritaban youmlnetim sistemleri di er veritabanlar nda
kar la lan harici veri tipleri veya farkl format doumlnuuml uumlmlerine gerek duymad ndan sorgu
transfer ve entegrasyon i lemlerinin performanslar
oldukccedila yuumlksektir Ayr ca XML veritaban
youmlnetim sistemlerinde verinin yal n biccedilimde kendi iccedil format nda tutuluyor olmas n n bir
avantaj da eri imi kolayla t rmas d r Ba ka veritaban youmlnetim sistemi yakla mlar nda buna
benzer bir arama iccedilin karma k ccediloklu tablolar ara t r l r ve daha sonra XML verisine
doumlnuuml tuumlruumlluumlr Bu da i lem performans n n duuml mesine ve maliyet art r c ek uygulamalar
eklenmesine neden olur [66 76]
39 AJAX Prensipleri
AJAX yeni bir teknoloji olmas itibariyle henuumlz emekleme doumlnemindedir Bununla
birlikte birkaccedil Web tasar mc s bu yenili i ba a ccedil k lmas gereken bir sorun gibi alg lamaktad r
Bu sorun iyi bir AJAX Web uygulamas yapabilmek iccedilin s radan ya da koumltuuml bir uygulamaya
kar ne yap lmas gerekti i olarak tan mlanabilir Michael Mahemoff (wwwmahemoffcom)
bir yaz l m geli tirici ve kullan labilirlik uzman iyi Ajax uygulamalar iccedili birkaccedil temel ilke
belirlemi tir [37]
Minimal Trafik nternet trafi i internet uumlzerindeki veri ak d r Goumlnderilen ve al nan
mesajlar n miktar youmlnuuml web sitesine giren ziyaretccedililerin say s ziyaret ettikleri
sayfalar ccedilevrimiccedili trafi i olu turmaktad r AJAX uygulamalar nda amaccedil bu internet
trafi ini en alt seviyede tutmak iccedilin sunucudan muumlmkuumln olabildi i kadar az bilgi
goumlnderip almakt r Ayr ca bilgi ak nda gereksiz bilgilerin her seferinde goumlnderilip
al nmas n n oumlnuumlne geccedililmesiyle uygulamaya sa laml k kat l r
70
Kullan c etkile imli model Genellikle AJAX uygulamalar geleneksel Web
uygulamalar ndan farkl olarak de i ik kullan c etkile imli modeller sunar Web
standartlar ndaki t kla-bekle anlay na kar AJAX uygulamalar nda an nda suumlruumlkle
b rak ya da ccedilift t klamayla yak nla t rma gibi di er kullan c arayuumlz paradigmalar
vard r E er kullan c
etkile imli modeller seccedililirse kullan c
ne yapaca n bilir
Sade arayuumlz Yan p soumlnen sayfa boumlluumlmuuml ya da suumlrekli doumlnen animasyonlar gibi dikkat
da t c ve gereksiz sayfa elementlerinden kaccedil n l r Kullan c lar goumlze hitabeden
uyumlu ve sade sayfalar tercih etmektedir
Eri ilebilirlik nsanlar n ba lant h zlar ndan fiziksel engellerine ya ad uumllkenin
toplumsal yap s ndan ya l l a kadar birccedilok youmlnden eri ilebilirlik standartlar
incelenebilir Birincil ve ikincil kullan c lar n beklentilerine en uygun olacak AJAX
uygulamalar na eri im seccedilenekleri goumlz oumlnuumlnde bulundurulmal d r Oumlzel yaz l mlarla m
yoksa kullan lacak taray c oumlzellikleriyle mi adaptasyonun sa lanaca belirlenmelidir
Boumlylece yeni hedef kitleler de tamamen d ar da b rak lm olmayacakt r
Sayfan n tamam n indirilmesinden kaccedil nma Tetikleyici sayfa indirildikten sonra
tuumlm sunucu ileti imi AJAX motoru taraf ndan youmlnetilmektedir Boumlylece kuumlccediluumlk bilgi
al -veri leri iccedilin tuumlm sayfan n tekrar yuumlklenmesinin oumlnuumlne geccedililmi olur
lk kullan c AJAX uygulamalar nda tasar m kullan c lar n daha oumlnce
kar la mad klar bir biccedilimdedir Etkileyici efektler ve s k c olmayan bilgilendirici
reklamlarla genel kullan m durumlar n kolayca ba armaktad r
Buumltuumln bu ilkelerde bulunan ortak nokta kullan labilirliktir AJAX oumlncelikle kullan c lar
iccedilin web deneyimini geli tirmeye ccedilal rken arkas ndaki teknoloji sadece bunun iccedilin bir araccedilt r
Yukar daki ilkelere sad k kalarak AJAX uygulamalar oldukccedila faydal ve kullan l olacakt r
[37]
310 AJAX Kuumltuumlphaneleri ve Araccedillar
Kuumltuumlphaneler haz r fonksiyonlara kolayca eri im sa lar Ayr ca s k kullan lan var olan
kodlar tekrar yazarak zaman kaybedilmemesini sa lar A a da en ccedilok kullan lan AJAX
kuumltuumlphanelerine oumlrnekler verilmi tir
3101 Prototype
Prototype dinamik web uygulamalar yaratmak iccedilin kullanabilecek geli mi bir
kuumltuumlphanedir Accedil k kaynakl ve nesne tabanl kod kuumltuumlphanesidir Ajax iccedilin yaz lan
71
kuumltuumlphanelerin ilk oumlrneklerindendir ve di er haz r kuumltuumlphanelerin bir k sm prototypejs
kullanmaktad r [78]
3102 AJAX Gear Toolkit
AJAX olarak bilinen istemci tarafl tekni in buumltuumln avantajlar ndan faydalanmay
muumlmkuumln k lan bir araccedilt r XMLHttpRequest nesnelerini kullanarak internet taray c s n n
asenkron ccedila r yapmas n sa lar [78]
3103 AspNet Ajax
ASPNET AJAX ASPNET ile yap lan ve tuumlm nternet taray c lar nda ccedilal abilen
uygulamalar iccedilin Microsoft taraf ndan geli tirilen bir kuumltuumlphanedir Oumlnce Atlas daha sonra
ASPNET Ajax ad n alm t r ASPNET 20 ile kolay entegrasyon ASPNET 35 ile tam
entegrasyon sa lar Yeni nesil etkile imli arayuumlzler olu turmak iccedilin kullan l r [78]
3104 Dojo Toolkit
Accedil k kaynak kodlu bir javascript toolkit olup dhtml sorunlar n buumlyuumlk oumllccediluumlde ccediloumlzmuuml tuumlr
Arayuumlz programlama karma k kodlar n basite indirgenmesi toolkitin sa lad avantajlard r
Ayr ca dinamik web sitesi ya da ba ka ortamlar haz rlamay kolayla t ran ve sitenin daha
kullan l olmas n sa layan iccedilerikler sunar [78]
3105 MochiKit
Dreamweaver web uygulamalar iccedilin kullan lan ajax kuumltuumlphanelerinden birisidir E
zamanl olmayan davran lar iccedilin erteleme uygulamas n kulland ndan sunucuyla etkile im
halinde olan web sayfalar n n geli tirilmesinde tercih edilir [78]
3106 PHPLiveX
PHP ile yap lan uygulamalar iccedilin kullan lan bir kuumltuumlphanedir Versiyon 25 ile gelen
yenilikler ve optimizasyonlar kuumltuumlphanenin potansiyelini ciddi biccedilimde artt rm t r Di er php
tabanl kuumltuumlphaneler gibi php fonksiyonlar n javascript koduyla ccedila r r fakat di erlerine goumlre
daha az kodla kullan m sa lar [78]
72
3107 Sardalya (Sarmal Dinamik Altyap s )
Sardalya Dinamik AJAX Kuumltuumlphanesi DOM deste i olan tuumlm guumlncel taray c larda
ccedilal mak iccedilin tasarlanm bir AJAX Kuumltuumlphanesi dir Linux windows freebsd osx sun gibi
platformlarda ccedilal abilir Tuumlm taray c lardan ba ms z olarak ccedilal r ve kullan m s ras nda az
yer kaplar [78]
3108 Sajax
Sajax n accedil l m Simple Ajax Toolkit tir ASP ve PHP tabanl programlarda AJAX
uygulamalar geli tirmek iccedilin kullan lan bir kuumltuumlphanedir Buumltuumln sunucu tarafl platformlara
ccedila r goumlnderebilme yetene ine sahiptir [78]
3109 Solvent
AJAX uygulamalar n moduumller bir yap da gerccedilekle tiren farkl bir kuumltuumlphanedir
JavaScript ile yaz lm t r ve tuumlm taray c lardan ba ms z olarak ccedilal an bir AJAX uygulamas d r
Web uygulamalar n kuvvetlendirmek ve uygulamalar n geli tirme suumlrecini h zland rmak iccedilin
kullan l r [78]
31010 AjaxAC
AjaxAC accedil k kaynak kodlu php tabanl bir kuumltuumlphanedir AjaxAC ile varolan PHP
s n flar na ve MySQL veritaban na ek istek verilerini doumlnduumlrmek iccedilin geccedili oldukccedila kolayd r
[78]
31011 Xajax
Xajax Php JavaScript HTML XMLHttp ve XML kullanarak taray c ve sunucu
aras ndaki al veri i ve verileri goumlstermeyi gerccedilekle tirir Xajax ile geli tirilmi
uygulamalar sunucudaki php fonksiyonlar n ccedila rabilir ve sayfay yeniden yuumlklemeden
iccedileri ini guumlncelle tirebilir [78]
73
31012 Scriptaculous
Prototype tabanl bir js framework tuumlr Yap lan AJAX i lemleri prototype iccedilerisinde
bulunan nesneler ve fonksiyonlar ile yap l r [78]
311 AJAX Uygulamalar nda Kullan lan Di er Teknolojiler
AJAX istemci ile sunucu aras nda e zamanl olmayan ileti im sa layan bir teknolojiler
buumltuumlnuumlduumlr
3111 HTMLXHTML
stemci tarafl (client side) bir metin i aretleme dili olan XHTML (Extensible
HyperText Markup Language- Geli tirilebilir Metin aretleme Dili) dili XML soumlz dizimi ile
olu turulmu tur XHTML standart etiket ayarlar n tan mlarken spesifik bir yol kullan lmal d r
World Wide Web Consortium (W3C) duumlnyadaki Web geli tiriciler iccedilin olu turulmu ayn
standartla t r lm yakla m benimserler [66]
3112 CSS
XHTML de stil biccedilimlendirmesini sa lar Yuumlzlerce sayfan n tek merkezden
youmlnetilmesini sa lar Geleneksel youmlntemlerde her sayfan n biccedilimlendirme ayarlar birccedilok kod
sat r aras ndan stillerle ilgili olanlar n seccedililip duumlzeltilmesiyle yap l r CSS kullan lan
youmlntemlerde a a daki gibi bir kod parccedilas
tuumlm sayfalardaki stil ayarlar n n yap lmas n tek
merkeze ba lam t r
kabuk
width760px
background-colorEE7700
spot
colorEE7700
font-familyVerdana Comic Sans MS Helvetica sans-serif
74
AJAX ve CSS birlikte kullan larak masauumlstuuml ccedilal t r labilir EXE yaz l mlar ile ayn
h zda ve performansta ccedilal an web uygulamalar geli tirmek muumlmkuumln hale gelmi tir Google
belgelerinde Gmail bunun en buumlyuumlk oumlrne idir
Web sayfalar ndaki tuumlm iccedilerik biccedilimlendirmeler resimler vb istemciye
HTMLXHTML kodlar halinde goumlnderilir Bu kodlar sade ve basittir Bu da oldukccedila fazla
kullan c ya hitap edebilen web siteleri iccedilin oumlnemlidir Ccediluumlnkuuml internete ba land nda k s tl bir
bant geni li ine sahip kullan c lar daha az say da karakter iccedileren sayfalar daha k sa suumlrede
indirebilecektir Boumlylece kullan c lar toplam suumlrede daha fazla sayfa ziyaret edecektir
Sayfalar n h zl yuumlklenmesi kullan c lar n o siteler hakk ndaki memnuniyetini art racakt r
Ayr ca bu durum yaz c dostu sayfalar n olu turulmas nda etkilidir [79]
3113 XSLT
XSLT (Extensible Stylesheet Language Transformations Geni letilebilir
Biccedilimlendirme Dili Doumlnuuml uumlmleri) XML tabanl doumlkuumlmanlar n orijinal halini de i tirmeden
yeni bir dokuumlman olu turmak iccedilin kullan lan bir dildir [80] Oumlrne in bir XML doumlkuumlman n
XHTML ye doumlnuuml tuumlrmek iccedilin XSL doumlnuuml uumlmuuml (transformation) kullan labilir XMLnin iccedilindeki
hangi data nas l doumlnuuml tuumlruumllecek sorular ndan hangi sorusunun cevab XPath ile belirtilirken
nas l sorusunun cevab ise yine XML ile belirtilir [81]
75
4 FLEX
Flex MXML ActionScript 30 ve Flex s n f kuumltuumlphanelerinin birle iminden olu an
sunucu-istemci tabanl yeni bir teknolojidir Ayr ca Flex Flash uygulamalar ile derlenebilen
XML tabanl bir dil olarakta tan mlanabilir [84] Flex in ccedilal ma sistemati inin i lem ak
emas ekil 41 de goumlsterilmektedir
ekil 41 Flex uygulamalar n n i lem ak emas
ekil 41 de sol alt kouml eden sa uumlst kouml eye do ru i lem ak emas takip edildi inde
Flex Builder 3 ile geli tirlen appmxml uygulamas MXML derleyicide ccedilal t r ld nda bir swf
dosyas uumlretmektedir Ayr ca uumlretilen swf dosyas n n sunucu uumlzerinde test edilebilmesi iccedilin
birde html uzant l dosya olu turulur Flex in en oumlnemli oumlzelli i uumlretilen son uumlruumlnuumln swf
format nda olmas d r Ayr ca olay tutucu komut dizelerinin kolay kullan m
yaz l m n
olu turulmas nda Flex program n tercih nedeni olmas n sa lam t r
Adobereg Flexreg 3 yayg n olarak kullan lan taray c lar masauumlstleri ve i letim
sistemlerinde kolayl kla etkileyici web uygulamalar olu turmaya ve bak mlar n yapmaya
youmlnelik verimlili i yuumlksek bir programd r Accedil k kaynak (open source) altyap s na sahiptir
Eclipse tabanl bir plugin kuumlmesidir
Adobe firmas taraf ndan Flex Builder 3 Pro lisans
herhangi bir e itim kurumuna
ouml renci e itmen ya da ccedilal an olarak ba l olduklar n belgeleyenlere tamamen uumlcretsiz olarak
verilmektedir Kurulum tamamland ktan sonra ilk accedil l ekran ekil 42 de goumlsterildi i gibidir
[83]
76
ekil 42 Flex arayuumlzuuml
41 Adobereg Flexreg 3 Kurulumu ccedilin Gereken Minimum Sistem Gereksinimleri
Uygulama gerccedilekle tirmek iccedilin farkl i letim sistemleri iccedilin gerekli sistem
gereksinimleri a a da belirtilmi tir
411 Windows ccedilin Flex Builder 3 (Standart ve Profesyonel)
Flex in Windows kurulumu iccedilin gerekli minimum sistem gereksinimleri a a da
goumlsterilmektedir [83]
Intelreg Pentiumreg 4 i lemci
Microsoftreg Windowsreg XP Service Pack 2 veya Windows Vistareg Home (Premium
veya Basic) Business veya Ultimate
1 GB RAM (2 GB oumlnerilir)
500 MB kullan labilir sabit disk alan (eklenti yap land rmas iccedilin ek 500 MB gerekir)
Java Virtual Machine Sun JRE 142 Sun JRE 15 (dacirchildir) IBMreg JRE 15 veya
Sun JRE 16
Eklenti yap land rmas iccedilin Eclipse 322 33 ve 34 (Eclipse 33 Windows Vista iccedilin
oumlnerilir)
Adobe Flashreg Player 9 yaz l m
BEA Workshop 101
77
IBM Rational Software Architect 7003 (Yaln zca Eclipse 33 eklenti yap land rmas )
412 Macintosh ccedilin Flex Bu lder 3 (Standart ve Profesyonel)
Macintosh bilgisayarlar iccedilin gerekli minimum sistem gereksinimleridir [83]
PowerPCreg G4 125 GHz veya Intel i lemci
Mac OS X v1047 10410 veya 105
1 GB RAM (2 GB oumlnerilir)
500 MB kullan labilir sabit disk alan
Java Virtual Machine Appledan JRE 15 veya JRE 16
Eclipse 322 33 ve 34 (eklenti yap land rmas iccedilin)
Adobe Flash Player 9 yaz l m
78
5 CcedilEVR M Ccedil KATALOG TASARIMI F rat Uumlniversitesi Oumlrne i
AJAX teknolojisi AdobeMacromedia firmas n n geli tirdi i Flex program
ve
bile enleri kullan larak F rat Uumlniversitesinin 2009 ccedilevrimiccedili katalog ccedilal mas
herhangi bir
teknik bilgi gerektirmeden guumlncellenebilen alt yap s yla gerccedilekle tirilmi tir Kullan c arayuumlzuuml
olu turulurken XML tabanl bir gramer yap s
ve Flex program
kullan lm t r Bu tez
ccedilal mas nda sunucu olarak WampServer 20 kullan lm t r Katalog uygulamas n n kaynak
kodlar na ek boumlluumlmuumlnden bak labilir
AJAX teknolojisiyle ortaya ccedil kmaya ba layan ccedilevrimiccedili bro uumlrler ve kataloglar
internetteki Web uygulamalar uumlzerinde ccedilevrimiccedili hedeflerin oumlnemli bir boumlluumlmuumlne hacirckim
olmaktad r [37] Bu tez ccedilal mas da buna oumlrnek te kil etmektedir
Ccedilal man n olu um haritas na literatuumlr taramas yla ba lanm t r Bir sonraki ad mda
haz rlanacak olan program n oumlzellikleri belirlendi Bu a amadan sonra yaz l m iccedilin kullan lacak
program n seccedilimi yap ld Yaz l m algoritmas planlan p ekil 51 deki kodlama algoritmas
olu turulmu tur Yaz l m test edildi inde olu an hatalar giderilmi tir Ccedilal man n sayfa tasar m
yap larak son ekli verilmi tir
79
ekil 51 Kodlama algoritmas
Ba la
Harici verilerin XML dosyas ndan okunmas iccedilin HttpService s n f tan mland
De i ken tan mlamalar
Flex s n flar eklendi
Uygulamada kullan lacak resim boyutland rmas iccedilin maskeleme yap ld
Sunucu ile taray c ileti iminde AJAX scriptler kullan ld
Tuumlm sayfalar ekran goumlruumlntuumlsuuml iccedilin uygulama boyutland rmas yap ld
Zoom oumlzelli i iccedilin etiket tan mlamas ve buumlyuumltuumllmuuml sayfa goumlruumlntuumlsuuml iccedilin goumlruumlnuumlm
ayarlar fonksiyonu yaz ld
Navigasyon duuml meleri olu turuldu
XML format na uygun duuml uumlmler olu turuldu
Sayfa tasar m yap ld
Dur
A a daki kod sat rlar yla katalog ccedilal mas n n uygulama dosyas olan catamxml
dosyas na Flex iccedilinde ccedilal ma youmlntemlerini belirleyen faydal
s n flar dacirchil edilmi tir
lt[CDATA[
import mxutilsStringUtil
import mxrpcsoapLoadEvent
import mxcontrolsAlert
import mxrpceventsFaultEvent
import qscontrolsFlexBook
import qscontrolsflexBookClassesFlexBookPage
import qscontrolsflexBookClassesFlexBookEvent
import qscontrolsflexBookClassesWBookPageImpl
import qscachingContentCache
import mxrpceventsResultEvent
import mxrpchttpHTTPService
import mxcoreUIComponent
import mxmanagersPopUpManager
import compResimSec
import Kullan
import mxcoreScrollPolicy
import mxcollectionsArrayCollection
XML tan mlamalar diziler sunucu ba lant lar ve zoom i lemleri iccedilin gerekli de i ken
tan mlamalar a a daki kod sat rlar yla yap lm t r
private var aXML
[Bindable]
private var resimlerArrayCollection
private var dataSetHTTPService
private var resimdiziArray=new Array()
private var zoomYapBoolean=false
Katalo un local sunucu uumlzerinde ccedilal t r labilmesi iccedilin kaynak dosyas
Wamp kurulumu
sonras nda olu an www klasoumlruuml iccediline yerle tirilir E-katalog resimleri dinamik olarak data
dizinindeki imagesxml dosyas nda ccedilekilmektedir Katalog resimlerini de i tirmek iccedilin bu
dosyadaki xml duuml uumlmlerinin de i tirilmesi yeterlidir De i iklik yap lacak duuml uumlm oumlrne i
a a da goumlsterilmektedir
81
ltimage source=images2jpg thumb=images2jpg zoom=images2jpggt
Yukardaki sat rdaki duuml uumlmleri accedil klamak gerekirse source duuml uumlmuumlnde katalogda
goumlruumlnecek resim thumb duuml uumlmuumlnde e er as l resim (source) resmi yuumlklenene kadar ba ka bir
resim goumlruumlnmesi isteniyorsa o resmin kayna goumlsterilir Zoom duuml uumlmuuml ise sayfaya zoom
yap lmas esnas nda goumlruumlnecek resmin kayna n goumlsterir
Yukardaki 3 duuml uumlmden thumb duuml uumlmuuml iste e ba l olarak kullan l r Zoom
duuml uumlmuumlndeki resim as l resmin 100 buumlyuumlk hali olmal d r
ekil 52 Katalo un ilk sayfas n n ekran goumlruumlntuumlsuuml
E-katalog sayfalar n boyutunu kataloghtmlde tan ml olan object nesnesinin geni lik ve
yuumlkseklik oumlzelliklerinden almaktad r ekil 52 nin kaynak kodu a a da verilmi tir
ltscript src=ScriptsAC_RunActiveContentjs type=textjavascriptgtltscriptgt
ltscript type=textjavascriptgt
AC_FL_RunContent( idkatalogwidth894height653codebasehttpfpdownloadm
acromediacomgetflashplayercurrentswflashcabmoviekatalogqualityhighbgcolor
000000allowscriptaccesssameDomain ) end AC code
ltscriptgtltnoscriptgtltobject classid=clsidD27CDB6E-AE6D-11cf-96B8-444553540000
id=katalog width=894 height=653
82
codebase=httpfpdownloadmacromediacomgetflashplayercurrentswflashcabgt
ltparam name=movie value=katalogswf gt
ltparam name=quality value=high gt
ltparam name=bgcolor value=000000 gt
ltparam name=allowScriptAccess value=sameDomain gt
ltembed src=katalogswf quality=high bgcolor=000000
width=984 height=653 name=katalog align=middle
play=true
loop=false
quality=high
allowScriptAccess=sameDomain
type=applicationx-shockwave-flash
pluginspage=httpwwwadobecomgogetflashplayergt
ltembedgt
ltobjectgtltnoscriptgt
ekil 53 Katalo un 23 sayfa goumlruumlntuumlsuuml
Oumlrne in ekil 53 te kullan lan resimlerin width=447 height=613 boyutunda ise
resimlerin sayfada goumlruumlnmesi iccedilin html etiketindeki width oumlzelli ini 447x2=984 ve height
83
oumlzelli ini 613+40=653 eklinde duumlzenlenmesi gereklidir Yani width=resim geni li i X 2 ve
height=resim yuumlksekli i + 40 olmal d r
ekil 54 Katalo un sayfa ccedilevirme efektli goumlruumlntuumlsuuml
ekil 54 te goumlruumllen e-katalogun sayfay ccedilevirme oumlzelli i ile h z gibi i lemleri stylecss
dosyas nda tutulmaktad r Gerekli olmad kccedila bu dosya uumlzerinde de i iklik yap lmamas tavsiye
edilir Olu turulan stylecss dosyas n n kodlar a a da goumlsterilmi tir
FlexBook
color 000000
textRollOverColor 000000
border-thickness 0
border-style none
page-slope06
active-grab-area page
page-shadow-strength 1
curve-shadow-strength 1
auto-turn-duration 1500
Application
color F1F1CC
textRollOverColor FFFFFF
84
backgroundGradientColors FFFFFF FFFFFF
backgroundColor FFFFFF
SuperImage
border-thickness 0
border-style none
ekil 55 de goumlruumllen navigasyon ccedilubu unda 1 numara ile goumlsterilen alan istenilen
sayfaya konumland rma yap labilmesi iccedilin sayfa numaras n n girildi i kutudur 2 numara ile
goumlsterilen alan Sayfaya Git duuml mesine t kland nda istenilen sayfan n accedil lmas n sa layan
duuml medir 3 ve 4 numara ile goumlsterilen duuml meler Geri leri duuml meleridir Fare kontroluuml
olmadan da sayfalar aras nda gezinti yap labilmesini sa lar 5 numara ile goumlsterilen alan Tuumlm
Sayfalar duuml mesidir
ekil 55 Katalo un navigasyon ccedilubu u
Tuumlm sayfalar n accedil l r pencere iccedilerisinde goumlruumlntuumllenmesini sa layan fonksiyon a a daki
gibidir Kullanmxml sayfas nda ccedilekilen resimler pencerede goumlster komutuyla geni lik ve
yuumlksekli i ayarlan r Seccedililen nesneler customMoveend() komutuyla ekrana ta n r
private function tumsayfalar()void
Kullanshow_window(thisfalseapplicationwidth-10(applicationheight-60)2)
customMoveend()
customMoveplay()
ekil 56 da goumlruumllduuml uuml uumlzere ccedilevrimiccedili katalogdaki yuumlkluuml olan tuumlm sayfalar yukar dan
accedil lan bir pencere yard m yla goumlsterilir Tuumlm sayfalar
goumlster duuml mesi t kland nda goumlruumlnecek
resimler ile ilgi ayarlar ise data klasoumlruumlndeki onizlexml dosyas ndan ayarlanabilir Xml nin
esnek etiketleme yap s sayesinde onizlexml dosyas nda olu turulan ltsayfalargt etiketi aras na
a a daki kod sat rlar ccedilo alt larak olu turulmu tur
85
ltsayfagt
ltresim1gtimages2jpgltresim1gt
ltresim2gtimages3jpgltresim2gt
ltgitgt2ltgitgt
ltpagesgt23ltpagesgt
ltsayfagt
ekil 56 Tuumlm Sayfalar duuml mesi t kland ndaki ekran goumlruumlntuumlsuuml
Son olarak 6 numaral duuml me t kland nda + ve - konumlar n alarak buumlyuumlteccedil
oumlzelli i kullan l r ekil 57 de goumlsterildi i gibi imleccedil sayfa uumlzerinde gezdirilirken bu alan
uumlzerinde zoom yap larak yan sayfada buumlyuumltuumllmuuml goumlruumlntuuml sa lan r
86
ekil 57 Zoom oumlzelli i
Zoom oumlzelli inde resimler uumlzerindeki geni lik ve yuumlkseklik de erleri iccedilin if else blok
yap s kullan larak maskeleme fonksiyonu yaz lm t r Maskeleme fonksiyonu a a daki kod
sat rlar nda goumlsterilmektedir Fare nin x-y koordinatlar nda alaca de erlere goumlre fare nin
buumlyuumltuumllecek alan uumlzerinde gezinmesiyle yan sayfada buumlyuumltuumllmuuml goumlruumlntuuml elde edilmi tir
private function maskele(eMouseEvent)void if(zoomYap) if((mouseXgt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) )
maskex=0
img2visible=false img1visible=true img1x=(applicationwidth2)-mouseX img1y=-1mouseY else if((mouseXlt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) ) maskex=applicationwidth2 img1visible=false img2visible=true img2x=-1mouseX img2y=-1mouseY
Sayfa goumlruumlntuumllerinin maskelenmesinden sonra resimlerin kaynak dosyadan ccedilekilerek
ekrana buumlyuumltuumllmuuml hallerinin yans t lmas iccedilin a a daki fonksiyon olu turulmu tur
87
private function zoom()void
if(zoomerlabel==+) zoomerlabel=- if(img2source=aimage[bookcurrentPageIndex2]zoom) yuklemevisible=true
img2addEventListener(EventCOMPLETEbuyuk2_yuklendi) img2source=aimage[bookcurrentPageIndex2]zoom
if(aimagelength()gtbookcurrentPageIndex2+1) img1addEventListener(EventCOMPLETEbuyuk1_yuklendi)
img1source=aimage[bookcurrentPageIndex2+1]zoom
zoomYap=true else if(zoomerlabel==-)
zoomerlabel=+
setGorunum()
private function setGorunum()void zoomYap=false zoomerlabel=+ img1visible=false img2visible=false
88
6 SONUCcedil
Web 20 ak m ve zengin internet uygulamalar guumlnuumlmuumlz popuumller konular ndand r Bu
nedenle tez ccedilal mas
bu amaca youmlnelik olarak son teknolojiler kullan larak geli tirilmi tir
AJAX teknolojisi kullan larak kullan c n n istekleriyle sayfan n tamamen yenilenmeden
ilgili i lemin yuumlruumltuumllebilmesi sa lanmaktad r Geli tirilen sistem ccedilapraz taray c deste ine sahip
esnek ve kolay kullan labilir bir yap ya sahip oldu undan herhangi bir programlama bilgisine
sahip olmadan ki ilerin istenilen de i iklikleri yap labilece i bir alt yap ya sahiptir Bu ccedilal ma
nda en yenilikccedili internet yaz l mlar konusunda uygulama yapmak isteyen yaz l m
uzmanlar na kaynak te kil edecek bir ccedilal ma gerccedilekle tirilmi tir Yaz l m geli tiricileri ve
yaz l m mimarlar AJAX Flash Flex Appletler ve di er teknolojileri uygulamalar na kolayca
entegre edebilirler
Bu tez ccedilal mas kapsam nda Web de Ajax Tekni inin Bant Geni lik Optimizasyonuna
Etkisi ba l kl bir makale haz rlanm t r [85] Bu makalede Web Performance Suite 355941
program yla AJAX n performans testi yap lm t r Bu oumllccediluumlmler sonucunda elde edilen de erler
goumlstermi tir ki bir ebeke uumlzerinden goumlnderilecek sinyalin en duuml uumlk ve en yuumlksek frekanslar
aras nda gereksiz yere kullan lan aral n optime edilmesinde AJAX etkili bir youmlntemdir
AJAX n ccedilal ma prensibi sayesinde uygulamalar en iyi performansla gerccedilekle tirilir
AJAX teknolojisinin hala geli imi devam etmekte oldu undan baz eksik yanlar da
bulunmaktad r Oumlrne in taray c
uumlzerindeki Geri
fonksiyonu bazen beklendi i gibi
ccedilal mayabilir Dinamik olarak olu turulan sayfalar taray c n n oumlnceden i ledi i sayfalar
youmlneten mekanizmalar na kendini otomatik olarak kaydetmez bu yuumlzden taray c n n Geri
tu una bas ld nda istenen sayfa elde edilemeyebilir [86] Ba ka bir dezavantaj ise AJAX ile
olu turulan iccedileri in kodlar kaynak kodlar k sm nda goumlruumllememektedir Ayn zamanda Google
ve Yahoo gibi arama motorlar n n Web sayfalar na goumlnderdi i robot yaz l mlar da bu kodlar
goumlrememektedir Dolay s yla tamamen AJAX ile olu turulan iccedilerik arama motorlar n n sonuccedil
sayfalar nda listelenmezler Guumlnuumlmuumlzde yap lan Web sayfas n n arama motorlar nda
goumlruumlntuumllenmesi oldukccedila oumlnemlidir Fakat bir Web uygulamas ziyaretccedililer hakk nda oumlnemli
ki isel bilgilere sahipse bu bilgilerin arama motorlar nda herkes taraf ndan goumlruumlntuumllenmesini
sa lamas bir avantaja doumlnuuml uumlr [87] AJAX yerinde ve do ru bir ekilde kullan ld nda
uygulamalarda performans art n sa lar
Bu tez ccedilal mas nda Web 20 ak m n n ortaya ccedil k nedenleri ve RIA konseptine
duyulan ihtiyac n temeli irdelenmi tir Web 20 ak m nda oumlne ccedil kan uygulamalar ve ccedilal ma
sistematikleri incelenmi tir Oumlne ccedil kan bu uygulamalar n site tasar m nda dikkat ccedileken
89
oumlzelliklerine de inilmi tir AJAX teknolojisini olu turan bile enler incelenmi tir Bu inceleme
ve ara t rma sonucunda zengin internet uygulamalar na oumlrnek te kil edecek Web 20 ak m n n
ccedilekirde i olan AJAX teknolojisi kullan larak F rat Uumlniversitesi iccedilin ccedilevrimiccedili bir katalog
tasarlanm t r Bu tasar mda flexBook flexbookpage landscape wrapper zoomer gibi ek
bile enler kullan lm t r Navigasyon paneli tasarlanm t r Olu turulan tasar mda yerli ve
yabanc literatuumlr taramas yap larak emsallerindeki kullan l oumlzellikler projeye dahil edilmi tir
Projenin geli tirilmesi s ras nda izlenen ad mlar resimlenerek ortaya bir yol haritas ccedil kar lm t r
61 Oumlneriler
Bu tez ccedilal mas esas al narak ileride bu uygulamalar mobil cihazlar arac l yla
kullan labilirli i uumlzerine ara t rmalar suumlrduumlruumllebilir AJAX n uumlstuumln oumlzellikleri sayesinde Web
uumlzerinden yay nc l k ve mobil ileti im alanlar farkl bir boyut kazanm t r Birccedilok irket art k
ta nabilir cihazlar iccedilin Web 20 uygulamalar n AJAX la optimize etmeye ba lam t r Yeni bir
teknoloji olan AJAX la ta nabilir cihazlardaki performans bellek youmlnetimi s n rl tu giri i
gibi sorunlar n uumlstesinden gelinmesi hedeflenmelidir
AJAX kullan larak IDE (Integrated Development Environment) entegrasyonu Eclipse
iccedilin ba lant lar yaz labilir veya yap m servisi arac l yla do rudan IDE den yap m paketleri
geli tirilebilir Guumlnuumlmuumlzde oldukccedila popuumller olan accedil k kaynak kodlu yaz l m geli tirme
ortamlar nda entegre uygulamalar geli tirilebilir
Kullan c Arabirimi aretleme Beti i (User Interface Markup Language) s n f na dacirchil
edilecek gelece in en popuumller web tabanl teknolojilerinden biridir Flex geli tiricileri Adobe
Flex Builder - IDE ortam nda LiveCycle Data Services Java Coldfusion ASPNET JSP PHP
gibi popuumller web programlama dilleri yard m yla etkile imli ve guumlvenli web tabanl projeler
geli tirilebilir [82]
90
KAYNAKLAR
1 nternet Web 20 httptrwikipediaorgwikiWeb_20 Eri im tarihi 03092008
2 Oumlzer Z Web Teknolojileri ve AJAX Seminer Ccedilal mas Fen Bilimleri Enstituumlsuuml sf2
2007
3 nternet Web 20 Nedir wwworeillynetcompubaoreillytimnews20050930what-is-
web-20html Eri im tarihi 04102008
4 nternet httpravenyoungspaceslivecomblogcns17376F4C11A91E0E3717entry
Eri im tarihi 03092008
5 Mcluhan M Povers B R Ccedileviren Bahar Oumlcal Duumlzgoumlren Global Koumly 21 Yuumlzy lda
Yeryuumlzuuml Ya am nda ve Medyada Meydana Gelecek Doumlnuuml uumlmler Scala Yay nc l k 2001
6 nternet RIA konsepti httpwwwademaktepecomGunlukDetayaspxId=122 Eri im
Tarihi 26062008
7 Onat F A man Ouml K l ccedil A Sosyal A Sitelerinin Reklam Ve Halkla li kiler Ortamlar
Olarak De erlendirilmesi Sayfalar 3-6 2008
8 nternet httpi8tinypiccom6kymb0kgif Eri im tarihi 11072008
9 nternet DFA httpwwwdoubleclickcomproductsdfaindexaspx Eri im tarihi
14022009
10 nternet Adsensecom
httpswwwgooglecomadsensesupportbinanswerpyanswer=9712amptopic=13488 Eri im
tarihi 15112008
11 nternet DoubleClickcom wwwdoubleclickcom Eri im 13102008
12 nternet Adsense ho geldiniz wwwgooglecomadsense Eri im 18112008
13 nternet Flicker Tan m httptrwikipediaorgwikiFlickr Eri im tarihi 09032009
14 nternet Flicker Foto raf Payla m Sitesi httpwwwflickrcom Eri im 18022009
15 nternet BitTorent httptrwikipediaorgwikiBitTorrent Eri im tarihi 05012009
16 nternet Bittorent kulan m rehberi httpwwwbittorrentcombtusersguidesbeginners-
guide Eri im tarihi 05012009
17 nternet Bittorent kullan m k lavuzu httpwwwshukkocombittorrent_kilavuzu Eri im
tarihi 05012009
18 nternet Bittorent ccedilal ma mant httpwwwforumelbizbittorent-nedirgne-ise-
yarargresimli-detayli-super-anlatim-
t12836htmls=17f7b3147d97799d31c32b09e87d43e4ampamp Eri im tarihi 05012009
19 nternet Soumlzluumlk
91
httpwwwparliamentvicgovauSARCE-DemocracyFinal_ReportGlossaryhtm Eri im
tarihi 05012009
20 FU F LIU L WANG L Empirical Analysis of Online Social Networks in the Age of
Web 20 2007 Physica A Statistical Mechanics and its Applications Volume 387 Issues 2-3
Sayfalar 675-684
21 nternet Facebook httptrwikipediaorgwikiFacebook Eri im tarihi 06012009
22 nternet Facebook makale httpturkinternetcomhaberyazigosterphp3yaziid=22787
Eri im tarihi 06012009
23 nternet Facebook istatistiksel bilgiler
httpwwwinsidefacebookcom20090107facebook-growth-continuing-surpasses-150-
million-monthly-active-users Eri im tarihi 06012009
24 nternet Peter Thiel Facebook haberleri
httpwwwbusinessweekcomtechnologycontentmar2009tc2009031_743025htm Eri im
tarihi 06012009
25 nternet Blog httptrwikipediaorgwikiBlog Eri im tarihi 13022009
26 nternet Technorati httptechnoratimediacom Eri im tarihi 13022009
27 nternet Blog ara t rmas httpwwwmmistanbulcommakaletitlebloglarin-satin-alma-
kararlarina-etkisi-uzerine-bir-arastirma Eri im tarihi 13022009
28 nternet Wiki nedir httpyunushacettepeedutr~b0343579baglantilerwikinedirhtm
Eri im tarihi 13022009
29 nternet nternette wikinin yeri
httpogrencihacettepeedutr~besstindexphp20080603internette-wikinin-yeri Eri im
tarihi 14022009
30 Bergstedt S Wiegreffe S Wittmann J Moller D Content Management Systems and e-
Learning-Systems
A Symbiosis Proceedings of the The 3rd IEEE International Conference
on Advanced Learning Technologies (ICALT 03)
31 nternet ccedilerik Youmlnetim Sistemleri
httptrwikipediaorgwikiC4B0C3A7erik_yC3B6netim_sistemi Eri im tarihi
17022009
32 nternet ccedilerik Youmlnetim Sistemleri httpwwwmsxlabsorgforuminternet-bilgisayar-
dunyasi22262-icerik-yonetim-sistemi-cms-content-management-systemhtml Eri im tarihi
17022009
33 nternet Web 20 Tasar m Araccedillar httpwwweburhancomhazir-web-20-tasarim-
araclari Eri im tarihi 06022009
92
34 nternet Tasar m rehberi httpwwwhasanyalcincomweb-20-tasarim-rehberi-yansima-
ikon-ve-flaslarref=GuzelsTV Eri im tarihi 06022009
35 nternet AJAX kaynak makalesi
httpadaptivepathcompublicationsessaysarchives000385php Eri im tarihi 06022009
36 Keith J Bulletproof Ajax New Riders yay nc l k Sayfa 3 2007
37 Zakas N C McPeak J Fawcett J Professional Ajax 2nd Edition Wiley Publishing Inc
Sayfalar 5-18 2007
38 Gehtland J Galbraith B Almaer D Pragmatic Ajax A Web 20 Primer The Pragmatic
Programmers LLC sf1 2005
39 Babin L Beginning Ajax with PHP From Novice to Professional Apress Yay nc l k
Sayfa 6 2007
40 Crane D B beault B Sonneveld J Goddard T Gray C Venkataraman R Ve Walker J
Ajax in Practice Manning Publications Co Sayfalar 56 2007
41 Eichorn J Understanding AJAX Using JavaScript to Create Rich Internet Applications
August 11 2006 Sayfalar5-50
42 Ballard P SAMS Teach Yourself Ajax in 10 Minutes Sayfalar 6-78 28 Nisan 2006
43 nternet httpwwwipucuwebtraspders17php Eri im tarihi
44 Ullman C Dykes L Beginnig AJAX Wiley Publishing Inc Sayfa 44-100 2007
45 Zakas N C McPeak J Fawcett J Professional Ajax Wrox Press Chapter 2 Ajax
Basics Ajax Communication Techniques 2006
46 nternet Cross-Browser (Ccedilapraz Taray c Deste i) httpblogceyhunaksancomcross-
browser-capraz-tarayici-destegi Eri im 11032009
47 nternet
httpwwwyazgelistirnetviewtopicphpp=160ampsid=a49d3c26dd8e14e02e65bb222d6bcc39
Eri im 31032009
48 Jacobi J Fallows J R Pro JSF and Ajax Building Rich Internet Components Apress
Sayfa 175 2006
49 Schutta N T Asleson R Pro Ajax and Java Apress Sayfa 10 2006
50 Lauriat S M Ajax Architecture and Best Practices Pearson Education Inc Sayfa 25
2008
51 Powers S Adding Ajax OReilly yay nc l k June 01 2007
52 nternet Asenkron ve Senkron Meselesi httpAJAX-trcomasenkron-ve-senkron-meselesi
Eri im tarihi 02112008
53 Holzner S Ajax For Dummies Wiley Publishing Inc sf 40 2006
93
54 nternet httpwwwecma-internationalorgpublicationsfilesECMA-STEcma-262pdf
Eri im tarihi 06032009
55 Darie C Brinzarea B Chereche -To a F Bucica M AJAX and PHP Building
Responsive Web Applications Packt Publishing Sayfa42 2006
56 Olson S D Ajax on Java OReilly Yay nc l k Chapter 2 February 23 2007
57 nternet httpiibferciyesedutrggwebjavascriptpdf Eri im tarihi 06032009
58 nternet httpwwwmutasyonnetkitaplarasp hakk oumlcal javascript ders notu sf8 Eri im
tarihi 06032009
59 nternet httpwwwbilgisayarogrencomjava5doc Eri im tarihi 06032009
60 Asleson R Schutta N T Foundations of Ajax 2006 sf29
61 Wells C Securing Ajax Applications O Reilly Media Inc sf86 July 2006
62 nternet httpwwww3schoolscomdomdom_introasp Eri im tarihi 19032009
63 nternet httpwwww3orgTRREC-DOM-Level-1introductionhtml Eri im tarihi
19032009
64 nternet httpwwwberkerpeksagcomblogdom-document-object-model-belge-nesne-
modeli Eri im tarihi 19032009
65 nternet httpwwwrssnedircomxml_nedirphp Eri im tarihi 19032009
66 Jacobs S Beginning XML with DOM and Ajax From Novice to Professional Apress
Yay nc l k sf2631 2006
67 nternet
httpwwwcclubmetuedutrnenedirXML+(Extensible+Markup+Language)+Nedir3F
Eri im tarihi 20032009
68 nternet httpbelgelerorgelkitabixmldoc-howto_structhtml Eri im tarihi 20032009
69 nternet httpwwwverivizyoncomdetailaspcid=149 Eri im tarihi 20032009
70 nternet httpwwwbilgisayardershanesicomxml1htm Eri im tarihi 21032009
71 Johnson D White A Charland A ENTERPRISE AJAX Strategies for Building High
Performance Web Applications Prentice Hall Yay nc l k Sayfa 108 2008
72 nternet httpwwww3orgTRxhtml1dtds Eri im tarihi 01042009
73 nternet httpwwwcsharpnedircommakalegosteraspMId=51 52 Eri im tarihi
01042009
74 nternet httpofficemicrosoftcomtr-trinfopathHP010967301055aspx Eri im tarihi
01042009
75 nternet
httpwwwkodpaylascomviewtopicphpt=959ampsid=e5167bdea935943ed9bbdc91ee218c53
Eri im tarihi 01042009
94
76 nternet httpwwww3schoolscomXhtml Eri im tarihi 02042009
77 nternet httpwwwzvonorgxxlXMLTutorialOutput_turexample6html Eri im tarihi
02042009
78 nternet httpwwwbidbituedutrd=837 Eri im tarihi 03042009
79 nternet httpwwwcssnedircom Eri im tarihi 03042009
80 nternet httptrwikipediaorgwikiXSLT Eri im tarihi 03042009
81 nternet httpwwwbilisim-kulubucomsozluksozlukphpe=XSLT Eri im tarihi
08042009
82 nternet httpwwwsanalkursnetadobe-flex-nedir--1081html Eri im tarihi 10042009
83 nternet httpwwwadobecomtrproductsflex Eri im tarihi 11042009
84 nternet httpwwwtrflexcomp=4 Eri im tarihi 11042009
85 Oumlzer Z Varol A Web de Ajax Tekni inin Bant Geni lik Optimizasyonuna Etkisi
Bilimde Modern Youmlntemler Sempozyumu 2008
86 nternet httptrwikipediaorgwikiAJAX(programlama) Eri im tarihi 01062009
87 nternet httpajax-trcomajaxi-anlamak Eri im tarihi 01062009
95
OumlZGECcedilM
Zeynep OumlZER AYDO MU
zeynep_ozermsncom
F rat Uumlniversitesi Teknik E itim Fakuumlltesi
Elektronik Bilgisayar E itimi Boumlluumlmuuml
ELAZI
1983 y l nda Elaz da do du lk orta ve lise ouml renimini Elaz da tamamlad ktan
sonra 2002 y l nda F rat Uumlniversitesi Teknik E itim Fakuumlltesi Elektronik Bilgisayar E itimi
Bilgisayar Ouml retmenli i Boumlluumlmuuml nuuml kazand 2006 y l nda bu boumlluumlmden mezun oldu 2006
y l nda F rat Uumlniversitesi Fen Bilimleri Enstituumlsuuml Elektronik Bilgisayar E itimi Ana Bilim Dal
Bilgisayar Sistemleri Bilim Dal nda yuumlksek lisans e itimine ba lad 2007 y l ubat ay nda
Elaz n Karakoccedilan ilccedilesinin Yenice koumlyuumlnde h J Kd Uumlt m Mahir Oumlzdemir lkouml retim
Okulu nda Bilgisayar Ouml retmeni olarak goumlreve ba lad uan Elaz Korgeneral Hulusi Say n
Lisesi nde Bilgisayar Ouml retmeni olarak goumlrevini suumlrduumlrmektedir Yabanc dili ngilizce dir
Fatih AYDO MU ile evlidir
96
EK
Katalog ccedilal mas n n uygulama dosyas olan catamxml kullanmxml ve
imagepagemxml dosyalar n n kaynak kodlar a a daki gibidir
Catamxml
ltxml version=10 encoding=utf-8gt
ltmxApplication xmlnsmx=httpwwwadobecom2006mxml
layout=absolute
xmlnscontrols=qscontrols
backgroundColor=FFFFFF
creationComplete=init() color=FFFFFF xmlnslocal= xmlnscomp=comp
horizontalScrollPolicy=off verticalScrollPolicy=off borderColor=050505 borderStyle=solid
borderThickness=2gt
ltmxStyle source=stylecss gt
ltmxScriptgt
lt[CDATA[
import mxutilsStringUtil
import mxrpcsoapLoadEvent
import mxcontrolsAlert
import mxrpceventsFaultEvent
import qscontrolsFlexBook
import qscontrolsflexBookClassesFlexBookPage
import qscontrolsflexBookClassesFlexBookEvent
import qscontrolsflexBookClassesWBookPageImpl
import qscachingContentCache
import mxrpceventsResultEvent
import mxrpchttpHTTPService
import mxcoreUIComponent
import mxmanagersPopUpManager
import compResimSec
import Kullan
import mxcoreScrollPolicy
import mxcollectionsArrayCollection
private var aXML
[Bindable]
private var resimlerArrayCollectioncomboresim
97
private var dataSetHTTPService
private var resimdiziArray=new Array()
private var zoomYapBoolean=false
private function init()void
maskex=0
maskey=0
maskewidth=applicationwidth2
maskeheight=applicationheight-40
addEventListener(MouseEventMOUSE_MOVEmaskele)
addEventListener(tamam sayfa_secildi)
dataSet = new HTTPService()
dataSeturl = (dataimagesxml)
dataSetresultFormat = e4x
dataSetsend()
dataSetaddEventListener(FaultEventFAULT onFault)
dataSetaddEventListener(ResultEventRESULT onResult)
var wNumber=new Number
var hNumber=new Number
w=Applicationapplicationwidth
h=Applicationapplicationheight
bookwidth=w
bookheight=h-40
yuklemevisible=false
yuklemesource=assetsloadinggif
yuklemeaddEventListener(EventCOMPLETEyukleme_yuklendi)
private function yukleme_yuklendi(eventEvent)void
yuklemex=(applicationwidth2)-100
yuklemey=(applicationheight-40)2
private function maskele(eMouseEvent)void
if(zoomYap)
98
if((mouseXgt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) )
maskex=0
img2visible=false
img1visible=true
img1x=(applicationwidth2)-mouseX
img1y=-1mouseY
else if((mouseXlt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) )
maskex=applicationwidth2
img1visible=false
img2visible=true
img2x=-1mouseX
img2y=-1mouseY
maskex=mouseX
maskey=mouseY
private function onFault(eEvent)void
trace(e)
private function onResult(eResultEvent)void
a=new XML(eresult)
bookcontent = dataSetlastResultimage
bookaddEventListener(FlexBookEventTURN_STARTloadContent)
bookaddEventListener(FlexBookEventTURN_ENDloadContent)
private function sayfa_secildi(eventResimSec)void
99
sayfatext=eventyeniResim
git()
mxcontrolsAlertshow(sseventyeniResim)
private function loadContent(eventFlexBookEvent)void
setGorunum()
var pageImagePage = ImagePage(eventrenderer)
pageload()
sayfatext=(bookcurrentPageIndex2)toString()
resimdizi[bookcurrentPageIndex]=pagethumbsource
mxcontrolsAlertshow(bookcurrentPageIndextoString())
private function buyuk1_yuklendi(eventEvent)void
yuklemevisible=false
img1width=applicationwidth
img1height=(applicationheight-40)2
img1x=0
img1y=0
private function buyuk2_yuklendi(eventEvent)void
yuklemevisible=false
img2width=applicationwidth
img2height=(applicationheight-40)2
img2x=0
img2y=0
private function tumsayfalar()void
Kullanshow_window(thisfalseapplicationwidth-10(applicationheight-60)2)
customMoveend()
customMoveplay()
private function zoom()void
if(zoomerlabel==+)
zoomerlabel=-
if(img2source=aimage[bookcurrentPageIndex2]zoom)
yuklemevisible=true
img2addEventListener(EventCOMPLETEbuyuk2_yuklendi)
100
img2source=aimage[bookcurrentPageIndex2]zoom
if(aimagelength()gtbookcurrentPageIndex2+1)
img1addEventListener(EventCOMPLETEbuyuk1_yuklendi)
img1source=aimage[bookcurrentPageIndex2+1]zoom
zoomYap=true
else if(zoomerlabel==-)
zoomerlabel=+
setGorunum()
private function setGorunum()void
zoomYap=false
zoomerlabel=+
img1visible=false
img2visible=false
private function next()void
mxcontrolsAlertshow(bookcurrentPageIndextoString() bookpageCounttoString())
if(bookcurrentPageIndex+1 lt bookpageCount)
mxcontrolsAlertshow(--resimdizi[bookcurrentPageIndex])
setGorunum()
bookturnToPage(bookcurrentPageIndex + 1)
private function previous()void
if(bookcurrentPageIndex gt 0)
setGorunum()
bookturnToPage(bookcurrentPageIndex -1)
private function git()void
var s_nouint = new uint
s_no=Mathfloor(uint(sayfatext)2)
101
if(s_nogt0 ampamp s_noltbookpageCount)
bookturnToPage(s_no)
setGorunum()
]]gt
ltmxScriptgt
lt-- 614x453 --gt
ltmxParallel id=customMove target=Kullangt
ltmxMove duration=2000 xTo=(100) 2 yTo=(200) 2 gt
ltmxWipeRight duration=2000 gt
ltmxParallelgt
ltmxVBoxgt
ltmxHBoxgt
ltcontrolsFlexBook id=book width=100 height=100 x=0 y=0 horizontalCenter=0
verticalCenter=0
animateCurrentPageIndex=true
showCornerTease=false
edgeAndCornerSize=150
itemRenderer=ImagePage
animatePagesOnTurn=true
itemSize=halfPage cornerRadius=0 themeColor=1D99E8
backgroundAlpha=10 alpha=10gt
ltcontrolsFlexBookgt
ltmxHBoxgt
ltmxHBox height=30 width=100 verticalAlign=middle
horizontalAlign=center color=B65F5F backgroundColor=121313gt
ltmxSpacer width=10gt
ltmxSpacergt
ltmxTextInput borderColor=FFFFFF width=34 height=24 id=sayfa
color=FFFFFF fontSize=11 text=0 alpha=001gt
ltmxButton click=git() color=ffffff fontWeight=bold fontSize=11
width=114 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label=Sayfaya Git themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxSpacer width=60gt
102
ltmxSpacergt
ltmxButton click=previous() color=ffffff fontWeight=bold fontSize=11
width=70 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label=Geri themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxButton click=next() color=ffffff fontWeight=bold fontSize=11
width=70 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label= leri themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxButton click=tumsayfalar() color=ffffff fontWeight=bold fontSize=11
width=134 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label=Tuumlm Sayfalar themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxButton id=zoomer click=zoom() color=ffffff fontWeight=bold
fontSize=14 width=44 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00
00] label=+ themeColor=EDF2F5 textRollOverColor=EDD617 fontFamily=Arialgt
ltmxSpacer width=5gt
ltmxHBoxgt
ltmxSpacer height=10gt
ltmxVBoxgt
ltmxCanvas id=maske x=224 y=168 width=200 height=168
verticalScrollPolicy=off horizontalScrollPolicy=off borderThickness=0 borderColor=000000
borderStyle=solidgt
ltmxImage id=img1 x=0 y=0gt
ltmxImage id=img2 x=40 y=0gt
ltmxCanvasgt
ltmxImage x=10 y=144 id=yuklemegt
ltmxApplicationgt
103
Kullanmxml
ltxml version=10 encoding=utf-8gt
ltmxTitleWindow xmlns= xmlnsmx=httpwwwadobecom2006mxml
creationComplete=on_creation_complete()
styleName=popupWindow showCloseButton=true
paddingBottom=0 paddingTop=0 paddingLeft=0 paddingRight=0
height=200 width=100 alpha=09 borderAlpha=1gt
ltmxScriptgt
lt[CDATA[
import mxcontrolsAlert
import mxcollectionsArrayCollection
import mxrpceventsResultEvent
[Bindable]
private var sayfalarArrayCollection
[Bindable]
private var introString =
import mxeventsCloseEvent
import mxmanagersPopUpManager
import mxcoreApplication
import mxeventsDragEvent
import mxmanagersDragManager
import mxcoreDragSource
import compResimSec
import koraxcontrolsColorPickerResimSecEvent
private var m_parentDisplayObject = null
private function myResult(eventResultEvent)void
sayfalar = eventresultsayfalarsayfa
private function sayfaac(eventEvent)void
wndwith_last_preved()
mxcontrolsAlertshow(myTileselectedItemgittoString())
uyeler = eventresultsayfalarsayfa
104
private function on_creation_complete()void
myHTTPsend()
private static var wndKullan = null
public static function show_window(parentDisplayObject
modalBooleanwNumberhNumber)void
if (wnd == null)
wnd = new Kullan()
wndaddEventListener(mxeventsCloseEventCLOSE on_close_event)
wndm_parent = parent
if (wndisPopUp)
PopUpManageraddPopUp(wnd DisplayObject(Applicationapplication) modal)
PopUpManagercenterPopUp(wnd)
else
PopUpManagerbringToFront(wnd)
wndstart_init()
wndx=0
wndy=0
wndwidth=w
wndheight=h
wndmyTilewidth=w-20
wndmyTileheight=h-40
private function with_last_preved()void
if (m_parent = null) m_parentdispatchEvent(new ResimSec(tamam
myTileselectedItemgit))
private static function on_close_event(eventCloseEvent)void
if (wnd == null) return
PopUpManagerremovePopUp(wnd)
wnd = null
105
private function yardim()void
Kullanshow_window(thisfalse)
]]gt
ltmxScriptgt
ltmxHTTPService id=myHTTP url=dataonizlexml
result=myResult(event) showBusyCursor=truegt
ltmxTileList id=myTile dataProvider=sayfalar change=sayfaac(event)
itemRenderer=compUyeSayfasi width=100 height=147 rowHeight=110 columnWidth=120
rowCount=2gt
ltmxTitleWindowgt
106
ImagePagemxml
ltxml version=10 encoding=utf-8gt
ltmxCanvas xmlnsmx=httpwwwadobecom2006mxml width=600 height=400
xmlnscontrols=qscontrols
backgroundColor=FFFFFF horizontalScrollPolicy=off verticalScrollPolicy=offgt
ltmxstatesgt
ltmxState name=loadingStategt
ltmxAddChild position=lastChildgt
ltmxImage id=loadingContent horizontalCenter=0 verticalCenter=-6
source=assetsloadinggif gt
ltmxAddChildgt
ltmxStategt
ltmxstatesgt
ltmxtransitionsgt
ltmxTransition fromState= toState=loadingStategt
ltmxFade alphaTo=1 target=loadingContent duration=1000gt
ltmxTransitiongt
ltmxTransition toState= fromState=loadingStategt
ltmxSequencegt
ltmxFade alphaTo=0 target=loadingContent duration=1000gt
ltmxRemoveChildAction target=loadingContent gt
ltmxSequencegt
ltmxTransitiongt
ltmxtransitionsgt
ltmxScriptgt
lt[CDATA[
import mxcontrolsAlert
private var _loadedBoolean = false
public function load()void
if(_loaded)
return
_loaded = true
fullsource = datasourcetoString()
mxcontrolsAlertshow (fullsource)
107
currentState = loadingState
]]gt
ltmxScriptgt
ltcontrolsSuperImage left=0 right=0 top=0 bottom=0 id=thumb
source=datathumbtoString() gt
ltcontrolsSuperImage left=0 right=0 top=0 bottom=0 id=full complete=currentState = gt
ltmxCanvasgt
This document was created with Win2PDF available at httpwwwwin2pdfcomThe unregistered version of Win2PDF is for evaluation or non-commercial use onlyThis page will not be added after purchasing Win2PDF
VI
TABLO L STES
Tablo 21 Facebook ve myspace in buumlyuumlme tablosu 10
Tablo 31 Standart XHR nesnesinin oumlzellikleri 30
Tablo 32 Standart XHR nesnesinin fonksiyonlar
31
Tablo 33 De i ken tuumlrleri 41
Tablo 34 leccediller ve goumlrevleri 41
Tablo 35 kili i leccediller 42
Tablo 36 DTD karakterleri ve accedil klamalar
61
Tablo 37 DTD ccedilindeki niteliklerin de er ve accedil klamalar
62
Tablo 38 Varsay lan de erler ve accedil klamalar
62
Tablo 39 XML Belgelerinde kullan lan varl k bildirimleri 67
VII
KISALTMALAR L STES
AJAX Asenkron JavaScript ve XML
API Application Programming Interface (Uygulama Program Arayuumlzuuml)
ASP Active Server Pages (Aktif Sunucu Sayfalar )
CDNs Content Distributed Networks ( ccedilerik Da t c A lar)
CMS Content Management System ( ccedilerik Youmlnetim Sistemi)
CGI Common Gateway Interface (Genel Geccedili Arayuumlzuuml)
CSS Cascading Style Sheets (Basamakl Stil Sayfalar )
DFA DART for Advertisers
DOM Document Object Model (Doumlkuumlman Nesne Modeli)
DTD The Document Type Definition (Dokuumlman Tipi Tan mlama)
DWR Direct Web Remoting ( Direkt Web Eri imi)
ECMA European Computer Manufacturers Association (Avrupa Bilgisayar
Uumlreticileri Birli i)
GOumlBL GNU Oumlzguumlr Belgeleme Lisans
HTML Hyper Text Markup Language (Yard ml Metin aretleme Dili)
HTTP Hypertext Transfer Protocol (Yard ml Metin Aktar m Protokoluuml)
IDE Integrated Development Environment (Tuumlmle ik Geli tirme Ortam )
JSP Java Server Pages (Java sunucu Sayfalar)
LAN Local Area Network (Yerel Alan A )
MIYS E-ticaret ve Muuml teri li kileri Youmlnetim Sistemleri
MSN Microsoft Network
OOP Object Oriented Programming (Nesne Youmlnelimli Programlama)
PHP Hypertext Preprocessor (Yard ml Metin Oumlni leme)
PIs Processing Instructions ( lem Accedil klamalar )
RIA Rich Internet Applications (Zengin nternet Uygulamalar )
VIII
RPC Remote Procedure Call (Uzaktan Yordam Ccedila rma)
SAX Simple API for XML (XML iccedilin Basit API)
WIKI What I Know is (Ne Biliyorsam)
W3C World Wide Web Consortium (Duumlnya Ccedilap nda A Birli i)
XML eXtensible Markup Language (Geli tirilebilir aretleme Dili)
XHR XMLHttpRequest
XHTML Extensible HyperText Markup Language (Geli tirilebilir Yard ml Metin
aretleme Dili)
XSD eXtensible Schema Document(Geni letilebilir ema Dokuumlman )
XSL Extensible Stylesheet Language (Geli tirilebilir Biccedilimlendirme Dili)
XSLT Extensible Stylesheet Language Transformations (Geli tirilebilir
Biccedilimlendirme Dil Doumlnuuml uumlmleri)
IX
OumlZET
Yuumlksek Lisans Tezi
AJAX TEKNOLOJ S KULLANARAK CcedilEVR M Ccedil
KATALOG TASARIMI
Zeynep OumlZER AYDO MU
F rat Uumlniversitesi
Fen Bilimleri Enstituumlsuuml
Elektronik-Bilgisayar E itimi Anabilim Dal
2009 Sayfa 107
Gerccedilekle tirilmi olan bu uygulama kapsam nda Flex program ve Web 20 n
ccedilekirde ini olu turan AJAX (Asynchronous JavaScript and XML) teknolojisi kullan larak F rat
Uumlniversitesini tan tan kolayl kla guumlncellenebilen Zengin nternet Uygulamalar na (RIA- Rich
Internet Applications) oumlrnek bir ccedilevrimiccedili katalog tasar m ve gerccedilekle tirimi yap lm t r
Projenin gerccedilekle tirim a amalar nda kullan lan teknolojilerin ve izlenen youmlntemlerin
anlat mlar n iccedileren bir yol haritas olu turulmu tur
Anahtar soumlzcuumlkler AJAX RIA Web 20 ccedilevrimiccedili katalog e-dergi
X
ABSTRACT
Master Thes s
ONLINE CATALOG DESIGN USING AJAX TECHNOLOGY
Zeynep OumlZER AYDO MU
F rat University
Graduate School of Natural and Applied Sciences
Department of Electronic and Computer Education
2009 Page 107
Embracing in this comparison F rat University is introduced by using Flex program and
AJAX (Asynchronous JavaScript and XML) technology which forms Web 20 Also RIA (Rich
Internet Applications) is easily renowated which is instance for online catalog design A road
map including realization of the project and tracing methods are illustrated
Keywords AJAX RIA Web 20 online catalog e-journal
1
1 G R
Web in geli im suumlrecinde ccedile itli youmlntemler kullan l r Bu youmlntemlerin farkl amaccedillara
hizmet etmeye ba lamas yla Web te ak mlar meydana gelmi tir Bu ak mlardan ilki Web 10
ak m olarak adland r l r Bu ak mda kullan c lar bilgilendirmeye youmlnelik iccedilerik sunumu
yap lmaktad r [1]
Web 20 ak m ise internet sitelerinin bilgi bar na olmas ndan i leyen platformlara
ta nmas
olarak tan mlanabilir Web 20 RIA (Rich Internet Applications- Zengin nternet
Uygulamalar ) i lemleri internet sunucu mimarisi temeline dayanmaktad r RIA da beraberinde
kulland AJAX Flex gibi teknolojiler uumlzerine kuruludur [1]
Baz yeni teknolojilerle de i en World Wide Web duumlnyas Web 20 RIA AJAX
(Asynchronous JavaScript and XML- E zamanl olmayan JavaScript ve XML) terimleriyle izah
edilmektedir
11 Tez Ccedilal mas n n Amac
Bu tez ccedilal mas yla Web 20 n ccedilekirde ini olu turan AJAX (Asynchronous JavaScript
and XML) teknolojisi ve Flex program kullan larak F rat Uumlniversitesini tan tan kolayl kla
guumlncellenebilen Zengin nternet Uygulamalar na (RIA-Rich Internet Applications) oumlrnek bir
ccedilevrimiccedili (online) katalog tasar m yap lmas hedeflenmi tir Projenin gerccedilekle tirim
a amalar nda kullan lan teknolojilerin ve izlenen youmlntemlerin anlat mlar n iccedileren bir yol
haritas olu turulmas amaccedillanm t r Bu tez ccedilal mas sonucunda geli tirilen yaz l mla kolay
guumlncellenebilen katalog haz rlanmas na katk sa lanmas amaccedillanm t r
12 Tez Ccedilal mas n n Kapsam
Bu tez ccedilal mas 6 boumlluumlmden olu mu tur 1 Boumlluumlm giri i olu turmaktad r 2Boumlluumlmde
Web 20 ak m incelenecektir 3 Boumlluumlmde AJAX teknolojisi accedil klanacakt r 4 Boumlluumlmde
yaz l m gerccedilekle tirme arac olarak kullan lan Flex tan t lacakt r 5 Boumlluumlmde gerccedilekle tirilmi
ccedilevrimiccedili katalog hakk nda bilgi verilecektir 6 Boumlluumlmde ccedilal man n sonuccedillar
ve gelece e
youmlnelik oumlneriler bulunmaktad r
2
2 WEB 20 AKIMI
Ccedilo u teknolojilerde oldu u gibi yenilik aray ihtiyaccediltan do ar Yeni Web ak mlar n n
do u u da 2001 y l ndaki tuumlm duumlnyay etkileyen kriz sonras nda iflas eden irketlerin yeniden
aya a kalkma ccedilabalar n n bir sonucu olarak ortaya ccedil km t r [2 3] Web 20 ak m 2005 te ilk
kez OReilly ve MediaLive International aras nda gerccedilekle en bir beyin f rt nas s ras nda
uumlretilmi bir kavramd r [3] Web 20 kavram World Wide Web teknolojisinde kullan lan
de i en ve geli en e ilimlere verilen bir ad olarak da tan mlanabilmektedir
ekil 21 Web 20 kavram
[4]
Web 20 kavram ekil 21 de goumlsterildi i uumlzere Web bir uygulama platformu ve sosyal
etkile imli olma oumlzelliklerini bar nd r r Ccedilevrimiccedili hayat n ba lang c ve devam n temsil eder
Say sal ortamda kendini ifade etme imkacircn sunar Kullan c lar (oku-yaz oumlzelli i ile) Web te
kat l mc kimlik kazan r
Asl nda Web 20 ortam n 1964 y l nda McLuhan Global Koumly terimini kullanarak
ortaya atm t r McLuhan Global Koumlyuuml gelecekte ileri teknolojiye geccedililmesiyle ve toplumlar
aras nda s n rlar n kalkmas yla duumlnyan n her kouml esinde teknolojiyi kullanan herkesin co rafi
s n rlar ve s n rlamalar olmaks z n diledikleri ki iyle ileti im kurabilecekleri
haberle ebilecekleri ve payla mda bulunabilecekleri bir ortam olarak tan mlam t r [5]
Mc Luhan n n tan m ndan guumlnuumlmuumlze kadar geccedilen suumlreccedil iccedilinde kullan c ihtiyaccedillar
da
de i im ve geli im goumlstermi tir Bu ihtiyaccedillar kar lamak iccedilin genel olarak internet
uygulamalar n n daha zengin bir arayuumlz ile sunulmas n sa layan uygulamalar Zengin nternet
Uygulamalar ad alt nda k sa zaman oumlnce hayat m za girmi tir
RIA uygulamalar s radan HTML web uygulamalar ile standart masauumlstuuml uygulamalar
aras ndaki bo lu u dolduran bir geli tirme platformudur Web arayuumlzuumlnde basit HTML ile
3
s n rl kalmadan masauumlstuumlndeki zengin goumlrsel ouml eleri program niteli inde kullanabilecek her
tuumlrluuml araccedil RIA konseptini uygulamaktad r [6]
Kullan c lar art k iccedilerik uumlreticilerin s n rlar n kald rarak kullan c n n yan s ra kat l mc
olarak ta nitelendirilerek etkile imli bir rol uumlstlenmi lerdir nternetin bu yeni gereksinimlere
cevap vermesiyle ortaya ccedil kan Web 20 doumlnuuml uumlmuuml hem kullan c say s nda art a neden
olmu tur hem de kullan c lar n iccedilerikleri yani mesajlar olu turdu u ve payla t buumlyuumlk bir
guumlce doumlnuuml muuml tuumlr Bu guumlcuumln oumlnemini ccedilabuk anlayan kurulu lar mimarilerine AJAX da dacirchil
ederek oumlnce arama motorlar n Google Yahoo yu daha sonra MSN yi Hotmail i bloglar
(Myspace Bloggercom Blogcucom gibi) Youtube u Wikileri ve sosyal a sitelerini
(Facebook Twitter Orkut vb) ke fetmi lerdir Bu ke iflerin sonucunda McLuhan n Global
Koumly uumlnuumln 21 Yuumlzy lda tam olarak gerccedilekle ti i soumlylenebilir Bu interaktif siteler sayesinde
ayn anda milyarlarca ki inin rk dil din ya am tarz e itim ya cinsiyet statuuml goumlzetmeksizin
e zamanl payla mda bulunup kendi ccedilevreleri ve ba ka ccedilevrelerle ileti ime geccedilebilmektedirler
ekil22 de goumlsterilen irketler Web 20 ak m nda oumlne ccedil kan sitelerin oumlzellikle ccedilevrimiccedili
faaliyet goumlsteren reklacircm irketleri pazarlama ve ticari irketler perspektifinden bak ld nda da
oumlnemli bir potansiyele sahip kitle ileti im araccedillar olarak goumlruumlluumlr [7]
ekil 22 Web 20 ak m nda oumlne ccedil kan uygulamalar [8]
Kitle ileti im arac olarak kullan labilen bu uygulamalar iccedilin birccedilok geli tirme ortam
mevcuttur Adobe Flex AJAX Java Applet Adobe Flash ve Microsoft Silverlight uygulamalar
en ccedilok bilinen RIA uygulamalar d r A a da da bu uygulamalarla olu turulmu Web 20
platformunda oumlne ccedil kan popuumller uygulama oumlrnekleri incelenecektir [7]
4
21 Web 20 Platformunda Oumlne Ccedil kan Popuumller Uygulamalar
kinci nesil internet hizmeti olarak literatuumlre giren Web 20 ak m yla internet sitelerinin
ccedilehresi de i mi tir nternet siteleri art k masauumlstuuml uygulamalar ile internet uygulamalar
aras nda bir koumlpruuml goumlrevi uumlstlenmi tir A a da bu ak m n popuumller uygulamalar ndan oumlrnekler
bulunmaktad r
211 Double Click - Google AdSense
Google firmas na ait iki uygulama da reklacircm verenlerin ve yay nc lar n web uumlzerinden
reklacircm hizmeti sunmas n sa layan sitelerdir Her reklacircmc n n hedefi tuumlketicilerin isteklerine
uygun ccediloumlzuumlmler sunmakt r Bu ccediloumlzuumlm ise Web 20 la reklacircmlar n profilini de i tirmi tir Art k
istenmeyen kendili inden accedil lan reklacircm pencerelerinin yerini kullan c n n bilgisayar na
yerle tirilmi ccedilerezlerden ccedilekti i bilgilere dayanarak kullan c n n ilgisini ccedilekebilece ini tahmin
etti i rahats z edici olmayan metin ya da resim tabanl
reklacircmlar alm t r
DoubleClick in di er reklacircm firmalar ndan ayr lan youmlnuuml reklacircmc lar iccedilin DART
oumlnerisiyle k saca DFA (DART for Advertisers) ile reklacircm youmlnetimi ve servis ccediloumlzuumlmlerinde
kullan c lar na dijital pazarlama programlar n n tuumlmuumlnuuml kapsayan youmlnetimi kolay daha iyi bir
arayuumlze sahip h zl geni bir arama sistemine sahip de eri artan sitelerin trafik ak n
belirleyen bir ccediloumlzuumlm olmu tur DoubleClick daha ccedilok grafiksel reklacircmlar yay nlamaktad r
Oumlnceleri Web 10 uygulamalar aras nda say lan bu site Web 20 doumlnuuml uumlmuumlnuuml ba ar yla
gerccedilekle tirmi tir [9]
Google AdSense ise web sitesi yay nc lar n n site iccedileri iyle alakal dinamik ve goumlze
batmayan Google reklacircmlar n
web sitelerinde goumlstererek kullan c lar n bu reklacircmlara
t klamalar yla para kazanmalar n sa laman n h zl ve kolay bir yoludur Uumlcretsiz olan bu
program sayesinde her t klama ve goumlsterim iccedilin site sahiplerine oumldeme yap l r [10] Bu
uygulamalar sayesinde Web de daha ak ll bir sisteme do ru youmlnelim ba lam t r
ekil 23 Doubleclick ve Google Adsense sitelerinin logolar [11 12]
5
212 Flickr
Yahoo nun sundu u bir hizmet olan uumlcretsiz foto raf arama ve payla m sitesi Flickr
ayn zamanda web servisi ve ccedilevrimiccedili topluluk platformudur Web 20 n ilk uygulamalar ndan
biridir Foto raf payla m nda en popuumller sitelerin ba nda gelmektedir ccedileri inde yakla k
olarak 3 milyar
a an foto raf bulunmaktad r Yenilikccedili ccedilevrimiccedili topluluk araccedillar foto raflar
etiketlemeye ve s n fland rmaya yard mc olur Bu da popuumllaritesindeki ciddi art n
nedenlerinden biridir
Flickr a imaj yuumlkleyebilmek iccedilin Yahoo dan bir e-mail adresiyle sisteme giri
yap lmal d r Payla lmak istenen foto raflar uumlcretli uumlyelik olmadan her imaj iccedilin 5 Mb l k
s n rlamayla ayda toplam 100 Mb a kadar yuumlkleme yap labilir Sadece foto raf eklemenin
d nda imajlar uumlzerinde duumlzenlemeler yap labilir Belirlenen alanlara notlar eklenebilir
Be enilen foto raflara yorumlar eklenebilir Ccedile itli gruplara uumlye olunup ileti im kurulabilir
Ayr ca API leri sayesinde XML-RPC (Remote Procedure Call- Uzaktan Yordam Ccedila rma)
arabirimi kullanarak flickr sitesindeki foto raflarla ilgili bilgileri proseduumlrler sayesinde XML
format nda al p ayr t rarak ba ka bir programda kullan labilinir Flickr daki blog grup ve
etiketleme alt yap s bu API lere dayanmaktad r [13]
ekil 24 Flickr sitesinin logosu [14]
213 BitTorrent
BitTorrent internet uumlzerinden yuumlksek h zlarla iccedileri in da t ld duumlnya ccedilap nda bir
standartt r Ayr ca 150 milyondan fazla kullan c ya sahip en son p2p (peer to peer) dosya
payla m youmlntemlerinden biridir Di er p2p payla m programlar ndan fark sabit olmayan
ba ms z sunucu tan mlama dosyalar sayesinde sabit bir sunucuya ihtiyaccedil olmaks z n belirli bir
protokol ccedilerccedilevesinde indirme (download) yaparken yuumlkleme (upload) yap lmas na da izin
vererek payla ma devam edebilmesidir [15]
Python programlama diliyle yaz lm bir uygulamad r [15]
ekil 25 ccedilerik da t m sitelerinde bittorrent site logosu [16]
6
Bit Seli olarak da ccedilevirebilece imiz ccedilok h zl bir sistemdir BitTorrent sayesinde
oldukccedila buumlyuumlk boyutlu videolara ses ya da yaz l m dosyalar na daha h zl daha ucuz ve daha
kolay bir ekilde ula labilmeyi sa lar
Guumlnuumlmuumlzde ccedilerik Da t c A lar (Content Distributed Networks-CDNs) guumln geccediltikccedile
popuumllaritesini art rmaktad r Bittorent kullan m n n 2004 te internet te teknik standartlar ve
youmlnetim konusunda yetkili organ olan W3C (World Wide Web Consortium - Duumlnya Ccedilap nda
A Birli i) taraf ndan yap lan bir ccedilal maya goumlre P2P ba lant lar n toplamda 60 n tuumlm
internet trafi inin ise 30 unu a aca tahmin edilmektedir
BitTorrent le dosya transferi yap l rken oumlncelikle bilgisayarda BitTorrent stemci
(Client) yuumlkluuml olmal d r stemci yaz l mlara oumlrnek Flashget Azureus BitTorrent Torrent
ABC LimeWire vb yaz l mlar olabilir ekil 26 ve ekil 27 de en popuumller uygulamalardan
Torrent yaz l m n n kurulum ve arayuumlz oumlrne i goumlruumllmektedir
ekil 26 Torrent program n n anasayfas
7
ekil 27 Torrent program n n arayuumlzuuml
BitTorrent istemciler BitTorrent Protokol uygulamalar n yapar Her istemci bu
protokoluuml kullanarak dosyalar n kullan c lar n BitTorent in kulland protokole sahip
duumlnyadaki tuumlm iccedileriklere h zl ve guumlvenilir bir ekilde eri mesine izin verir stenilen iccedileri in
indirilebilmesi iccedilin gerekli tan mlama bilgilerinin bar nd
torrent uzant l bir dosyaya
ihtiyaccedil vard r Bu torrent dosyalar n ccedile itli duyuru sitelerinden ya da Web den temin edildikten
sonra istemciler yukar da bahsedilen herhangi bir torrent yaz l m kullanarak bu dosyay accedilarlar
ndirme ba lad anda indirilmek istenen dosyay payla an kullan c lar n olu turdu u kuumlccediluumlk
a a (swarm) dacirchil olurlar Bu kuumlccediluumlk a daki her kullan c dosyan n indirdi i boumlluumlmuumlnuuml di er
kullan c larla payla mas gerekir Tuumlm bu i lemleri de takipccedili (tracker) isimli bir sunucu kontrol
eder Yakla k olarak 256 Kb buumlyuumlkluuml uumlndeki bu kuumlccediluumlk boyutlu dosyalara indeksleyici
(indexer) de denmektedir Kuumlccediluumlk bir a
kurulmas iccedilin tuumlm dosyaya sahip en az bir da t c n n
(seeder) olmas gerekir Da t c lar herhangi bir dosyay yuumlkleyen kaynaklard r O dosyan n
tamam n
kendi bilgisayar na indiren her kullan c art k bir da t c
olur Fakat da t c olmak
kullan c lar n insiyatifindedir ndirme i lemi bittikten sonra o dosya payla ma accedil k tutulmazsa
di er kullan c lar da t c dan bu dosyay ccedilekerek indirme i lemini h zland ramazlar Da t c
say s
ne kadar artarsa indirme i lemi o kadar h zl olur ndirme yapan kullan c lara da grup
uumlyeleri (peers) denilmektedir Torrent dosyas n indiren kullan c lar izleyicilere (tracker) dosya
hakk nda bilgi goumlnderirler di er kullan c lar (peers) ise izleyicilere ba lanarak kimde hangi
dosyan n hangi parccedilalar n n oldu unu ouml renirler zleyiciler uumlzerinden kesinlikle dosya transferi
8
gerccedilekle mez sadece kaynak payla l r Hangi kullan c ne kadar dosya ccedilekti ve ne kadar
yuumlkledi gibi istatistiksel bilgileri de bar nd rabilir [16 17]
Sadece indirme i lemi yap p kaynak olmay istemeyen ki ilere leecher (suumlluumlk) denir Bu
anlay a sahip ki iler gruplar iccedilinde ho kar lanmazlar Bir torrent dosyas payla m nda
kaynak (seed) say s s f r ise yani dosyan n tamam na sahip ki iler payla mdan ccedilekilmi lerse
eksik dosyaya sahip buumltuumln uumlyeler (peer) birbirleri aras nda veri al veri i yaparak eksik
parccedilalar indirebilecekleri bir kaynak olmad ndan belli bir yuumlzdesi tamamlanm dosyaya
sahip olarak kal rlar Bu durumda daha oumlnce dosyay indirmi ve dosyan n tamam na sahip olan
bir kullan c
eksik parccedilalar goumlndermek iccedilin dosyay yeniden payla ma accedilabilir (seed eder) Bu
olaya reseed etme denir [18]
214 Sosyal A Siteleri
Sosyal a lar bireyler aras ndaki ki isel veya profesyonel ili kilerin olu turuldu u
duumlzenlendi i a d r [19] Son y llardaki bilgi teknolojilerindeki geli meler sosyal a lar n gerccedilek
ya amdakinden daha farkl bir ekilde yeniden yap lanmas n
sa lam t r Herhangi bir
irketteki yerel a iccedilinde personelin e-posta al p-goumlndermesiyle olu an etkinlik ve e-posta
gruplar ilk ccedilevrimiccedili sosyal a oumlrneklerinden say labilir Daha sonra h zla hayat m za giren
bloglar wikiler ve sosyal a siteleri gibi sosyal i birli i sa layan teknolojilerin geli mesi
insanlar n ileti im kurduklar bilgi resim muumlzik video payla t klar ve birbirleriyle suumlrekli
haberle tikleri ccedilevrimiccedili sanal topluluklar n olu mas n sa lam t r [20] Bu topluluklar n h zla
yay lmas n n temelinde kullan c lar n bireysel aktivitesine ba l olarak duygu ve duuml uumlncelerini
bilgiyi guumlncel haberleri tavsiyelerini be enilerini payla ma fikri vard r A a da sosyal a
sitelerinden en popuumller olanlar iccedilinde yer alan Facebook incelenecektir [7]
2141 Facebook
En yayg n sosyal a sitesi Facebook Amerika Birle ik Devletleri nde 4 ubat 2004
tarihinde Harvard Uumlniversitesinde ouml renci Mark Zuckerberg taraf ndan kurulmu tur Facebook
oumlncelikle Harvard ouml rencileri iccedilin kurulmu tu Daha sonra h zla tuumlm duumlnyaya yay lm t r
Kullan c lar siteyi uumlcretsiz uumlye olarak kullanabilmektedir Site gelirini banner reklamlar ndan ve
sponsor gruplar ndan almaktad r Duumlnyan n en popuumller Web 20 blogu TechCruncha goumlre
Amerika Birle ik Devletleri ndeki uumlniversitelerdeki ouml rencilerin 85inin facebookda bir
hesab bulunmakta ve bunlar n 60 her guumln ba lanmaktad r 85 her hafta 93 her ay
ba lananlar aras ndad r [21] Facebook sitesinden ba ms z Web 20 ak m n yak ndan takip
9
eden bir blog sitesi olan insidefacebook 2009 Ocak ay n n ba nda yay nlad habere goumlre
facebook kullan c say s a a daki grafikte goumlruumllduuml uuml gibi yakla k 140 milyonu bulmu tur
Milyonlar a k n aktif uumlye say s yla guumlnde ortalama 150 bin aktif kullan c yla sanal duumlnyan n en
popular sitesi olmu tur [22]
ekil 28 Facebook kullan c say s n n aylara goumlre da l m grafi i [23]
Aktif kullan c lar n iccedileri e katk s a a daki istatistik sonuccedillar n do urmu tur [22]
13 milyon kullan c durumlar n en az ndan guumlnde bir kez guumlncellenmektedir
25 milyon kullan c her guumln Sayfa hayran (fan of Pages) olmaktad r
Siteye her ay 700 milyon foto raf yuumlkleniyor ki toplam foto raf rakam yakla k 10
milyar bulmaktad r
Her ay 4 milyon video yuumlklenmektedir
Her ay 15 milyon iccedilerik parccedilas (web linki yeni hikacircyeler blog yaz lar notlar
foto raflar vb) payla ma sunulmaktad r
Her ay 2 milyon etkinlik olu turulmaktad r
Sitede 19 milyon adet aktif grup varl n suumlrduumlrmektedir
Yukar da belirtilen bu rakamlar sosyal ileti im a lar n n ne kadar ciddi boyutlarda bir
kapasiteye sahip oldu unu goumlstermektedir
10
ekil 29 Aylara goumlre facebook ve myspace site analizi [22]
Facebook ve ona en yak n rakibi sosyal ileti im web sitesi olan MySpace compete de
kar la t r ld nda yukar daki grafik elde edilmektedir
Tablo 21 Facebook ve myspace in buumlyuumlme tablosu
Tarih 032008 032009 Kullan c
Ayl k Y ll k
facebookcom
91054535 234
1951
myspacecom
55594761 48
-114
Tablo 21 de Mart 2008 ile Mart 2009 aras ndaki ayl k aktif ziyaretccedili say s n
goumlstermektedir Compete verilerine goumlre Aral k 2008 de facebook myspace in kullan c say s n
yakalam t r Tablo 21 deki verilere goumlre bir oumlnceki y la goumlre Facebook taki kullan c say s nda
ayl k 234 luumlk bir art varken MySpace 48 lik bir buumlyuumlmeye sahiptir Yakla k olarak
ayl k MySpace Facebook u 5 kat geriden takip etmektedir Facebook taki bir oumlnceki y la
goumlre 1951 lik buumlyuumlmeye kar n myspace de 114 luumlk kuumlccediluumllme goumlruumllmektedir Elde edilen
veriler ileriki y llarda bu rakamlar aras ndaki uccedilurumun artaca n i aret etmektedir
Facebooktaki bu h zl buumlyuumlme ekonomi ve ticari sektoumlruumlnuumln de ilgisini ccedilekmektedir Oumlnemli bir
yat r m alan olarak giri imcileri cezbetmektedir
Facebook youmlneticilerinden Peter Thiel ise Facebookun iccedil de erinin 8 Milyar dolar
oldu unu ve proje gelirlerinin 2015 y l iccedilin 1 milyar dolar oldu unu soumlylemektedir [24]
Duumlnyaca tan nm Microsoft irketi 24 Ekim 2007 de Facebooku 16l k hissesini 240 milyon
dolara sat n alm t r Google ve di er irketler de gittikccedile de er kazanan Facebook hisselerine
youmlnelmektedir [24]
11
215 Web Guumlnluumlkler
ngilizcedeki Web
ve log kelimelerinin birle iminden olu an Blog kelimesi internet
uumlzerinden ki ilerin istedikleri konu hakk nda fikir beyan edebilecekleri kendilerini kolayca
ifade etmelerini sa layacak bir ortamd r
Bloglar genellikle en yeni yorum ve yaz lardan eski tarihli yorum ve yaz lara do ru
s ralanm web tabanl yay nlar
belirtir Bloglar n iccedileri i suumlrekli guumlncellendi i iccedilin sadece
bloglar iccedilin kurulmu oumlzel indeksleme mekanizmalar ve arama motorlar bulunmaktad r [25]
Duumlnya ccedilap nda indeksleme mekanizmalar n n en oumlnde geleni Technorati firmas
milyonlarca blog okuyucusu iccedilin her geccedilen guumln 15 milyondan fazla yeni blogu
indekslemektedir [26] Forrester in ara t rma irketlerinden internet ile ilgili ciddi bir ara t rma
kurumu olan JupiterResearch uumln 2008 A ustos unda bloglar uumlzerine gerccedilekle tirdi i
ara t rmada internet kullan c lar na 40 soruluk kapal uccedillu soru youmlneltilmi tir Bu ara t rma
sonucunda geccedilti imiz doumlrt y l iccedilerisinde bloglar n okunma oranlar nda 300 oran nda bir art
oldu u ortaya ccedil km t r Belki ilgimi ccedilekecek bir bloga ula abilirim duuml uumlncesi ile kullan c lar
okuduklar bloga eklenmi
olan di er linkleri de takip edebiliyorlar S k blog okuruyum
diyenlerin 38 i yeni bir blogu okudu u blogun linklerinden ke fetti ini belirtmi tir
Ara t rmaya kat lan blog okurlar n n 34 uuml Web te dola rken yeni bir blogla tan t n 11 i
blog arama motorlar n kulland n
belirtmi [27]
Bloglar n bu kadar yayg nla mas n n nedenlerinde biri de internet gezginler sanal
acirclemdeki tek duumlze yorumsuz hatta bazen oldukccedila bilimsel bir dille yaz lm yaz lardan
s k ld klar iccedilin bloglar tercih etmektedir Bloglarda ki iler gittikleri bir seminer hakk ndaki
yorumlar n kulland klar bir uumlruumln hakk ndaki fikirlerini k saca hayata dair kendi yorumlar n
katarak ba ka ki ilerle payla abilmektedirler
216 Wiki
Bilgiye ula mak iccedilin eskiden oldu u gibi kitap ya da ansiklopediler kullan lmamaktad r
Guumlnuumlmuumlzde kuumlreselle menin ve geli en teknolojinin etkisiyle tuumlm kaynaklara bilgisayar
uumlzerinden ula lmas elde edilen bilgilerin k sa suumlrede derlenebilmesine imkacircn vermi tir
Wiki ler kullan c lar n uumlzerinde istedi i gibi duumlzenlemeler yapmas na izin veren bilgi
sayfalar toplulu udur ngilizce What I Know is soumlzcuumlklerinin k saltmas
olan Wiki
Bildi im kadar yla anlam na gelir [28]
12
Wikilerin ccedilal ma prensibi u ekilde accedil klanabilir Bir web program script ya da script
grubu sayesinde veritaban na yaz lm olan ya da sadece dosya halindeki verileri okur bu
verileri HTML kodlar ile de i tirir ve Web taray c s na yans t r
ekil 210 Vikipedi oumlzguumlr ansiklopedi sitesinin logosu
Wiki dilini kullanan ve internetin en geni iccedileri ine sahip ccedilevrimiccedili ansiklopedisi
Vikipedi 22 Ocak 2007de Alt n Oumlruumlmcek 2006 En yi ccedilerik oumlduumlluumlnuumln sahibi oldu
Wikipediaorg taraf ndan geni kitlelere tan t lan Wiki dili pek ccedilok farkl programlama
platformunda Javascript ASP PHP C++ vb kullan labilmektedir
2161 Wiki Kullanman n Avantajlar
Web proje gruplar
projeleri olu tururken ekiplere ayr ld iccedilin programc lar kendi
goumlrevi d ndaki ccedilal malarda neler yap ld n
tam olarak bilemez ccedileri in yap land r lmas nda
geli melerden sadece iccedilerik koordinatoumlrleri haberdard r An nda yap goumlster oumlzelli iyle Wikiler
bu sorun iccedilin pratik bir ccediloumlzuumlm te kil eder
ndekslenme yapan sitelerde bile arama yap l rken defalarca ayn siteye girilebilir yahut
aran lan bilgiyi bulmak ccedilok zaman alabilir Wiki gereksiz tekrarlardan kurtar r steyen herkes
wiki iccedileri indeki bilgileri eksik ya da hatal
ise de i tirilebilir veya kald rabilir Bu i lemleri
yapan wiki youmlneticilerine wikipedist denir Wikipedistler sayfa duumlzenlemelerine ve iccedilerik
zenginle tirmeye yard mc olurlar
Wiki de de i iklik yap ld nda de i iklik yapan ki inin bir hesab yoksa IP adresiyle
varsa kullan c ad yla kaydedilerek hemen sonuccedil goumlzlenebilir Yap lan iccedileriksel herhangi bir
hata ba kalar taraf ndan fark edildi inde duumlzeltilir Geccedilmi sekmesiyle duumlzeltilen sayfalar n
oumlnceki suumlruumlmleri kronolojik s ralamayla takip edilebilir hatta sayfalar aras nda kar la t rma
bile yap labilir Sayfa iccedilerikleri hakk nda Tart ma
sekmesiyle fikir beyan nda bulunulabilinir
Tart malara yorum eklenebilir Denetleme mekanizmas sayesinde telif haklar n n ihlali gibi
durumlarda ihlali yapan kullan c lar engellenebilmektedir
13
Wiki di er ansiklopedilerden farkl olarak Vikipedi GNU Oumlzguumlr Belgeleme Lisans
(GOumlBL) kullanmaktad r Kullan c lar na oumlzguumlr iccedilerik kat l m e it tarafs z ve uumlcretsiz kat l m
hakk verir Ayr ca diluumllkekonuya goumlre geli mi kategorilendirme sistemine sahiptir Diff
oumlzelli i sayesinde sayfalar aras ndaki fark izlenebilir [29]
217 ccedilerik Youmlnetim Sistemleri
ngilizce Content Management System ya da k saca CMS olarak tan nan ccedilerik
Youmlnetim Sistemleri - YS bilgiyi olu turmak ar ivlemek ara t rmak denetlemek ve
yay nlama olana sa layan buumlyuumlk bir veritaban na sahip moduumlllerden olu an buumltuumlnle ik bir
ortamd r YS lerde iccedilerik iki ayr boumlluumlmden olu ur Bunlardan birincisi uumlzerinde i lem
yap lmam olan ham bilgiyi bar nd ran veritaban
di eri ise bu bilginin yerle imini goumlsteren
ablondur ablonda bilginin goumlsterilece i sayfan n goumlrsel boumlluumlmuumlnuuml olu turan yaz tipleri
renkleri gibi tuumlm biccedilim bilgileri saklan r Genellikle PHP benzeri dillerle kodlan r Boumlylece daha
esnek hale gelebilirler [30]
ccedilerik Youmlnetim Sistemleri uluslararas platformda birccedilok organizasyon iccedilin zorunluluk
haline gelen modern bir veri youmlnetimi tekni idir Guumlnuumlmuumlzde iccedilerik youmlnetim sistemleri kendi
iccedilerisinde boumlluumlnmuuml bir yaz l m enduumlstrisi haline gelmi tir Kendi iccedilerisinde portal sistemleri
Wiki sistemleri web-based grupware vb alt dallara ayr lan enduumlstri guumlnuumlmuumlzde halen
geli imini suumlrduumlrmektedir [31]
Web yay nlama sistemi kullan c lar arad klar iccedileri e goumlre veritaban iccedilinde anahtar
kelimeler yazar olu turulma tarihi gibi ccedile itli oumllccediluumltlere goumlre arama yapabilirler Web iccedilerik
youmlnetim sistemleri bilgi portallar olu turmak iccedilin bilgi youmlnetimi hizmeti sunar YS buumlnyesinde
bar nd rd
yaz l m moduumllleri sayesinde herhangi bir kullan c n n web sitesi uumlzerindeki
i lemleri yapabilmesi iccedilin grafiksel kullan c arayuumlzuuml sunar
YSnin temeli iccedileri in olu turulmas ndan son hali olan yay nlanma evresine kadar tuumlm
evrelerde iccedileri i youmlnetme esas na dayan r Ayr ca YS nin iccedileri i E-ticaret ve Muuml teri li kileri
Youmlnetim Sistemleri (MIYS) (ing CRM - Customer Relationship Management System) ile de
payla labilir YS sayesinde iccedilerik yay n
teknik bilgisi olmayan kullan c lar taraf ndan bile
yap labilir Kullan c lar na sade basit ama guumlccedilluuml web taray c s destekli bir uygulama arayuumlzuuml
sunar [32]
14
218 Etiketleme (Folksonomi)
Web 20 sitelerinde goumlze ccedilarpan etiket bulutlar ile kullan c lara ilgilendikleri konulara
ili kin kolay ve h zl ba lant lar sa lanmaktad r Site iccedileri iyle ilgili konular ccedile itli etiketler ad
alt nda s n fland r l r Her etiket iccedilinde bar nd rd makale yaz ba l k ile farkl boyutlarda
olabilmektedir Yani etiketin yaz boyutu ne kadar buumlyuumlkse iccedilinde bar nd rd iccedilerik o kadar
fazlad r ekil 211 de bir etiket bulutu goumlruumllmektedir
ekil 211 Oumlrnek etiket bulutu
22 Web 20 da Site Tasar m nda Dikkat Ccedileken Oumlzellikler
Yukar daki popuumller uygulamalar olu turulurken dikkat ccedileken ortak oumlzellikler bu ba l k
alt nda incelenecektir Genel olarak Web sitelerindeki de i im ve geli im tasar m ve arayuumlz
accedil s ndan de erlendirilecektir
221 Logolar
Logolara daha parlak bir goumlruumlntuuml verilirken yans ma efekti bolca kullan lmaktad r
Yans ma efekti dinamik olmayan tuumlm objelere kullan larak siteye derinlik hareket ve modern
bir goumlruumlnuuml kazand r l r Kullan c lar n dikkatini ccedilekmek iccedilin ekil 212 de goumlruumllduuml uuml gibi
logolara rozet eklinde yenilik bildiren kelimeler eklenebilmektedir [33] Bu yenilik bildiren
kelimelerden Beta ifadesiyle s k s k kar la l r Bunun nedeni Web 20 ak m na goumlre
kullan c lar birer yard mc -geli tiriciler olarak benimsenir Sonuccedil olarak ortaya ccedil kan site suumlrekli
geli mekte ve de i mektedir Logolara yerle en Beta bu geli imin bir simgesi haline gelmi tir
[34]
15
ekil 212 Yans mal logo oumlrne i [34]
222 Butonlar
Butonlarda ise klasik butonlar yerine resim olarak haz rlanan butonlarda oumlzellikle cam
efekti ve renk geccedili (gradient) efekti hacirckimdir Gradient efekti butonlarda logolarda ya da arka
planlardaki renk geccedili lerini daha yumu at r Bir renkten farkl bir renge keskin geccedili lerin oumlnuumlne
geccedililmi olur [33] Ccedile itli buton oumlrnekleri ekil 213 de goumlruumllmektedir
ekil 213 Web 20 da buton oumlrnekleri
223 Arka Planlar
Web 20 ile sitelerde arka planlar olu turulurken yatay eritlerden ya da duumlz renk
geccedili lerinden faydalan labilinir Her iki ekilde de hedeflenen ortak amaccedil ekil 214 te oldu u
gibi goumlzuuml yormayan tasar mlar gerccedilekle tirmektir [33]
ekil 214 Web 20 da arka plan oumlrnekleri
16
224 Ccedilerccedileveler
Site iccedilinde goumlruumlnmez iframe ler yerine ekil 215 deki gibi ccedilerccedilevelerin yuvarlak kouml eli
kutular olarak tasarlanmas
oumln plana ccedil km t r Kouml eleri keskin duumlz kare veya dikdoumlrtgen
biccedilimde kutular art k kullan lmamaktad r Yuvarlak kouml eli kutu yap m iccedilin farkl tekniklerle
olu turulabilecek programlar mevcuttur Resim css ve html teknikleri kullan lacaksa Spiffy
Corners RoundedCornr ve CSS Rounded Box Generator gibi araccedillar kullan labilirken Nifty
Corners Cube ve curvyCorners gibi araccedillar da JavaScript tekni i ile kullan labilinir [33]
ekil 215 Web 20 da ccedilerccedileve yap s na oumlrnek
225 Menuumller
Site iccedileri inden etkin bir ekilde faydalanabilmek iccedilin menuuml ve sekmeler sade kolay
anla labilir olmal d r Hem goumlrsel hem kullan l menuumller CSS kodlarla olu turulabilir [33]
ekil 216 Web 20 da menuuml oumlrne i
Yukar da bahsedilen konu Web 20 platformunda olu turulan sitelerin genel oumlzellikleri
olarak alg lanabilir Bu oumlzellikler d nda da tasar mlar olabilmektedir
17
3 AJAX
AJAX kavram n n ilk ccedil k noktas
ubat 2005 de Jesse James Garrett taraf ndan the
Adaptive Path Web sitesinde Ajax A New Approach to Web Applications ba l yla
yay nlanan makaledir [35]
ekil 31 Jesse James Garrett in makale goumlruumlntuumlsuuml [36]
Bu makalede Web uygulamalar olu turulurken tasar mlardaki buumlyuumlleyici geli meler
yenilikccedili ccedilevrimiccedili projelerle desteklenirken bunun yan nda h zl cevap verebilir daha zengin
goumlrsellere sahip masauumlstuuml uygulamalar aras ndaki bo lu a dikkat ccedilekilmi tir Bu bo lu u
dolduran Google Suggest ve Google Maps uygulamalar Adaptive Path sitesinde AJAX olarak
adland r lan Web uygulamalar na yeni yakla m n en iyi oumlrnekleri oldu u belirtilmi tir Klasik
Web uygulamalar n n ccedilal ma modeliyle AJAX l uygulamalar n ccedilal ma modeli
kar la t r lm t r AJAX di er uygulama youmlntemlerinden ay ran oumlzellikleri belirtilmi tir
AJAX yakla m na buumlyuumlk yat r mlar yapan Google n neden AJAX tercih etti i accedil klanm t r
Google Groups Google Suggest Gmail Google Maps ve ard ndan Flickr Amazon nun
A9com servisleriyle kullan c lar n oda haline geldi ine de inilmi tir [35]
AJAX n ccedilekirde i olan XMLHttpRequest (XHR) nesnesi sayesinde de iyi haz rlanm
sa lam ve kolay anla labilir-kullan labilir sitelerin olu umuna dikkat ccedilekilmi tir [35] A a da
18
ise AJAX tekni i kullanan en populer servislerden Google Suggest ve Google Maps hakk nda
k sa bilgi verilecektir
31 Google Suggest
ekil 32 Google Suggest ekran goumlruumlntuumlsuuml
Google Suggest a httpwwwgooglecomigcomplete=1amphl=en
adresine girildi inde
ekil 32 de goumlruumlnen ana sayfaya ula lmaktad r Google Suggest servisinin oumlzelli i arama
motorunda aranacak kelimenin harfleri girilmeye ba land andan itibaren filtreleme yaparak
text alan n n alt na accedil lan boumllmede oumlneriler sunulmaktad r Sadece oumlneri sunmakla da kalmay p
oumlnerileri popuumllarite s ras na goumlre s ralar Kelime tamamlama oumlzelli i sayesinde aranan kelime
tam yaz lmadan gelen oumlnerilerden biri t klanarak istenen sonuca ula labilinir Ayr ca oumlnerilerin
yan nda o kelimeye ait kaccedil sonuccedil oldu u da belirtilir ve bu i lem sadece 1-2 sn iccedilinde
gerccedilekle ir
32 Google Maps
ekil 33 Google Maps ekran goumlruumlntuumlsuuml
19
Google Maps sitesine httpmapsgooglecom
adresinden ula labilinir Google n
etkile imli harita servisi ile arama motorunda goumlruumlntuumllenmek istenen konum yaz larak
Haritalarda Ara butonu ile o konuma odaklan l r Bir yerden bir yere gitmek iccedilin Yol
Tariflerini Al butonu kullan l r Konumun iste e goumlre uydu arazi ve sokak haritas
goumlruumlnuumlmlerine ula labilinir Daha fazla seccedilene i ile resim video ve wikipedia katmanlar da
goumlruumlntuumlye eklenir Hatta yurtd ndaki ba lant larda yoldaki trafik ak n n h z hakk nda bile
bilgi katman mevcuttur
Di er harita web uygulamalar ndan farkl olarak Google Maps te harita uumlzerinde ccedile itli
youmlnlere ula mak iccedilin suumlrekle b rak youmlntemi kullan l r Harita bir imaj serisi halinde ayr larak
boumlluumlnuumlr Biti ik imajlar n birlikte goumlruumlntuumlsuumlnuumln olu turulabilmesi iccedilin bu serilerden faydalan l r
Goumlruumlntuumllenen haritada kullan lan imaj say s s n rl d r Bu da her seferinde yeni imajlar n
olu turulmas gerekti ini goumlsterir Kullan c n n harita uumlzerindeki h zl hareketleri haf za
problemlerine yol accedilabilir Bunun yerine ayn imajlar haritan n farkl segmentlerinde tekrar
tekrar goumlruumlntuumllenir [37]
stemci-sunucu ileti imi gizli bir IFRAME uumlzerinden yap l r Bir arama yap ld nda
veya yeni bir yol soruldu unda bu bilgiler goumlnderilir ve IFRAME iccedilinde doumlnduumlruumlluumlr Veri XML
format nda ccedilevrilir ve bir Javascript fonksiyonunda (AJAX Motorunda) kullan lmak iccedilin
aktar l r Bu XML verisi sonra farkl ccedile itli ekillerde kullan l r Bazen hatas z harita imajlar n n
ccedila r lmas nda bazen de XML dokuumlmanlar n n XSLT (Extensible Stylesheet Language
Transformations Geni letilebilir Biccedilimlendirme Dili Doumlnuuml uumlmleri) sayesinde HTML kodlar na
doumlnuuml tuumlruumllerek ana pencerede goumlruumlntuumllenmesinde kullan l r [37]
Bunlar n d ndaki daha birccedilok accedil k kaynak projeler ve ticari uumlruumlnler bu yeni Web
uygulama modelinin avantajlar ndan faydalanarak geli tirilmeye ba lanm t r [37]
33 Neden AJAX
AJAX terimi oldukccedila guumlccedilluuml bir kelimedir Guumlcuumlnuuml daha zengin geni enduumlstri trendlerinin
olu umunda kullan labilmesinden ve oumlzguumlr Web uygulamalar n n kurulumunda odak noktas
olmas ndan al r Ayr ca programc lar yabanc olduklar yeni programlama dilleri ouml renmelerine
gerek kalmadan geli tirdikleri Web uygulamalar na istedikleri etkiyi katabilmektedirler Bunu
yaparken de sunucu tarafl teknolojileri kullan rken var olan yat r mlar n n d nda ba ka
masraflar olmaz AJAX guumlccedilluuml bir teknik olmas n n yan s ra di er teknolojilerle birlikte
kullan ld nda daha etkili sonuccedillar al nabilmektedir [38] AJAX Java 2 Enterprise Edition
(JAVA EE) Net PHP Flex CGI scriptler ve di er birccedilok uygulama geli tirme ortam nda
ccedilal abilir
20
AJAX uygulamalar n n gittikccedile yayg nla mas n n bir nedeni de geleneksel uygulamalara
goumlre istekcevap modelleri aras ndaki farkt r ekil 34 te goumlsterildi i uumlzere geleneksel Web
uygulamalar nda sunucuya yap lan her istekte olu turulan cevap Web sayfas n n tuumlmuumlnuuml
etkileyerek yeniden yuumlklenmesine neden olmaktad r
ekil 34 Geleneksel sunucularda istekcevap modeli [39]
AJAX n asenkron metodolojisiyle klasik Web mimarilerindeki gibi sunucuya gidip
parametreleri i lemek yerine ekil 35 te goumlruumllduuml uuml uumlzere birccedilok sunucu iste i tuumlm sayfan n
yenilenmesine ihtiyaccedil duymadan cevaplanabilmektedir
ekil 35 AJAX n asenkron istekcevap modeli [39]
Yukar da anlat lan durum kullan c lar ekil 36 da goumlruumllen t kla-bekle doumlnguumlsuumlnden
kurtar r AJAX kullan c lara ekil 37 deki gibi kesintisiz gezinti (soumlrf) imkacircn sunar
21
ekil 36 Klasik Web uygulamalar nda t kla-bekle doumlnguumlsuuml [40]
ekil 37 T kla-T kla interaktif AJAX uygulamas
[40]
stek i lem basamaklar ekil 38 te goumlsterildi i gibi AJAX motoru sayesinde JavaScript
kod betikleri kullan larak sunucuya HTTP tabanl ba lant sa lan r Bu ba lant
XMLHttpRequest protokoluumlnuuml kullanarak mesaj transferi yap lmas n sa lar Bu sayede hem h z
artar hem de bant geni li i verimli bir ekilde kullan lm olur
ekil 38 Geleneksel Web ileti im modeli ile AJAX ileti im modeli [37]
AJAX sunucuya kullan c n n Web taray c s uumlzerinden Javascript ortam nda ikinci bir
ileti im yoludur AJAX n kullan m normal Web uygulamalar nda goumlruumllen tipik sayfa ak nda
de i ikliklere neden olur AJAX ile istekler daha s k ve daha kuumlccediluumlk cevaplar halinde HTML
olmayan veri formunda cevaplan r Daha iyi anlayabilmek iccedilin normal bir Web uygulamas n n
ileti im ak ekil 39 da goumlruumllmektedir [41]
22
ekil 39 Web uygulamas ndaki cevap ak
Bir AJAX Web uygulamas bir Web uygulamas n n normal ileti im ak n al r ve yeni
bir istek tipi ekler Bu durum sunucuya normal sayfa iste i gibi goumlruumlnuumlr ama Web taray c iccedilin
farkl formatta bir giri i vard r Kullan c taraf ndan do rudan tetiklenmeyen ve sayfan n
tamam n n yeniden yuumlklenmesini gerektirmeyen bir istektir Ccedilo u durumda bu AJAX istekleri
baz verilerin oumln yuumlklenmesi ya da bir formdaki baz alanlar n do rulama istekleri gibi kuumlccediluumlk
de i iklikler olabilir Bazen de JavaScript ile bir form goumlnderimi veya HTML sayfalar n n bir
parccedilas uumlzerindeki iccedileri i de i tirmek iccedilin kullan l r Oumlrnek bir AJAX ileti im ak ekil
310 da goumlruumllmektedir AJAX uygulamalar ndaki istek biti zamanlar ve bunun normal Web
uygulamalar yla kar la t rmas ekil 311 de goumlruumllebilir Boumlylece ikisinin aras ndaki istek
frekanslar n n fark na var labilinir [41]
ekil 310 AJAX uygulamalar ndaki istek ak
23
ekil 311 Normal Web ile AJAX uygulamalar n n kar la t rmas
AJAX Web uygulamalar yla frekanstaki bu de i im hostlar iccedilin buumlyuumlk etki yapabilir
Boumlylece sunucular ayn kullan c say s yla yuumlksek h zlarda veri al -veri ini yapabilecek duruma
gelir Bu oumlzellikle daha fazla i lem gerektiren normal sayfa yuumlklemelerinde oldukccedila zor bir
i lemdi [41]
34 AJAX Metodolojisi
World Wide Web istemci-sunucu a mimarisine uygun ccedilal r [42] A aktiviteleri iki
tiptir Bunlardan birincisi kullan c taraf ndan tetiklenen HyperText Transfer Protocol (HTTP)
istekler (URL yazarak ya da bir link t klanarak olu turulur) di eri ise sunucu cevaplar d r
HTTP protokoluuml soru ve cevaplar serisinden olu an bir ileti im yoludur [41]
ekil 312 Geleneksel istekcevap (requestresponse) youmlntemi [39]
24
Web taray c dan bir istekte bulunuldu unda HTTP kullan larak cevap goumlnderilir Web
taray c bir istemci internet sayfas n n sunucusu ise HTTP sunucudur AJAX sunucu
cevaplar n HTTP kullanarak goumlnderir Sunucu taraf ndan geri doumlnduumlruumllen farkl tuumlrlerdeki
HTTP istek ve cevaplar n n tan nmas oumlnemlidir AJAX uygulamalar n sunucudan gelecek olan
HTTP cevaplar n iccedileri inin ne oldu u hakk nda karar verebilmesi iccedilin sunucunu
sorgulanmas nda HTTPRequest nesnesine ihtiyaccedil duyar [42]
341 HTTP Requests Nesnesi
HTTP request nesnesinin kullan m format a a daki ekildedir
ltrequest-linegt
ltheadersgt
ltblank linegt
[ltrequest-bodygt]
HTTP request nesnesinin ilk sat r genellikle iste in tipini belirten uumlccedil boumlluumlmden olu ur
Youmlntemin ad gerekli olan sunucu kayna n n yolu HTTP suumlruumlmuumlduumlr Birinci istek sat r (accedil l
sat r ) olmal d r kinci boumlluumlm sunucunun kullanabilece i ba l k sat r eklenebilen bilgilerin
goumlsterildi i boumlluumlmduumlr Son boumlluumlm olan bo sat r ise iste e ba l olarak BODY boumlluumlmuumlnden
ccedila r labilecek ek verilerin takip edilebilece i sat rd r
HTTP iccedilinde ccedile itli istek tuumlrlerinin tan mlanabilece i ccedilok say da youmlntem vard r Fakat
AJAX sadece GET ve POST youmlntemleriyle ilgilenir
3411 GET Youmlntemi
HTTP GET youmlntemi ccedila r lmak istenen URL adresi ard na eklenen anahtar-de er
ccediliftleri (key-value pair) ile ccedilal r Bir Web taray c dan talep edilen bir URL ccedila r s sunucuya
GET youmlnetemi ile bir istek goumlnderir Basitccedile sunucu kayna getirir ve taray c ya cevab
goumlnderir A a da Get youmlnetemi kullan larak F rat uumlniversitesinin Web sitesine yap lan bir ccedila r
sat r goumlsterilmektedir
GET HTTP11 ltrequest-linegt
Host wwwfiratedutr
User-Agent Mozilla50 (Windows U Windows NT 51 en-US rv176) ltheadersgt
Connection Keep-Alive
25
Oumlrnek kod parccedilas nda da goumlruumllduuml uuml uumlzere ilk sat r GET istek sat r d r Di er boumlluumlm ise
istek hakk nda bilgi goumlnderilen ba l k (header) k sm d r Bu boumlluumlme bir parametre ve her sat r
ba na bir de er ccedilifti gelebilir Host ba l iste in hedef sunucu adresini iccedilerir User-Agent
ba l eri ilebilir her iki sunucu ve istemci tarafl scriptler ve taray c lar n temel ta d r Bu
bilgi ile her istekte otomatik olarak goumlnderilir ve kullan lan taray c tan mlan r Connection
ba l ise taray c i lemleri iccedilin kullan lan tipik ba lant ayarlar nda kullan l r
3412 POST Youmlntemi
POST iste i ise sunucuya request body iccedilinde ek bilgi sa lar Genellikle ccedilevrimiccedili
formlarda doldurulmayan sat r bilgileri POST youmlntemi ile sunucuya bildirilir POST istekleri
a a daki yap dad r
POST HTTP11
Host wwwfiratedutr
User-Agent Mozilla50 (Windows U Windows NT 51 en-US rv176)
Content-Type applicationx-www-form-urlencoded
Content-Length 40
Connection Keep-Alive
Yukar daki kod parccedilas nda gri ile vurgulanan sat rlar GET youmlnteminden farkl olan
sat rlar goumlstermektedir lk sat rda kullan lan youmlntemin ad belirtilmi tir Content-Type sat r
request-body nin nas l kodland n goumlsterir Content-Length sat r nda request-body nin kaccedil
byte uzunlu unda oldu u goumlsterilir [37]
342 HTTP Request Nesnesinin Oumlzellikleri ve Youmlntemleri
Request nesnesi be tane temel fonksiyon bulundurmaktad r [43] Bunlar
Querystring URL iccedilersinde bulunan dosya ismi ile birlikte goumlnderilen bilginin veya
form iccedilerisinden GET
youmlntemi ile goumlnderilen bilgilerin al nmas nda kullan l r
Form POST
youmlntemi genellikle form iccedilerisinden bilgi al nmas iccedilin kullan l r
Servervariables Web sunucu request ile ilgili bilgilere (Http ServerVariables)
ula may sa layan bir youmlntemidir
Cookies(Ccedilerezler) Kullan c n n taray c s sunucudan gelen ccedilerezleri kabul ediyor ise
bu bilgilere ula lmas n sa lar
26
ClientCertificate Dijital bir sertifikad r Sunucu ve istemcinin birbirini tan mlamas
iccedilin kullan l r
343 HTTP Response Nesnesi
HTTP response nesnesi HTTP request nesnesine benzer ekilde goumlsterilir
ltstatus-linegt
ltheadersgt
ltblank linegt
[ltresponse-bodygt]
HTTP request nesnesinden tek fark ilk sat rda istek bilgisinin yerine iccedileri in durum
bilgisi vard r Durum sat r istek kayna
hakk nda temin edilen bir durum kodunu bildirir
A a da basit bir HTTP response kod parccedilas
goumlsterilmektedir
HTTP11 200 OK
Date Sat 31 March 2009 165959 GMT
Content-Type texthtmlcharset=ISO-8859-1
Content-Length 122
lthtmlgt
ltheadgt
lttitlegtFirat Universitesilttitlegt
ltheadgt
ltbodygt
lt-- body buraya gelir --gt
ltbodygt
lthtmlgt
Bu oumlrnekte durum sat r nda 200 eklinde bir HTTP durum kodu ve Tamam (OK)
diye bir mesaj verilmektedir Durum sat r her zaman durum kodu ve her hangi bir kar kl
oumlnlemek iccedilin k sa bir mesaj iccedilerir A a da en yayg n kullan lan durum kodlar verilmektedir
200 (OK) Sunucu ba ar l istekler iccedilin bu kodu kullan r
304 (NOT MODIFIED) Sunucu goumlnderilen istekle ilgili verilerin daha i lenmedi ini
istemciye bildirmek iccedilin bu kod kullan l r Taray c lar n oumln bellek mekanizmalar iccedilin en s k
kullan lan koddur
27
401 (UNAUTHORIZED) stemcinin kaynak eri im yetkisi yoktur
anlam nda
kullan l r Genellikle bu taray c n n sunucudan kullan c ad ve ifre gibi bilgi giri i istemesiyle
olu an hatalarda meydana gelir
403 (FORBIDDEN) Yetki elde etmek iccedilin istemci ba ar s z oldu
hata kodudur 401
hatas ndan sonra e er do ru bir kullan c ad ve ifre ile oturum accedil lmamas halinde genelde bu
hata kodu olu ur
404 (NOT FOUND) Kaynak belirtilen yerde bulunamad nda bu hata kodu uumlretilir
Kod parccedilas n n ikinci sat r nda uumlretilen cevab n tarihi ve saati Date ba l nda
sunucuya goumlnderilir Content-Type ve Content-Length ba l klar POST youmlnteminde oldu u gibi
kullan l r BODY cevab basitccedile istemci kayna (iccedilerik duumlz metin ikili veri ya da farkl
tuumlrden
bilgiler olabilir) HTML kayna n iccedilerir [42]
35 AJAX leti im Teknikleri
Web uygulamalar nda ccedilo unlukla kullan c istekleri bir form uumlzerinden yap l r ve
sunucu cevab h zl bir ekilde Java ya da Php gibi bir programlama dili ile olu turulur Normal
Web uygulama modelinde kullan c daima istek uumlretir boumlylece kullan c lar n h zl ca
t klamalar yla olu an yuumlksek h zlardaki sayfa istekleri genellikle rastgele aral klarla olu ur ve
her bir istek h z n n cevab duuml uumlktuumlr [41]
AJAX uygulamalar nda yukarda bahsedilen eksikli in oumlnuumlne geccedilebilmek iccedilin ccedile itli
ileti im teknikleri geli tirilmi tir Bu teknikler
Gizli Ccedilerccedileve (Hidden Frame) Tekni i stemci-sunucu ileti iminde kullan lan gizli
ccedilerccedileve yap s yuumlksekli i ve geni li i 0 pikselden olu an ekranda goumlruumlnmeyen bir
frameset yap s na dayan r
XMLHttp Requests (XHR) AJAX teknolojisinin temel nesnesidir A a daki ba l kta
ayr nt l bir biccedilimde incelenecektir
351 XMLHttp Requests (XHR) Nesnesi
AJAX la do rudan ilgili teknolojilerin ccedilo u asenkron ve XML tekni i ile yak ndan
ilgilidir Ccediluumlnkuuml veri kodlama yollar ve ileti im katmanlar n n tedarik edilmesi bu teknikler ve
kuumltuumlphaneler uumlzerinden hareket eder Ccedilo u durumda bu XMLHttpRequest nesnesi kullan l r
ancak IFrame lerde popuumllerdir Ccedilerezler veya ActiveX Java goumlmuumlluuml ba ka bir alternatif de
kullan labilir [41]
28
XHR Nesnesi Internet Explorer 50 (IE 5) iccedilindeki ActiveX control ile ortaya ccedil km t r
XHR Javascript ile olu turulur [44] Sayfalar n tamamen yeniden yuumlklenmeden sa lanan parccedilal
guumlncelleme oumlzelli i bu nesne sayesinde olmaktad r Arka planda ccedilal an bu sistem sayesinde
asenkron bir ileti im gerccedilekle ir Yenilenme s ras nda taray c yla ba lant kesilmeksizin yeni bir
istek yap labilir
World Wide Web Consortium (W3C) standart organizasyonu standartla amam
XMLHttpRequest nesnenin tuumlm taray c larda kullan labilen youmlntem ve oumlzelliklerinin genel bir
alt kuumlmesini olu turma ccedilal malar suumlrmektedir u anda kullan lan kural kuumlmesi W3C DOM
Level 3 yuumlkleme ve kaydetme oumlzellikleri iccedilerir kinci ccedilal ma tasla
wwww3orgTRXMLHttpRequest adresinde bulunabilir Henuumlz bir standart haline
gelememesinin nedeni taray c dan taray c ya goumlre farkl davran lar goumlstermesidir
Ccedilal ma tasla na goumlre XHR nesnesinin iki goumlrevi vard r Birincisi HTTP yolu ile
sunucuya programlanabilir ba lant kuran betiklerin ccedilal mas na izin verir kinci ifade ekli ise
normal HTTP istekcevap doumlnguumlsuumlnuumln d nda sunucuyla ileti ime izin verir
XMLHttpRequest Microsoft taray c ccedile itlerinde Mozilla Firefox Konqueror Opera
ve Safari gibi neredeyse tuumlm modern taray c lar taraf ndan desteklenmektedir [42]
3511 XMLHttpRequest Nesnesi Olu turma
Nesneler olu turulurken farkl taray c lar iccedilin farkl kurallar vard r Oumlrne in Microsoft
Internet Explorer XMLHttpRequest nesnesini bir ActiveX nesnesi olarak Safari Mozilla
Firefox ve Opera ise sadece normal bir JavaScript nesnesi olarak yorumlar
Windows un guumlncelleme sisteminin temelini olu turan ActiveX Web sayfalar ndaki
aktif nesneleri etkinle tiren oumlzel bir Microsoft teknolojisidir ActiveX i mevcut Web taray c lar
aras nda u anda sadece Microsoft Internet Explorer desteklemektedir Microsoft IE nin di er
suumlruumlmleri iccedilin MSXML geli tirerek daha aktif ve kararl bir yap olu turulmu tur IE nin farkl
suumlruumlmleri iccedilin a a daki bile enler kullan l r [45]
MicrosoftXMLHttp
MSXML2XMLHttp
MSXML2XMLHttp30
MSXML2XMLHttp40
MSXML2XMLHttp50
29
IE 60+ taray c lar iccedilin a a daki tan mlama yap l r
var nesne = new ActiveXObject(Msxml2XMLHTTP)
IE 55 suumlruumlmleri iccedilin ise a a daki tan mlama yap l r
var nesne = new ActiveXObject(MicrosoftXMLHTTP)
Mozilla Firefox Opera Safari gibi taray c lar iccedilin ise a a daki tan mlama yap l r
var nesne = new XMLHttpRequest ()
Ayn anda birden fazla internet taray c s (ie firefox opera vb) ile uyumlu Web
uygulamalar iccedilin ccedilapraz taray c deste i ifadesi kullan lmaktad r Ccedilapraz taray c deste i bir
arayuumlz kodlamas nda kodlay c lar n en ccedilok zaman harcad konudur Guumlnuumlmuumlzde ccedilapraz
taray c deste i bir zorunluluk haline gelmi tir [46] AJAX uygulamalar n n sorunsuz tuumlm
taray c larla uyumlu bir ekilde ccedilal abilmesi iccedilin JavaScript iccedilerisinde try-catch bloklar
yazarak taray c ya goumlre yeni bir nesne olu turulur
function NesneOlustur()
var nesne
try
nesne = new ActiveXObject(Msxml2XMLHTTP) IE 60+ taray c lar iccedilin
catch(e)
try
nesne = new ActiveXObject(MicrosoftXMLHTTP) IE 55 taray c lar iccedilin
catch(e)
try
nesne = new XMLHttpRequest () Firefox Opera 80+ ve Safari taray c lar iccedilin
30
catch(e)
alert( Maalesef taray c n z AJAX desteklemiyor)
return null
return nesne
Yukar da tan mlanan fonksiyon sayesinde dinamik ve ccedilapraz taray c deste ine sahip bir
XHR nesnesi olu turulmu tur
3512 XHR Nesnesinin Oumlzellik ve Youmlntemleri
XMLHttpRequest nesnesine eklenebilen oumlzellikler Tablo 31 de goumlsterilmektedir [42]
Tablo 31 Standart XHR nesnesinin oumlzellikleri
Oumlzellikler Tan mlar
onreadystatechange
Nesnenin readyState oumlzelli i de i ti inde hangi olay tutucunun (event
handler) ccedila r laca n belirler
readyState ste in durumunu raporlayan tamsay de eridir
0 = uninitialized ( stek haz rlanmad Henuumlz open youmlntemi kullan lmad )
1 = loading ( stek haz rland goumlnderiliyor)
2 = loaded ( stek goumlnderildi)
3 = interactive ( stek de erlendiriliyor ve sonuccedil bekleniyor)
4 = completed ( stek tamamland ve sonuccedil geldi)
responseText Form iccedilindeki metin dizesi sunucu taraf ndan veriye doumlnuuml tuumlruumlluumlr
responseXML Sunucu taraf ndan bir belge nesnesi gibi ifade edilen veri geri doumlnduumlruumlluumlr
Status Sunucu taraf ndan geri doumlnduumlruumllen HTTP durum kodudur Oumlrne in 404
kodu Not Found yani istenilen sayfa bulunamad anlam na gelir 200 ise
OK de eri goumlnderir ve i lemin tamamland n belirtir
31
statusText Status oumlzelli inin metin kar l n verir
XMLHttpRequest nesnesinin fonksiyonunu artt ran ek youmlntemler Tablo 32 de
goumlsterilmektedir Bu youmlntemler sayesinde sunucuyla asenkron ileti im kurulur
Tablo 32 Standart XHR nesnesinin fonksiyonlar
[42]
Youmlntemler Tan mlar
abort() Geccedilerli iste i iptal eder
getAllResponseHeaders()
Gelen cevab n ba l k bilgilerini string olarak getirir
getresponseHeader(x) x gibi bir parametre olarak verilen ba l k bilgisini getirir
setRequestHeader(xy) stekle goumlnderilen ba l k bilgisine istenilen etiketi ya da de eri atar
Tablodaki youmlntemler d nda open ve send youmlntemleri de s kccedila kullan lmaktad r
Open youmlnteminin parametreleri a a da goumlsterilmektedir
nesneopen( POST | GET URL asynch username password)
1 Parametre Web sayfas na yap lacak iste in hangi youmlntemle yap laca n belirtir
2 Parametre stek yap lacak Web sayfas n n URL adresi E er GET youmlntemi
kullan l yorsa querystring lerin de erleri URL e birle tirilerek belirtilmelidir
3 Parametre True de eriyle yap lacak iste in e zamans z olaca false de eri ile
e zamanl
olaca belirlenir E er false de eri verilirse i lem bitene kadar taray c di er
kullan c isteklerine cevap veremeyecektir True yap l rsa istek ayr bir i lem olarak ele
al nacakt r
4 ve 5 Parametre Opsiyonel parametreler olup e er istek yap lan Web sayfas ifre ve
kullan c ad istiyorsa bu ekilde goumlnderilebilir [47]
Open ile haz rlanan istek sunucuya goumlnderilir E er open ile accedil lan istek post metodunu
kullan yorsa send metodu parametre olarak goumlnderilecek veriyi ta yabilir
Send metodu parametresiz veya null parametresi ile de kullan labilinir Send metodunda
cevab n gelip gelmedi inin anla labilmesi iccedilin yani e zamanl haberle menin hangi safhada
oldu unun belirlenebilmesi iccedilin Tablo 31 deki oumlzellikler eklenir Send metodunun kullan m
ekli a a da verilmi tir [42 47 48 49]
nesnesend() veya nesnesend(null)
32
3513 XHR Ccedilal ma Mant
ekil 313 bir AJAX uygulamas nda standart etkile imli bir paradigmay
goumlsterir [49]
lem ad mlar a a da s ralanmaktad r
ekil 313 Standart AJAX etkile imi [49]
1 stemci tarafl bir olay AJAX olay (event) tetikler stemcinin a a daki gibi her
hangi bir hareketi onchange olay n ba lat r
ltinput type=text d=eposta name=eposta onblur=validateEposta()gt
2 Oumlrnek bir XHR nesnesi olu turmak iccedilin open() youmlntemi kullan l r ve ccedila r lar iccedilin
ayarlan r URL ayarlar iste e goumlre kullan lacak HTTP youmlntemlerinden GET ya da
POST a goumlre belirlenir A a daki kod oumlrne inde oldu u gibi istek send() youmlntemi
ile bir ccedila r y tetikler
var xmlHttp
function validateEposta()
var eposta= documentgetElementById(eposta)
var url = validateeposta= + escape(epostavalue)
if (windowActiveXObject)
xmlHttp = new ActiveXObject(MicrosoftXMLHTTP)
else if (windowXMLHttpRequest)
xmlHttp = new XMLHttpRequest()
xmlHttpopen(GET url)
xmlHttponreadystatechange = gericagir
33
xmlHttpsend(null)
3 Sunucuya bir istek yap l r Bu bir servlet CGI script PHP ya da ASPNET ile
yaz lm herhangi bir sunucu tarafl (server-side) script olabilir
4 Sunucu herhangi bir veri ambar na eri ebilir
5 stek taray c ya geri doumlnduumlruumlluumlr XHR nesnesi Content-Type ayar textxml dir
XHR nesnesi sadece texthtml tipindeki sonuccedillar i leyebilir Daha karma k
oumlrneklerde cevap JavaScript DOM manipuumllasyon ya da ba ka benzer teknolojiler
iccedilerebilir
responsesetHeader(Cache-Control no-cache)
responsesetHeader(Pragma no-cache)
Taray c lokal sonuccedillar oumln belle inde depolamaz Bunun iccedilin yukar daki kod sat rlar na
ihtiyaccedil duyar
6 Bu oumlrnekte i lemler geri doumlnduumlruumllduuml uumlnde gericagir() ad ndaki XHR fonksiyonu
ayarlan r Bu fonksiyon sunucudan goumlnderilen durum kodlar na bakar ve XHR
nesnesinin readyState oumlzelli ini kontrol eder gericagir() fonksiyonu beklendi i gibi
i lenmi se a a daki gibi bir kod parccedilas goumlruumlluumlr
function gericagir()
if (xmlHttpreadyState == 4)
if (xmlHttpstatus == 200)
stek Ba ar l
Yukar daki anlat mla XHR nesnesinin ccedilal ma mant na de inilmi tir Genellikle
kullan lan standart ccedila r lar oumlrneklenmi tir Bu ccedila r lar yap l rken bir kuumltuumlphaneden yap lan bir
uygulamadan da faydalan labilir Yeni bir ccedilal ma alan olmas na ra men accedil k kaynak
topluluklar nda hat r say l r etkinlikler yap lmaktad r [49]
Uygulamalar olu turulurken genellikle ccedile itli frameworkler ve toolkitlerden faydalan l r
Bunlardan baz lar sadece istemci tarafl ccedilal r baz lar ise sunucu uumlzerinde ccedilal maya ihtiyaccedil
duyar
34
Bu frameworkler suumlrekli de i en ve geli en bir ortam oldu u iccedilin yeni kuumltuumlphaneler ve
suumlruumlmleri takip edilmelidir En yayg n kullan lan kuumltuumlphanelerin ba nda Prototype
scriptaculous Dojo Toolkit Direct Web Remoting (DWR) Taconite ve Rico gelmektedir [49]
36 AJAX Olu turan Bile enler
Asynchronous JavaScript and XML kelimelerinin ba harflerinden olu an AJAX
kavram kullan l zengin Web uygulamalar geli tirebilmek iccedilin pratik bir araccedilt r [50]
AJAX n A parccedilas veri ileti im tekni ini JA parccedilas ileti im youmlntemini X
parccedilas tekni in veri kodlama k sm n olu turur AJAX tam manas yla anlayabilmek iccedilin onu
olu turan bile enlerin her birini de anlamak gerekmektedir [41]
361 E zamanl Olmayan leti im
AJAX tekni inin ccedilekirde ini olu turan XMLHttpRequest nesnesi hem e zamanl hem
de e zamans z olarak ccedilal abilen bir yap uumlzerine kurulmu tur
Ccedilo u AJAX uygulamas XHR nesnesini asenkron olarak kullan r Asenkron istek
taray c ya goumlnderilir ama sunucudan bir cevap gelmesini beklemektense sonraki istek kodlar
i letilmeye devam eder lenen cevap goumlnderildi inde XHR nesnesinin onreadystatechange
oumlzelli i bir fonksiyona ba lan r Bu fonksiyonun i letilmesinden sonra readystate koduyla
iste in durumu test edilir readystate oumlzelli i 4 de erini ald nda sunucuya istek tamamland
ve sonuccedil geldi mesaj gider [51]
A a daki kod parccedilas nda asenkron bir ileti im goumlsterilmektedir [51]
get recipe using Ajax
function getRecipe(evnt)
if (xmlhttp) xmlhttp = aaGetXmlHttpRequest( )
if (xmlhttp) return
var drink = encodeURIComponent(documentgetElementById(drink)value)
var qry = drink= + drink
var url = recipephp + qry
xmlhttpopen(GET url true)
xmlhttponreadystatechange = printRecipe
xmlhttpsend(null)
if (evnt ampamp evntpreventDefault( ))
evntpreventDefault( )
35
return false
E zamans z ileti imde kullan c ayn zaman diliminde birden fazla i lem yapabilir
Oumlrne in Web sayfas nda bir form dolduruldu unda formdaki bilgiler AJAX ile goumlnderilirken
i lemin bitmesini beklemek gerekmemektedir O zaman diliminde Web sayfas n n ba ka bir
yerinde bulunan anket cevapland r labilir Ccediluumlnkuuml e zamanl
ccedilal l rken bloke edilen JavaScript
motoru e zamans z ccedilal rken serbesttir ve ba ka isteklerin goumlnderilmesine muumlsaade eder Yani
ayn zaman dilimi iccedilerisinde birden fazla iste i kabul edebilir [52]
ekil 314 E zamanl olmayan ileti im modeli
ekil 314 te goumlruumllduuml uuml gibi ayn zaman dilimi iccedilerisinde 4 adet istek yap lm t r
Kullan c bu isteklerin tamamlanmas n beklemek zorunda de ildir Bu sebeple istemci ve
sunucu aras ndaki t kla-bekle-t kla-bekle etkile imi ortadan kalkmaktad r
362 E zamanl leti im
Senkron isteklerde taray c cevap iccedilin beklerken kilitlenir
var state = documentforms[0]elements[0]value
var url = ajaxphpstate= + state
xmlhttpopen(GET url false)
xmlhttpsend(null)
alert(xmlhttpgetAllResponseHeaders( ))
Yukar daki kod dizesiyle bir form alan na Web servisi uumlzerindeki HTTP GET istek
yap s kullan larak eri ilir Uumlccediluumlncuuml sat rdaki open youmlnteminin uumlccediluumlncuuml parametresinin false
olmas n n anlam iste in e zamanl (senkron) oldu unu goumlsterir Herhangi bir parametre
almadan null de erli istek goumlnderilir stek goumlnderildikten hemen sonra uyar mesaj kutusu
36
accedil larak cevap ba l yaz l r [51] Kullan lan Web servisi h zl ysa cevap hemen gelir E er
servis yava sa istek bitinceye kadar di er sayfa aktiviteleri gerccedilekle emez [51]
E zamanl
ileti imde ayn zaman diliminde yaln zca bir i lem yap labilinir Web
taray c m zdan uzaktaki Web sunucusuna goumlnderilen istek Web sunucusunda i lenir ve tekrar
geldi i yoldan Web taray c s na geri doumlner Bu i lem belli bir zaman al r E zamanl
ccedilal rken
bu zaman diliminde ba ka bir istek goumlnderilemez [52]
E zamanl
ccedilal ma oumlzellikle Web sunucusu ayn bilgisayarda ise veya yak n olan bir
LAN uumlzerindeyse sa l kl ccedilal abilir Fakat Web sunucusu a r bir yuumlk alt ndaysa veya Web
taray c s Web sunucusuyla yava bir ba lant uumlzerinden etkile ime geccediltiyse koumltuuml bir
performans verecektir Ccediluumlnkuuml Web taray c s iccedilindeki JavaScript motoru goumlnderdi i istek
tamamlan ncaya kadar bloke edilir ve Web taray c s donmu bir ekilde iste in
tamamlanmas n bekler Bu zaman diliminde kullan c goumlnderilen iste i iptal de edemez Bu
yuumlzden Web sayfas ndaki ba ka bir noktaya t klayamaz veya ba ka bir sekmeye geccedili yapamaz
[52]
ekil 315 E zamanl
ileti im modeli
ekil 315 de goumlruumllduuml uuml gibi Web taray c s ndan goumlnderilen 1 nolu istek Web
sunucusuna iletilmektedir Al nan istek i lendikten sonra Web taray c s na geri
goumlnderilmektedir Bu zaman diliminde ba ka bir istek yap lamaz
363 Javascript
1995 y l nda Brendan Eich ad ndaki yaz l m geli tiricisi taraf ndan Netscape Navigator
20 ile birlikte geli tirilen JavaScript dili istemci tarafl
(client-side) bir betik (script) dilidir
Web sayfalar nda dinamik iccedilerik sa lamak ya da kullan c yla ileti im kurmak iccedilin kullan l r [53]
Bu ileti imin sa lanabilmesi iccedilin ortak kurallar duumlnyada uluslararas standart kurumu olan
Avrupa Bilgisayar Uumlreticileri Birli i (European Computer Manufacturers Association-ECMA)
taraf ndan belirlenir Temel kurallar ECMA Script (ECMA-262) ad verilen bir standartta
toplanm t r [54]
37
Javascript in soumlz dizim kurallar C diline benzerlik goumlsterir Derleme i lemi yap lmayan
ayr t rmal (parsed language) bir dildir Nesne youmlnelimli programlama (Object Oriented
Programming - OOP) yetene ine sahiptir [55]
AJAX n JavaScript le olan ili kisi k saca u ekilde oumlzetlenir Herkes taraf ndan
bilinen goumlnder (submit)-cevap(response) doumlnguumlsuumlnuumln oumlnuumlne geccedilerek kullan c lar n Web
sunucusuyla direk etkile im iccedilinde bulunmas n sa lar [56] AJAX goumlnder duuml mesi olmaks z n
sunucu etkile imini sa lar Veriye ihtiyaccedil duyuldu unda Web sayfas iccedilindeki Javascript kodlar
ile bir istek yapar Sunucu cevab tam bir HTML sayfas olarak de il veri olarak geri doumlnduumlruumlr
ve istemciyi cevaplar Cevab n bu ekilde olu turulmas Web uygulamalar n n masauumlstuuml
uygulamalar gibi ccedilal abilmesini sa lar [56]
Sonuccedil olarak Javascript HTML kodlar aras na goumlmuumllebilen kod parccedilalar d r Bunun
yan s ra tek ba na js uzant l JavaScript kodlar da yaz labilir Bu kodlar Internet Explorer
Firefox Opera vb tuumlm taray c lar taraf ndan desteklendi i iccedilin sorunsuz ccedilal r [57]
3631 JavaScript Ccedilal ma Prensibi
JavaScript kodlar
iccedilin herhangi bir metin editoumlruuml kullan labilir ya da Notepad gibi bir
duumlz yaz program yla da kodlar olu turulabilir Taray c lar n yorumlayabilmesi iccedilin ltSCRIPTgt
etiketiyle ba layan ltSCRIPTgt etiket ile biten JavaScript kodlar HTML belgelerinin ccedile itli
yerlerine eklenebilir Eklenen kodlar kullan c lar n HTML belgesindeki bir ba lant ya t klamas
veya klavyede bir tu a basmas yla tetiklenir ya da HTML sayfas kullan c
Browser nda
goumlruumlntuumllendi i anda otomatik olarak ccedilal maya ba lar Otomatik ccedilal an Javascript kodu ise iki
ayr youmlntemle ccedilal t r labilir lk youmlntem HTML kodlar i letilmeden oumlnce (yani Web sayfas
kullan c n n Web Browser nda goumlruumlntuumllenmeden oumlnce) ccedilal mas ikinci youmlntem sayfa
goumlruumlntuumllendikten sonra script kodlar n n ccedilal mas d r [58] Bu youmlntemler a a da s ras yla
accedil klanmaktad r
HEAD boumlluumlmuumlnde
BODY boumlluumlmuumlnde
HEAD Boumlluumlmuumlndeki Scriptler HEAD etiketleri iccediline ltSCRIPTgt ltSCRIPTgt etiketi
kullanarak istenilen JavaScript kodlar
eklenebilir Bu kodlar HTML sayfas n n BODY boumlluumlmuuml
yuumlklenmeden i lenir
38
ltHTMLgt
ltHEADgt
ltSCRIPT LANGUAGE=Javascript12gt
alert(Merhaba Duumlnya) ltSCRIPTgt
ltHEADgt
ltBODYgt
ltBgtDeneme Sayfas na Ho geldinizltBgtltbrgt
ltBODYgt
ltHTMLgt
Yukar daki oumlrnekte kaynak kodlar yukar dan a a ya do ru i letilirken sayfada ilk
goumlruumlntuumllenecek olan alert( ) komutuyla ekrana yaz lan Merhaba Duumlnya
ileti im kutusu
olacakt r Gelen ileti im kutusunda Tamam butonuna bas ld nda body boumlluumlmuumlndeki
kodlar n i lenmesine s ra gelecektir Ekrana Deneme Sayfas na Ho geldiniz mesaj
yazacakt r
BODY Boumlluumlmuumlndeki Scriptler HTML belgesinin BODY boumlluumlmuumlnde JavaScript
kullanmak iccedilin iki yol vard r
Do rudan ccedilal acak kodlar ve kullan c taraf ndan ccedilal acak kodlar
Do rudan ccedilal acak JavaScript kodlar
ltBODYgtltBODYgt etiketleri aras na
ltSCRIPTgt etiketi kullan larak HTML belgesinin istenilen yerine yaz l r Bu cuumlmleler taray c
taraf ndan okundu u anda yerine getirilir
ltHTMLgt
ltHEADgt
kinci Ornek
ltHEADgt
ltBODYgt
ltSCRIPT LANGUAGE=Javascript12gt
alert(Javascript duumlnyas na ho geldiniz)
ltSCRIPTgt
ltBODYgt
ltHTMLgt
Yukar daki oumlrnekte ise kod i leme s ras na uygun olarak i letilerek oumlnce HEAD
etiketleri yorumlanarak ekrana kinci Ornek yaz p hemen ard ndan ileti im kutusu ccedil karak
39
Javascript duumlnyas na ho geldiniz yazacakt r Kullan lan di er bir youmlntem ise kullan c
taraf ndan bir olay n ba lat lmas yla bir JavaScript kodunun ccedilal t r lmas d r
ltHTMLgt
ltHEADgt
ltSCRIPT LANGUAGE=Javascript12gt
genel de i ken tan mlar
var n = Merhaba Duumlnya
bu fonksiyon uyar kutusu accedilar
function merhaba()
alert(n)
ltSCRIPTgt
ltHEADgt
ltBODYgt
ltbrgtltbrgtltbrgtltbrgtltBgtButona T klad n zda Merhaba Duumlnya yazan ileti im kutusu ekrana
gelecektirltBgtltbrgtltbrgt
ltFORMgt
ltINPUT TYPE=SUBMIT NAME=dugme1 VALUE=TIKLAYINIZ
onclick=merhaba()gt
ltFORMgt
ltBODYgt
ltHTMLgt
Yukar daki oumlrnekte ise HEAD etiketleri aras nda de i ken tan mlama ve fonksiyon
olu turma i lemleri yap lm t r BODY komutu i letildikten sonra FORM ouml esiyle olu turulan
duuml me kullan c taraf ndan t kland nda script kodu tetiklenerek fonksiyon ccedila r l r ve mesaj
kutusu ekrana gelir
Ayr ca ltBODYgt iccedilinde URL kullan larak da a a daki oumlrnek kodla goumlsterildi i gibi
JavaScript kodu ccedila r labilmek muumlmkuumlnduumlr
ltA HREF=javascript alert(Ccedil kmak istedi inizden emin misiniz)gtSiteden Ccedil kltAgt
40
3632 Javascript Dilinin Oumlzellikleri
JavaScript dilinin temel soumlz dizim yap s na a a da incelenecektir
36321 De i kenler
Bir de eri iccedileren bellek adlar n ifade ederler De i kenler verileri saklar ve onlara
eri imi sa larlar De i kenlerin bir ad olur bir de de eri olur Program boyunca de i kenin ad
de i mez fakat iccedileri i de i ebilir
Bir JavaScript de i keni belli kurallara uymak zorundad r
a) De i kenler harfle ya da alt ccedilizgi (_) ile ba lamal d r Rakam veya di er
i aretler birinci karakter olarak kullan lamaz fakat de i ken ad n n di er
karakterlerinde kullan labilir
b) Javascript buumlyuumlk kuumlccediluumlk harfe kar duyarl d r (case-sensitive oumlzellli i) Ayn
kelimenin buumlyuumlk harfle yaz lmas ile kuumlccediluumlk harfle yaz lmas farkl isimler
olarak alg lanmas na neden olur
c) De i ken isimleri iccedilinde bo luk olmamal d r
d) Kullan c lar n bilgisayar nda kullan lan dil setinin ayarlar her bir kullan c iccedilin
farkl l k goumlsterebilece i iccedilin ngilizce alfabede bulunmayan Tuumlrkccedile ve di er
dillerdeki high-ASCII karakterleri ( ile uuml Uuml ouml Ouml ccedil ve Ccedil)
kullanmamakta fayda vard r [58]
36322 Kapsam
Bir de i kene bir de er atand nda bu de erin geccedilerli olaca suumlreyi belirlemek iccedilin
kapsam (scope) kavram kullan l r Bir de i kenin kapsam
global ya da lokal olabilir Bir
global de i kene sayfa uumlzerinde herhangi bir JavaScript ten eri ilebilir Lokal de i ken ise
de erin atand yordam iccedilinde geccedilerlidir
A a daki oumlrnekte bir de i kenin kendisine atama yaparak de er verilir
adi= Zeynep
Bir fonksiyon yaz l rken yerel bir de i ken olu turmak iccedilin a a daki oumlrnekte oldu u
gibi var kelimesiyle tan mlama yap l r
41
function toplama()
var sayi=1
toplam=0
deyimler
Yukar daki oumlrnekte sayi adl de i ken toplama fonksiyonu iccedilin yerel toplam de i keni
ise tuumlm sayfa iccedilin genel (global) de i ken olacakt r De i kenlere atanan de erler Tablo
33 deki de i ken tuumlrlerinden herhangi biri olabilir Verinin tuumlruumlne ba l olarak de er uumlzerinde
belirli i lemler yap labilir ya da yap lamaz Oumlrne in iki string de er uumlzerinde aritmetik i lem
yap lamaz
Tablo 33 De i ken tuumlrleri
De i ken Tuumlrleri
Numbers Tam ve ondal kl
say lar iccedilerir Pozitif 0 ya da negatif olabilir
Booleans Mant ksal veri tuumlruumlduumlr True (Do ru) ya da False (Yanl ) de erini al r Sorgulama
sonunda geriye True iccedilin 1 False iccedilin 0 de erini doumlnduumlruumlr
Strings Karakter bilgi iccedileren bir de i kendir T rnak iccedilinde yaz lan ifadeler de i kene
atan r
Objects Taray c ya ait nesnelerdir nesne= new Object() eklinde kodlamada kullan labilir
Null Oumlzel bir de i kendir ccedili bo ya da de ersiz olarak ifade edilir
Undefined
Bir de i ken yarat ld ktan sonra iccedilerdi i tan ms z de eri simgeler
36323 leccediller (Operators)
leccediller iki ya da daha fazla de er uumlzerinde i lem yap lmas n sa lar De erler ya da
de i kenler aras nda toplama ccedil karma mod gibi i lemler yap labilir
Tablo 34 leccediller ve goumlrevleri
leccediller ve Goumlrevleri
+ Toplama
- Ccedil karma
Ccedilarpma
Boumllme
42
MOD Boumllmede kalan verir (10 3 i lemi 1 de erini verir )
++
Tek art r m De er 1 art r l r
-- Tekli azaltma
- Negatifle tirme lenenin negatif de erini doumlnduumlruumlr
36324 kili leccediller
kili i leccediller birden ccedilok kar la t rma i lemini tek bir ko ul ifadesi olarak birle tirirler
Oumlrne in
sayi =1 AND dongu gt 1000 ise gibi
Tablo 35 kili i leccediller
kili i leccediller
ampamp
Mant ksal Ve And ki ifade de do ruysa True de erini doumlnduumlruumlr
|| Mant ksal Veya Or fadelerden birisi do ruysa True de erini doumlnduumlruumlr
Mant ksal De il Not Negatifle tirme i lemi do ruysa True de erini doumlnduumlruumlr
36325 Atama Deyimi
Atama deyimi (=) bir de i kene sa dan bir de erin atanmas n sa lar De i kenlere
tuumlrlerine ve tan mlamalar na uygun olan herhangi bir de er atanabilir
Oumlrnek sayi=100
Oumlrnek toplam=(fiyat+kdv)
Sa daki de eri soldaki de i kene atayan += -= = = ifadeleri de kullan labilir
Oumlrne in toplam+=fiyat (di er bir de i kenden gelen fiyat de erini toplam de erine
ekler ve sonucu toplam de i kenine atar)
36326 fadeler
De i kenlerin i leccedillerin ve deyimlerin bir araya gelerek olu turduklar yap lar
ifade
eder
Oumlrne in toplam = sayi 1 sayi2 formuumlluuml bir ifadedir
43
36327 Deyimler
Deyimler belli bir komut ya da soumlz dizimi bile enlerine verilen add r Oumlrne in bir komut
ya da bir IF yap s deyim olabilir
Oumlrnek if (basari_notugt50) deyimler else deyimler
36328 Nesneler
Kendi de erleri oumlzellikleri ve i lemleri olan bile enlere nesne (object) denir JavaScript
dilinde ccedilok say da yerle ik nesne vard r
JavaScript buumltuumln Web sayfas n ve taray c y nesneler toplulu u olarak goumlruumlr Bu
sisteme DOM (Document Object Model) denir [59]
JavaScript kullanarak dinamik ve etkile imli goumlruumlnuumlmler elde edilir DOM a JavaScript
ve JScript gibi ECMAScript olan kullan c taraf ndaki bir scripting dili yard m yla eri ilebilinir
DOM la veri al -veri i yeni bir sayfada kullan c ekran na yans t lmaz Parccedilal guumlncelleme
olay n n buumlyuumlk k sm bu modelle gerccedilekle tirilir
Ba lang ccedilta Javascript geli tiricileri kullan c lar na daha zengin uygulama deneyimleri
ya atabilmek ve sayfalardaki etiketlerde dinamik de i imler sa lanabilmesi iccedilin ccedilaba sarf
ediyordu Bu durum sayfalar n bir nesne gibi i lenebilmesini gerekli k ld Boumlylece DOM ortaya
ccedil km t r lk oumlnceleri Javascript ve DOM s k bir ili ki iccedilindeydi sonuccedilta ise iccedilerik ayr larak
geli tirilmi tir DOM sayfalar n JavaScript veya VBScript gibi bir betik dili ile de i tirilebilir
sayfalar n tamamen nesne youmlnelimli goumlsterimidir [60]
DOM ekil 316 da goumlsterilen JavaScript iccedilindeki buumltuumln nesneleri ifade etmektedir
Hiyerar ik olarak ccedilok say da nesneyi iccedilerir NetScape ve Microsoft taray c lar iccedilin DOM
nesneleri farkl oldu u iccedilin yaz lan kodlar uyumlu de ildir [59]
44
ekil 316 Javascript nesneleri [59]
Window nesnesi taray c n n kendisidir Window nesnesi birccedilok youmlnteme oumlzelli e ve
olaya sahiptir Form nesnesi DOM nesnesinin ana nesnesidir Form uumlzerindeki alanlar bu nesne
arac l yla kullan l r [59]
Verilerin yuumlklenmesinde kullan lan XML ile uumlretilen Javascript istemci kodlar ve veri
sunucu uumlzerindeki kodlar aras ndan ayr larak goumlsterilir Bu istemcinin etkilenmeksizin sunucu
uumlzerinde de i iklik yap lmas n sa lar Benzer API iccedileren di er istemciler iccedilin bilgileri accedil a
ccedil kar r [41]
363281 DOM (Document Object Model)
Document Object Model (DOM) XML ve HTMLXHTML iccedilin World Wide Web
Consortium (W3C) taraf ndan geli tirilen bir belgenin a accedil yap s n (tree-based) temsil eden bir
standartt r DOM bir tak m nesneler iccedilin belgenin yap s n temsil etmesinin yan s ra bu
nesnelere eri im iccedilin youmlntemler de sa lar [44]
DOM bir belgenin stilini kaynak dosyas n yap s n ve iccedileri ini guumlnceller ve program
ile scriptlerin belgeye eri imine izin veren bir platformdur Ayn zamanda bir API (application
programming interface) dir [62]
Nesneleri iccedileren belgeler iccedilin standart model olarak DOM uumlccedil boumlluumlme ayr lm t r
Core DOM
XML
HTMLXML DOM - XML
45
HTML DOM
HTML
DOM da her internet sayfas bir belge ve bu belge iccedilerisinde bulunan tuumlm elemanlar ise
nesne olarak kabul edilir DOM sayfa uumlzerindeki her bir XML eleman
iccedilin nesnelerin a accedil
yap s n n resmini goumlrselle tirmenin kolay bir yoludur A a daki oumlrnek basit bir XML
belgesinin doumlrt duuml uumlmden olu an DOM u goumlstermektedir Koumlk Dokuumlman duuml uumlmuuml koumlk etiketi
iccedilin bir Element duuml uumlmuuml alt etiketler iccedilin bir Element duuml uumlmuuml ve alt etiketin sahip olaca
herhangi bir bilgi girilebilen bir metin duuml uumlmuumlduumlr [41]
ltrootTaggt
ltchildTaggtSome TextltchildTaggt
ltrootTaggt
Bir a accedil yap s n n goumlrsel bir temsili a a da goumlsterilmektedir
Dokuumlman
Element (koumlkEtiket)
Element (altEtiket)
Metin
A a daki kod kuumlmesinin [63] DOM goumlsterimi ekil 317 deki gibidir
ltTABLE border=1gt
ltTBODYgt
ltTRgt
ltTDgtOumlgr NoltTDgt
ltTDgtAd Soyad ltTDgt
ltTRgt
ltTRgt
ltTDgt900ltTDgt
ltTDgtZeynep OumlZERltTDgt
ltTRgt
ltTBODYgt
ltTABLEgt
46
ekil 317 DOM a accedil yap s
[63]
Geccedilerli her HTML ve XML belgesindeki element nitelik metin duuml uumlmuuml (text node)
hatta bo luk ve sekme karakterleri(whitespace) bile W3C DOM taraf ndan duuml uumlm (node) olarak
kabul edilir ekil 317 deki gibi belgedeki duuml uumlmlerin kullan m hiyerar isine goumlre
s ralanmas na da duuml uumlm a ac (node tree) denir Belge nesnesi yeni duuml uumlmler olu turmak bu
duuml uumlmlerin oumlzeliklerini de i tirmek ve youmlnetmek iccedilin ccedilok say da youmlnteme sahiptir
363282 DOM Elementinin S k Kullan lan Genel Oumlzellikleri ve Youmlntemleri
A a da duuml uumlmlere eri mek ve youmlnetmek iccedilin s k kullan lan JavaScript youmlntemleri
vard r [64]
getElementById()
Soumlzdizimi
documentgetElementById(herhangiBirID)
Oumlrnek kullan m
element = documentgetElementById(kimlik)
getElementById() youmlntemi id oumlzelli i belirtilen elementlerin referans n n al nmas n
sa lar Ayn id kimli ine sahip ba ka bir element olmas durumunda sadece ilk elementi verir
Di erlerine eri im sa lamaz kimlik
dokuumlman uumlzerinde elementi bulmak iccedilin kullan lacak
e siz bir oumlzelli ini ifade eder
47
getElementsByTagName()
Soumlzdizimi
documentgetElementsByTagName(herhangiBirHTMLElementi)
Oumlrnek kullan m
documentgetElementsByTagName(etiketAdi)
Dokuumlman uumlzerinde belirtilen ayn etiket ismine ait buumltuumln elementlerin bir listesini verir
documentgetElementById(herhangiBirID)documentgetElementsByTagName()
parametresiyle id niteli inin de eri herhangiBirID olan elementin duuml uumlmleri
iccedilindeki tuumlm elementler listelenir
getElementsByName()
Soumlzdizimi
documentgetElementsByName(herhangiBirIsim)
Oumlrnek Kullan m
documentgetElementsByName(baslik)
Bu youmlntem dokuumlman uumlzerinde belirtilen name oumlzelli ine sahip elementlerin bir listesini
verir Oumlrnek kullan mda name niteli inin de eri baslik olan elementleri verir
firstChild
Bu oumlzellik elementin ilk alt elementini verir
Soumlzdizimi
documentgetElementById(herhangiBirID)firstChild
lastChild
Bu oumlzellik elementin son alt eleman n verir
Soumlzdizimi
documentgetElemementById( herhangiBirID )lastChild
48
nodeValue
nodeValue oumlzelli i text comment ve CDATA duuml uumlmlerinin iccedilerdikleri de eri verir
Soumlzdizimi
m= documentgetElemementById( herhangiBirID )lastChildnodeValue
m e er varsa duuml uumlmuumln iccedilerdi i de erin string olarak de eridir document nesnesinin
ve elementlerin nodeValue de eri null doumlner
removeAttribute()
removeAttribute fonksiyonu elementin belirtilen bir oumlzelli inin silinmesini sa lar
Soumlzdizimi
elementremoveAttribute(ozellik)
ozellik silinecek oumlzelli in ad d r
nodeName
Duuml uumlm bilgilerini almak iccedilin kullan l r Geccedilerli duuml uumlmuumln ad n doumlnduumlruumlr
Geccedilerli duuml uumlm element ise elementin tipini doumlnduumlruumlr Nitelik ise nitelik ad n doumlnduumlruumlr
nodeType
Geccedilerli duuml uumlmuumln tuumlruumlnuuml say sal olarak doumlnduumlruumlr
nextSibling
Duuml uumlmler aras gezinti yap labilmesiyi sa lar Geccedilerli duuml uumlmden bir sonrakine referans verir
previousSibling
Geccedilerli duuml uumlmuumln bir oumlncekine referans verir
setAttributeNode
Bir duuml uumlme nitelik atamada kullan l r
Soumlzdizimi
elementsetAttributeNode(nitelik)
49
36329 Fonksiyonlar
Fonksiyonlar birden fazla ad mdan olu an i lemlerin kolayca tek seferde yap lmas n
sa lar Fonksiyonlar bir dizi i lemi yerine getirir ve bir sonuccedil doumlnduumlruumlr Ayr ca fonksiyonlar
parametre olarak kabul edilen birccedilok de er al rlar
Fonksiyonlar n HTML dosyas n n HEAD boumlluumlmuumlne koyulmas yani gerekli buumltuumln
fonksiyonlar alt alta HTML in HEAD boumlluumlmuumlnde yer alacak bir SCRIPT etiketi iccedilinde
olu turulmas taray c n n Javascript yorumlay c s bak m ndan h z kazanmas n sa lar Sonra
ihtiyaccedil duyuldu unda yeni bir SCRIPT etiketi koyarak bu fonksiyon goumlreve ccedila r l r [58]
function fonksiyonun_ad (arguumlman1 arguumlman2 arguumlmanN)
i lemler
deyim 1
deyim 2
deyim N
363210 Accedil klamalar
Programlar n anla l r olmas n sa layan accedil klama sat rlar JavaScriptte bu lt- ve --gt
i aretlerinin aras nda ifade edilir [58]
lt- Accedil klama sat r d r --gt
37 Basit Bir AJAX Oumlrne i
Ekran ccedil kt s ekil 318 de goumlruumllen basit bir oumlrnek uumlzerinde i leyi anlat lacakt r
ekil 318 AJAX oumlrne i
50
indexhtml dosyas accedil ld nda Metnin AJAX la getirilmesi iccedilin tiklayiniz
ba lant s na t kland nda taray c kullan lan AJAX youmlntem sayesinde tuumlm sayfa yeniden
yuumlklenmeden iccedileri i sunucu da depolanan sonuchtm dosyas ndan alarak ekrana yans t r
Yukar daki indexhtml dosyas n n kodlar a a da goumlsterilmektedir
lthtmlgt
ltheadgt
lttitlegtAJAXla oumlrne ilttitlegt
ltscript language=JavaScript type=textjavascriptgt
function getXmlHttpRequestObject()
if (windowXMLHttpRequest)
return new XMLHttpRequest() IE olmayan
else if(windowActiveXObject)
return new ActiveXObject(MicrosoftXMLHTTP) IE
else
alert(Maalesef taray c n z XmlHttpRequest nesnesini desteklememektedir AJAX
destekleyen bir taray c da tekrar deneyiniz)
var receiveReq = getXmlHttpRequestObject()
function cevap()
if (receiveReqreadyState == 4 || receiveReqreadyState == 0)
receiveReqopen(GET sonuchtml true)
receiveReqonreadystatechange = handlecevap
receiveReqsend(null)
function handlecevap()
if (receiveReqreadyState == 4)
documentgetElementById(span_result)innerHTML = receiveReqresponseText
ltscriptgt
ltheadgt
lta href=javascriptcevap()gtMetnin AJAXla getirilmesi icin tiklayinizltagtltbr gt
51
ltspan id=span_resultgtltspangt
lthtmlgt
Oumlrnekte ilk olarak tuumlm taray c larda sorunsuz ccedilal abilmesi iccedilin ccedilapraz taray c deste i
sa lanm t r receiveReq de i keni getXmlHttpRequestObject() ile tan mlanm t r Daha
sonra cevap fonksiyonu olu turulmu tur Sunucudan gelen cevab n durumu ifelse yap s yla
kontrol edilmi tir Sunucudan gelen gelen cevaba goumlre doumlnduumlruumllen de erlerle sonuchtml sayfas
ccedila r larak uygulama sonlan r
AJAX youmlntemi ile ccedilekilen bilginin tutuldu u sonuchtml dosyas nda ise sadece ekil
319 de yazan veri bulunmaktad r
ekil 319 sonuchtml sayfas n n ekran ccedil kt s
38 XML
XML (eXtensible Markup Language) internet te teknik standartlar ve youmlnetim
konusunda yetkili organ olan W3C (World Wide Web Consortium) organizasyonu taraf ndan
geli tirilmi tir XML programc lar n kendi sistemlerini olu turabilecekleri kendi etiketlerini
tan mlayarak ccedilok daha rahat ve etkin programlama yapabilecekleri ve bu belirlenen etiketleri
kendi yap lar iccedilerisinde standartla t rabilece i esnek geli tirilebilir ve kolay uygulanabilir bir
meta-dil (bir dili tan mlamak iccedilin kullan lan soumlzcuumlkler dilbilim dili) dir [65]
XML ile ilgili ilk ve en oumlnemli nokta ba l ba na bir dil olmamas d r Daha ziyade
di er dilleri ya da bir dili olu turan soumlzcuumlkleri olu turmak (vocabularies) iccedilin kullan lan bir
meta-dildir XML bu soumlzluumlklerin olu turulmas iccedilin gerekli kurallar tan mlar [66]
XML bu kural yap s na uygun olarak etiketleri iccedilerik bilgisiyle tan mlayabilir XML nin
esnek yap s sayesinde a a daki oumlrnekte oldu u gibi kullan lan dilde ccedilok farkl tiplerde etiket
olu turulmas na muumlsaittir XML soumlzluuml uumlndeki tek k s tlamas etiketlerin iyi biccedilimlendirilmi
olmas gerekti idir [66]
52
ltnotgt
ltkimegt Melek lt kimegt
ltkimdengt Zeynep lt kimdengt
ltbaslikgt Hatirlatici ltbaslikgt
ltbodygt Bana proje teslim tarihini hatirlat lt bodygt
ltnotgt
Yukar daki not oumlrne i kendi kendini accedil klay c bir oumlrnektir Goumlnderici ve al c bilgisinin
yan nda mesaj metni ve ba l da mevcuttur XML nin HTML de oldu u gibi oumlnceden
tan mlanm etiketleri yoktur XML yazar kendi etiketlerini ve kendi belge yap s n oumlrnekteki
gibi olu turabilir
Her dil farkl d r ama hepsinde iccedileri i i aretlemek iccedilin etiketler kullan l r Etiket
adlar n n seccedilimi ve yap s esnektir ve genellikle gruplarda bilginin payla labilmesi iccedilin standart
XML soumlzluumlkleri kararla t r lm t r [66]
XML 1998 y l nda SGML alt yap s uumlzerine kurulmu tur SGML (Standard
Generalized Markup Language) bir etkinle tirme teknolojisidir HTML gibi uygulamalarda
kullan l r Geni letilebilir aretleme Dili (Extensible Markup Language-XML) nin oldukccedila
basit bir diyalektidir [66]
XML SGML ve HTML sistemlerinin her ikisinin de uygulanmas n kolayla t rmak iccedilin
tasarlanm t r XML ayn zamanda son derece popuumller bir veri format d r Ccediluumlnkuuml ccedilo u
programlama dili taraf ndan desteklenir Bu dil sayesinde geli iguumlzel veri tipleri tan mlamak
kolayd r Ccedilo u kez XML Uzak Yordam Ccedila r s - Remote Procedure Call (RPC) mekanizmas
sayesinde istemci-sunucu ileti imini kolayla t rmak iccedilin kullan lm t r [66] XML elde edilmek
istenen alan bilgileri konfiguumlrasyon parametreleri teknik ccedilizim hesap ccedilizelgesi (spreadsheet)
gibi ouml eleri iccedileren dosyalar n yaz l m nda kullan l r [67]
XML verileri goumlruumlntuumllemek iccedilin de il verilerin platformdan ba ms z bir ekilde
depolanmas ve transferi iccedilin tasarlanm t r XML tuumlm bilgiler duumlz metin format nda saklar Bu
da tuumlm platformlarda sorunsuz bir ekilde kullan labilir olmas n sa lar Bu dosyalar diskte duumlz
metin olarak tutman n bir avantaj
da olu turuldu u programda accedil lmas gerekli de ildir Bu
yaz dosyalar programc n n istedi i bir yaz i leme program nda accedil l p duumlzenlenebilir Ayr ca
XML veriyi duumlz metin (plain text) format nda saklamas ndan dolay veriyi payla t rma
konusunda hem yaz l m hem de donan mdan ba ms z hareket edebilme imkacircn n sunmu tur
53
381 Oumlrnek XML Belgesi Olu turma
XML belgelerinin yap s n n daha iyi kavranabilmesi iccedilin basit bir oumlrnekten yola ccedil k l r
Bir dizi karakter mant ksal bir yap ya ccedilevrilmelidir Bu ccedilevrim a accedil yap s kullan larak
yap labilir Oumlrnek belgede koumlk dizin ya da element ve alt boumlluumlmler iccedilin de dallar belirlenir
denemexml olarak kaydedilecek belgenin iccedileri inde sisteme kay tl kullan c lar n bilgileri
vard r
Haz rlanan denemexml belgesinin a accedil yap s a a daki gibi olu turulmu tur Koumlk
element ve alt dallar ve alt dala ait nitelik belirtilmi tir
ekil 320 denemexml dosyas n n a accedil yap s
A accedil yap s olu turulduktan sonra kodlama k sm na geccedililir XML de kod yaz m n
kolayla t rmak iccedilin Altova XMLSpy MoreMotion XML Editor XMLwriter XML Editor 26
gibi ccedile itli editoumlr programlar kullan labilir Bu tez ccedilal mas nda oldukccedila i levsel oumlzelliklere
sahip Altova XMLSpy yaz l m kullan lm t r Editoumlr kullanarak dokuumlmandaki metinlerin
yap sal elemanlar yaz oumlzellikleri (renk stil biccedilim vb ) belirginle tirilir mlerin otomatik
soyadi
adi
soyadi
eposta
adi
soyadi
eposta
Kullanicilar Kullanici Kullanici_id= 2
Kullanici Kullanici_id= 3
Kullanici Kullanici_id= 1
adi
eposta
54
olarak kapanmas sa lanabilir Olu turulan yap lar n do rulu u ve geccedilerlili i kolayca kontrol
edilebilir Altova XMLSpy editoumlruumlyle olu turulan belge a a daki kodlardan olu maktad r
ltxml version=10 encoding=UTF-8gt lt--Bu XML belgesi kullan c bilgilerini tan mlar --gt ltKullanicilargt
ltKullanici kullanici_id=1gt
ltadigtZeynepltadigt
ltsoyadigtOZERltsoyadigt
ltepostagtz_ozerhotmailcomltepostagt
ltKullanicigt
ltKullanici kullanici_id=2gt
ltadigtYagmurltadigt
ltsoyadigtOZERltsoyadigt
ltepostagty_ozeryahoocomltepostagt
ltKullanicigt
ltKullanici kullanici_id=3gt
ltadigtFatihltadigt
ltsoyadigtAYDOGMUSltsoyadigt
ltepostagtf_aydogmusgmailcomltepostagt
ltKullanicigt ltKullanicilargt
Haz rlanan dokuumlman iyi biccedilimlendirilmi (well-formed) bir yap ya sahiptir ekil 321
de Altova XMLSpy editoumlruumlyle olu turulan belgenin ekran goumlruumlntuumlsuumlnde denemexml
goumlruumllmektedir
55
ekil 321 XML belgesi
382 XML Dokuumlman n n Yap s
XML ile veriler yap bak m ndan moduumllerlik kazanmaktad r Bu sayede verilerin iccedilerik
yap ve sunum k s mlar ayr moduumlller halinde farkl XML dokuumlmanlar nda tutulmaktad r
Her XML belgesini olu turan moduumlller iki boumlluumlmde incelenecektir Bu moduumlller giri
boumlluumlmuuml (prolog) ve belge ya da koumlk duuml uumlm (document node) olarak ayr lm t r
Prolog XML belgesinin ba nda goumlruumlntuumllenir ve belge hakk nda iccedilerikle ilgili bilgiler
iccedilerir XML bildirimleri i lem accedil klamalar yorumlar ve DTD (Document Type
Definition)XML ema iccedilerebilir
yi duumlzenlenmi bir XML dokuumlman tek ve temel bir koumlk duuml uumlm uumlzerine kurulur
Elementler nitelikler metin CDATA (character data) varl k ve yorumlar iste e ba l olarak
eklenebilir
56
ekil 322 Oumlrnek bir XML dokuumlman yap s
[ 66]
3821 Giri Boumlluumlmuuml (Prolog)
Bu boumlluumlmde XML belgesinde bulunabilecek oumln tan mlama konular incelenecektir
3822 XML Bildirimleri
XML dokuumlmanlar genellikle a a daki bildirim sat r yla ba lar Bildirim sat r ndan
oumlnce ba ka komut sat r yaz lmamal d r Tersi bir durumda XML dokuumlman iccedileri i i leme
koyarken do ru bir ekilde okuyamaz ve hata mesaj uumlretir
ltxml version= 10 encoding= UTF-8
gt
Bu i lem sat r nda ba lang ccedil etiketi ve biti etiketi yoktur XML bildiriminin yap ld
ltxml ve gt i lem komut etiketleridir lem komutlar oumlrnekteki gibi biti ik yaz l r Bu oumlrnek
sat rda 2 tane oumlznitelik bar n r Birinci oumlznitelik xml dokuumlman n n hangi suumlruumlm oldu unu bildirir
ve yaz lmas zorunludur En yayg n kullan lan ve en guumlncel suumlruumlmuuml olan 10 yerine ba ka bir
57
de er yaz ld nda dosya i lenmeyebilir kinci oumlznitelik olan encoding belge i lenirken
kullan lacak dil seccediliminin belirtildi i aland r Oumlrnekteki kod birccedilok dili destekleyen UTF-8
karakter dil setini tan mlar
38221 lem Accedil klamalar (Processing Instructions)
Giri boumlluumlmuumlnde di er uygulamalara XML dokuumlman hakk nda bilgi veren i lem
accedil klamalar (Processing Instructions- PIs) dacirchil edilebilir lem accedil klamalar lt karakterleriyle
ba lar ve gt karakterleriyle biter PIs XML belgesinin di er boumlluumlmlerinde goumlruumllebilmesine
ra men genellikle giri boumlluumlmuumlnde goumlruumlluumlr
XML bildirimleri ltxml karakter grubuyla ba lar lem accedil klamalar yla benzerlik
goumlsterir Fakat aralar ndaki fark XML bildirimleri ltxml karakter grubuyla ba larken i lem
accedil klamalar ise lt karakterleriyle ba lar
Bir XSL stylesheet i referans goumlsteren PI goumlsterimi
ltxml-stylesheet type= textxsl
href= stylesheetxsl gt
PI nin ilk ouml esi bir isimdir PI hedefi olarak adland r l r Yukar da goumlsterilen PI xml-
stylesheet ismine sahiptir simler ltxml karakter grubundan - semboluumlyle ayr l r PI ler type=
textxsl href= stylesheetxsl metin karakter dizesine sahiptir Oumlrnek kod sat r nda stylesheet
ad nda metin iccedilerikli bir XSL dosyas referans goumlsterilmi tir
38222 Yorumlar (Comments)
Yorum sat rlar XML belgesinin hemen hemen her yerinde iste e ba l olarak
kullan labilir XML yorum sat rlar XHTML belgelerindeki yap yla ayn d r Ayn karakterlerle
ba larlar
lt--Bu alana yorumlar yaz labilir --gt
Yorum sat rlar XML belgesi i lenirken etkilenmezler Bu sat rlar programc lar n ya da
kullan c lar n program kodlar n kolayca anlayabilmeleri iccedilin yaz l r [68]
58
38223 Dokuumlman Tipi Tan mlama-The Document Type Definition (DTD) ve XML
emalar
XML belgesinin standartla t r lmas iccedilin kullan lan bir yap d r XML belgesinin hangi
elementleri iccedilerece ini ve bu elementlerin oumlzniteliklerinin ne olaca n elementlerin neleri
ta yaca n dokuumlman iccedilerisindeki tekrar eklini ve say s n kurallarla belirtir [69]
382231 DTD kullanman n Avantajlar
Veri depolama XML nin temel amaccedillar ndan birisidir Oumlrne in yaz l m geli tirecek bir
proje ekibi ccedilal rken ortak bir DTD nin olu turulmas yla geli iguumlzel yeni etiketler eklenmesinin
etiketlerle depolanan bilginin hatal s ralanmas n n etiketlere hatal nitelikler eklenmesinin
oumlnuumlne geccedililmi olur Ayr ca i lem yapan program n da bu belgeleri tan mas ve i lemesi kesinlik
kazan r [70] Belge i lenirken geccedilerlilik derleyicileri (validating parsers) XML belgesinin DTD
geccedilerlili i sa lanana kadar tekrar tekrar kontrol eder E er geccedilerlilik kontroluumlnden geccedilemezse
derleyici hata mesaj verir [66]
ccedileri in bir standarda oturtulmas yla AJAX ve dinamik DOM manipuumllasyonunda
istenmeyen gereksiz kod parccedilalar n n ve ccedilal mayan i aretlemelerin oumlnuumlne geccedililir Ayr ca daha
h zl HTML derleyicileri ve daha iyi ccedilapraz taray c performans iccedilin geli mi arama motoru
optimizasyonu sa lan r Bir DOCTYPE belirlemenin en oumlnemli etkisi HTML iccedileri inin nas l
ayr t r ld n ve yorumland n n Web taray c ya goumlsterilmesi gerekti ini belirtmesidir Ayr ca
DOCTYPE ba l olarak CSS yorumlanabilir ve HTML farkl ekilde goumlruumlntuumllenir [71]
Hangi i lem moduna dacirchil oldu u tespit edilerek Web taray c lar
DOCTYPE
doumlnuuml uumlmuumlnuuml destekler Web taray c lar bir Web sayfas n n nas l HTML ve CSS iccedileri ini
yorumlad n
ve de erlendirdi ini sayfalar n DOCTYPE bildirimlerine dayanarak de i tirir
[71]
382232 DTD tan mlama
DTD olu umu iki yolla yap labilir Birinci yol belge iccedilerisinde a a daki oumlrnekte oldu u
ilk standart sat rdan sonra ltDOCTYPE ile ba layan ve gt i areti ile biten aral kla DTD tan m
yap lmas d r DTD alan nda bir kok_element_adi etiketi tan mlanm t r [ ]
i aretleri aras nda
iccedilsel olarak tan mlanm t r Bu etiketin iccedilerisine element_icerigi olarak alt alanlar belirtilir
XML dokuumlman n n iccedilerik k sm na tan mlanan kok_element_adi etiketleri aras na istenilen metin
giri i yap l r
59
ltxml version= 10 encoding= UTF-8 gt
ltDOCTYPE kok_element_adi
[ltELEMENT kok_element_adi (element_icerigi) gt ]
gt
lt kok_element_adi gt Bu basit bir DTDli XML ornegidir lt kok_element_adi gt
kinci yol ise Web sayfalar n n iccedileri i bir geccedilerlilik servisi kullan larak onaylanmas d r
Do rulu u W3C1 taraf ndan garantiye al nan bir DTD ile geccedilerlilik kontroluuml sa lanabilir [71]
HTML XHTML SMIL MathMLvb Web dokuumlmanlar n n httpvalidatorw3org adresinden
URI adresi dosyalar upload edilerek ya da direk i aretleme giri i yap larak geccedilerlilik kontroluuml
yap labilir [72]
DTD tan m a a daki oumlrnekteki gibi HTML belgesine harici olarak
httpwwww3orgTRxhtml1DTDxhtml1-strictdtd adresindeki haz r kural yap s
dacirchil edilir
Kural ak bu adresten sa lan r [72] A a daki kod sat r nda XML veri tan mlamas na goumlre
ltcodegtltcodegt etiketleri olu turulmu tur
ltDOCTYPE html
PUBLIC -W3CDTD XHTML 10 StrictEN
httpwwww3orgTRxhtml1DTDxhtml1-strictdtdgt
lthtmlgt
ltbodygt
ltpgt Bu alana serbest metin giri i yap labilir
ltcodegt
Bu alanda ise XML veri tan mlamas DTD tan m na goumlre yap lm t r
ltcodegt
ltpgt
ltbodygt
lthtmlgt
Programc lar n en ccedilok ihtiyaccedil duyabilece i 6 tane oumlncelikli DOCTYPE belgelerinin
listesi a a da verilmi tir [72]
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401EN
httpwwww3orgTRhtml4strictdtdgt
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN
httpwwww3orgTRhtml4loosedtdgt
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 FramesetEN
60
httpwwww3orgTRhtml4framesetdtdgt
ltDOCTYPE html PUBLIC -W3CDTD XHTML 10 StrictEN
httpwwww3orgTRxhtml1DTDxhtml1-strictdtdgt
ltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalEN
httpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgt
ltDOCTYPE html PUBLIC -W3CDTD XHTML 10 FramesetEN
httpwwww3orgTRxhtml1DTDxhtml1-framesetdtdgt
382233 DTD ccedilinde Element Tipi Bildirimleri
Elementler hakk nda bilgi veren kodlard r Kullan lan yap ELEMENT ile ba lar
element ad ve element iccedileri inin eklenmesiyle sonlan r
ltELEMENT elementName (elementContents)gt
Element iccedileri i a a daki gibi bo olarak ta tan mlanabilir
ltELEMENT elementName (EMPTY)gt
Element iccedileri inde alt dallar-duuml uumlmler olu turulacaksa a a daki oumlrnekte oldu u gibi
DVD koumlk duuml uumlmuumlne le ayr larak s ras yla baslik format tarz element isimleri yaz l r
Belirlenen s ralama XML belgesi iccedilinde goumlruumlnecek s ralamay da olu turur
ltELEMENT DVD (baslik format tarz)gt
Parsed Character Data (PCDATA) veri tuumlruuml element iccedileri inin metinsel ifade olaca n
bildirir XML ayr t r c s bu metindeki karakter ve varl k referanslar n ccediloumlzuumlmler A a da
ltbaslikgt ltformatgt lttarzgt bildirimlerinin iccedilerik tuumlruuml PCDATA olarak tan mlan r
ltELEMENT baslik (PCDATA)gt
ltELEMENT format (PCDATA)gt
ltELEMENT tarz (PCDATA)gt
61
XML belgelerinde tan mlanan bir element herhangi bir veri kombinasyonunu iccedilerebilir
Bu durumda iccedilerik tuumlruuml ANY olarak tan mlan r En serbest iccedilerik tan m d r Oumlrnek kullan m
a a da goumlsterilmektedir
ltELEMENT KATALOG ANYgt
Elementlerin alabilecekleri nitelikler DTD iccedilerisinde tan mlan r Element iccedilerikleri
hakk nda daha detayl bilgiye ula lmas n sa lar Tablo 36 da kullan labilecek niteleyiciler
goumlsterilmektedir
Tablo 36 DTD karakterleri ve accedil klamalar
Karakter Accedil klama
Elemandan s f r veya daha ccedilok bulunabilir
Alt elemanlar s rayla belirler
| Bir grup element aras nda seccedilim yap lmas na izin verir
+ Elemandan bir veya daha ccedilok bulunabilir
Elemandan s f r veya 1 tane bulunabilir
Sembol olmamas o elementin bir kez goumlruumlnmesi gerekti ini bildirir
Oumlrnek goumlsterimde KULLANICI elementine ait alt element olan AD ouml esi birden fazla
de er alabilece ini goumlsterir TEL bildirimi ile kullan c ya ait di er bilgiler girilirken telefon
numaras
giri i eksik olarak kalabilece ini ve sonradan eklendi inde ise yeni kural
tan mlamas na gerek kalmadan etiket tan mlamas n n yap labilece ini bildirir
ltELEMENT KULLANICI (ADI+ TEL)gt
382234 DTD ccedilinde Nitelik Liste Bildirimleri
Nitelik bildirimleri element bildirimlerinden sonra goumlruumlnuumlr ve biraz daha karma k bir
yap ya sahiptir Bir elementin sahip oldu u oumlzellikler bir liste halinde belirtilebilir
Nitelik liste bildirimi a a daki yap yla goumlsterilir
ltATTLIST Element_adi Nitelik_adi Nitelik_tipi varsayilan_degergt
ltATTLIST DVD id CDATA REQUIREDgt
62
Kod parccedilas nda yaz lan varsayilan_deger niteli in gerekli olup olmad n belirtir
Nitelik tipleri Tablo 37 deki de erleri alabilir
Tablo 37 DTD ccedilindeki niteliklerin de er ve accedil klamalar
[73]
De er Accedil klamas
CDATA De er karakter verisi olmal
(en1|en2|) De er parantez iccedilindeki de erlerden birisi olmal
ID a unique identifier- benzersiz bir tan mlay c -kimlik
IDREF De er ba ka bir eleman n ID si olmal
IDREFS De er ba ka ID lerin listesi olmal
NMTOKEN De er geccedilerli XML ad olmal
NMTOKENS De er geccedilerli XML ad listesi olmal
ENTITY De er bir varl k olmal
ENTITIES De er bir varl k listesi olmal
NOTATION De er bir notasyon olmal
xml De er oumlnceden tan mlam bir XML de eri olmal
Varsay lan de er ise Tablo 38 deki de erleri alabilir
Tablo 38 Varsay lan de erler ve accedil klamalar
De er Accedil klama
deger Niteli in Default de eri
REQUIRED Nitelik de eri Eleman iccedilinde geccedilmek zorundad r
IMPLIED Nitelik de eri Eleman iccedilinde geccedilmek zorunda de ildir
FIXED value Nitelik de eri sabittir E er nitelik de eri belirtilirse default de eri
yazmak zorunludur
A a daki oumlrnekte URUN elementinin RENK niteli i seccedilimli olarak k rm z ye il ya da
mavi olas de erleri tan mlanm t r Varsay lan de eri ise k rm z olarak belirtilmi tir [73]
ltATTLIST URUN RENK (red|green|blue) redgt
63
382235 DTD ccedilinde Varl k (Entity) Bildirimleri
Varl k bildirimleri XML belgesinde kullan lan de i ik tuumlr ve biccedilimlerdeki verilerin
XML belgesine aktar lmas n sa lar Di er programlama dillerinde kullan lan moduumll ya da
makrolar gibi s kl kla kullan lan metin bloklar
varl k olarak tan mlanarak sayfan n istenilen
yerine kolayca eklenebilir Eklenen metin uumlzerindeki de i iklikler varl k bildirimiyle
duumlzenlenebilir [73]
Ayr ca d ar dan bir dosyay
varl k olarak tan mlayarak iccedilindeki veri XML belgesinde
kullan labilinir Bu veri metin olmak zorunda de ildir DTD bir varl k olarak tan mlamak iccedilin
a a daki sat r n kullan lmas
gerekmektedir [73]
ltENTITY varl k_ad varl k_degerigt
ltENTITY copyright Copyright 2009 Yayinevigt
Harici bir dosyadan al nacak bir varl k iccedilin soumlz dizimi ise a a daki gibidir
ltENTITY varl k_ad SYSTEM URIURLgt
ltENTITY tableOfContents SYSTEM entitiesdenemexmlgt
(Not URL = Uniform Resource Locator URI = Uniform Resource Identifier )
38224 XML emas
XML emas DTD lere benzer ekilde XML belgesinin yap s n ve bulundurabilece i
verilerin tuumlruumlnuuml tan mlamakta kullan l r XML emalar
xsd dosya uzant l d r ema XML
belgesinde kullan labilecek ouml eleri nitelikleri ve veri tuumlrlerinin yan s ra XML belgesinin soumlz
konusu XML emas iccedilin geccedilerli olmas n sa lamak amac yla uyulmas gereken yap y da
tan mlar [74]
XML emalar DTD yap lar na goumlre daha guumlccedilluuml bir yap ya sahiptir DTD iccedilerisinde
eleman iccedileri i string ve di er birkaccedil veri tipi ile s n rl d r XML ema integer floating point
say lar date time gibi daha geni bir veri tipi deste i sa lamaktad r XML ema ayr ca accedil k
iccedilerik modeli (open content model) ve isim uzay
(namespace integration) gibi ek oumlzellikler de
sunmaktad r XML ema belgeleri olu turulmas s ras nda XML soumlzdizimi kullan l r Bu DTD
lere goumlre ccedilok belirgin bir uumlstuumlnluumlk sa lar Ccediluumlnkuuml yeni bir soumlz dizimi ouml renilmesi yerine
XML in XML emaya oumlzel komutlar n n ouml renilmesi yeterli olur [75]
64
A a daki oumlrnek ema tan mlamas nda xs schema elementi ile ba layan bir koumlk ouml e
vard r
ltxml version=10 encoding=UTF-8gt
ltxsschema
xmlnsxs=httpwwww3org2001XMLSchemagt
ltxsschemagt
ema elementi iki tane oumlzelli e sahiptir
name
xmlns
ema iccedilin bir isim tan mlamas name oumlzelli i ile sa lan r xmlns oumlzelli inin ise oldukccedila
oumlnemli bir goumlrevi vard r Bu oumlzellik sayesinde oumlrne in Microsoft un schema belirtimlerini
kullanabilmesi iccedilin urnschemas-microsoft-comxml-data de erine ayarlanmas gerekir
A a daki oumlrnekte XML ema belgesi iccedilin name ve xmlns niteliklerinin basit kullan m
goumlsterilmektedir [66 75]
ltschema name=kutuphane xmlns= urnschemas-microsoft-comxml-datagt
lt - - ema iccedileri i buraya yaz l r- -gt
ltschemagt
Oumlrnek XML belgesi olu turma ba l alt nda verilen oumlrne in ema dosyas olan
denemexsd nin kodlar ve ekran goumlruumlntuumlsuuml ekil 323 deki gibidir
ltxml version=10 encoding=UTF-8gt ltxsschema xmlnsxs=httpwwww3org2001XMLSchemagt
ltxselement name=Kullanicilargt
ltxscomplexTypegt
ltxssequencegt
ltxselement ref=Kullanici minOccurs=0 maxOccurs=unboundedgt
ltxssequencegt
ltxscomplexTypegt
ltxselementgt
ltxselement name=Kullanicigt
ltxscomplexTypegt
ltxssequencegt
ltxselement name=adi type=xsstringgt
ltxselement name=soyadi type=xsstringgt
ltxselement name=eposta type=xsstringgt
ltxssequencegt
ltxsattribute name=id type=xsinteger use=requiredgt
65
ltxscomplexTypegt
ltxselementgt
ltxsschemagt
ekil 323 denemexsd nin ekran goumlruumlntuumlsuuml
3823 Belge Duuml uumlmleri
XML dokuumlman nlar ndaki belge duuml uumlmleri a a da incelenecektir
38231 Elementler
XML dokuumlmanlar ndan bahsederken etiket ve element terimleri kullan lmaktad r lk
ba ta birbirinin yerine kullan labilir gibi goumlruumlnse de asl nda farkl iki terimdir Element terimi
herhangi bir iccedilerikle birlikte etiketlerin accedil l p kapanmas olarak tan mlanabilir Etiket elementin
bir parccedilas d r Etiketler de kouml eli parantez accedil larak ba lan r ve sonunda kapat larak bitirilir
A a daki oumlrnek sat rda ltxyztgt etiketlerini iccedileren tam bir element goumlruumllmektedir
Accedil l etiketi Kapan etiketi
ltxyztgtXML de etiket ve element fark ltxyztgt
ccedilerik
Element
66
38232 Nitelikler
Her XML belgesi karakter verisi ve biccedilimlendirmeden olu ur Genellikle karakter verisi
ba lang ccedil ve biti etiketleri aras nda metinsel bilgi iccedilerir
XML etiketlerine bir ya da daha fazla nitelik tan mlanabilir
ccedilerik ya da
Nitelik ba ka etiketler
ltKullanici kullanici_id= 1 gt ltKullanicigt
Etiket sim De er
Accedil l etiketi Kapan etiketi
Element
38233 Metin
Accedil lan ve kapat lan tuumlm etiketlerin iccedileri ini olu turur CDATA gibi metin i aretlemesi
yap lmad kccedila tuumlm metin XML kural yap s na goumlre i lenecektir [66]
38234 CDATA Boumlluumlmuuml
CDATA XML yap s iccedilerisinde i lenmeyecek metinleri bloklar halinde i aretlemeye
yarar XML derleyici bu boumlluumlmde metin iccedilerisinde yer alan i aretleme ay raccedillar n ve etiketlerini
normal karakterler olarak alg lar CDATA yap s ltCDATA[ ile ba lar ve]] kouml eli parantezlerin
kapanmas yla sona erer
ltbaslikgtltCDATA[
]]ltbaslikgt
CDATA boumlluumlmleri Javascript gibi goumlmuumlluuml kodlar XML belgelerinde kullanabilir ve bu
boumlluumlmlere i leme ihtiyaccedil duyulmayan iccedilerik eklenebilir Oumlrne in bir uygulamada veritaban ndan
veri okumas ve i aretlemesi buumltuumln iccedileri in XML belgesine goumlmme bilgisini vermede
karakterler i lenirken accedil kccedila ayr lmas n n oumlnuumlne geccedilebilmek iccedilin CDATA boumlluumlmleri kullan l r
[66]
67
38235 Varl klar
Bir karakteri temsil eden sembol grubuna varl k denir Oumlrne in Ampersand i areti
yerine yani ve yerine kullan lan ampamp ya da bir karakterlik bo luk b rakmak iccedilin
nonbreaking space yerine ampnbsp semboluuml kullan l r
ltmatematikgt18 lt 36ltmatematikgt
Yukar daki kod sat r nda bu element i lenmeye ccedilal ld nda hata iletisi verecektir
Ccediluumlnkuuml 36 de erinin oumlnuumlndeki etiket accedilma i areti olarak alg lanacak ve kod sat r n n i leme
al nmas nda yanl l a neden olacakt r Bu hatay duumlzeltmek iccedilin kod sat r n n a a daki gibi
yaz lmas yeterli olacakt r
ltmatemetikgt18 amplt 36ltmatemetikgt
Tablo 39 da s k kullan lan karakterlerin varl k sembolleri goumlsterilmektedir
Tablo 39 XML Belgelerinde kullan lan varl k bildirimleri
Karakter Varl k
amp ampamp
ampapos
gt ampgt
lt amplt
ampquot
383 XML nin Soumlz Dizim Kurallar
XML iccedileri in i aretlenmesi iccedilin etiketleme dili kullan l r Bu etiketlemeler yap l rken
baz kurallar goumlz oumlnuumlnde bulundurulur imdi bu kurallar incelenecektir
1) XML dili buumlyuumlk kuumlccediluumlk harfe kar duyarl d r XML de kuumlccediluumlk harf kullan m esast r
Oumlrnek yaz m a a daki gibidir [76]
lttable WIDTH= 100 gt kullan m yanl t r
lttable width= 100 gt kullan m do rudur
68
2) Her etiket kapat lmal d r Oumlrne in ltkelimegt etiketini takip eden sat r sonuna ltkelimegt
etiketi de eklenmelidir
3) Dokuumlmanda buumltuumln elementleri iccedileren bir koumlk eleman olmas gerekir Oumlrnek yaz mda
oldu u gibi alt ouml eler duumlzenli bir yap da yaz lmal d r [76]
ltrootgt
ltchildgt lt childgt
ltsubchildgt lt subchildgt
lt rootgt
4) Etiketler belirlenirken bir element ba ka elementleri iccediline alacak ekilde tasarlanabilir
ccedilten d a do ru etiketlerin hepsi kapat lmal d r
ltbgtltigtBu metin koyu ve e ikltbgtltigt yanl kullan m
ltbgt ltigt Bu metin koyu ve e ik lt igt lt bgt do ru kullan m
5) XML elementleri oumlzel karakter verileri bo elementler CDATA ya da yorumlar
bar nd rabilir
6) Oumlznitelik de erleri t rnak iccediline al nm olmal d r Tek t rnak ya da ccedilift t rnak olabilir
lttable width=100gt kullan m yanl t r
lttable width= 100 gt kullan m do rudur
7) Element adlar harfler rakamlar tire alt ccedilizgi iki nokta i aretlerini ve noktalar
iccedilerebilir ki nokta i areti sadece namespace kullan m iccedilindir xml ile ba layan eleman
isimleri oumlnceden tan mlanm oumlzel isimlerdir [86]
ltkullanilabilirIsimlergt
ltisimgt
ltxslcopy-ofgt
ltUzun_bir_isimgt
ltNoktalarlaayrilmisbirisimgt
lth823323123-231-231gt
lt_23gt
ltkullanilabilirIsimlergt
8) Etiketleme yap l rken rakamla ba lamamas na dikkat edilmelidir Bo luk yer
almamal d r
69
384 XML Dokuumlmanlar n n leyi i ve Sunumu
XML i lemleri a accedil tabanl ve olay tabanl olmak uumlzere iki kategoriye ayr l r Verilerin
i lenmesinde XML parser yani ayr t r c kullan l r XML i lemciler genellikle XML ayr t r c
olarak da adland r l r A accedil tabanl ayr t r c lar DOM (Document Object Model) yakla m na
goumlre olay tabanl ayr t r c lar ise SAX (Simple API for XML) yakla m na goumlre veriyi ema
yap s ile birlikte XMLye oumlzguuml hiyerar ik yap da i ler lenen veriler uygulama ve
sorgulamalara haz r hale getirir [66 76]
Genellikle bir XML dokuumlman n XML formatl veri iccedilerik dosyas XSD (DTD yerine)
formatl ema dosyas ve XSL (CSS yerine) formatl stylesheet dosyas olmak uumlzere 3 dosyayla
tan mlanabilir Bu uumlccedil dosya tipi de XML destekli tuumlm sunucu ve veri tabanlar nda ccedilal t r labilir
Verinin yal n (native) olarak sakland veritaban youmlnetim sistemleri di er veritabanlar nda
kar la lan harici veri tipleri veya farkl format doumlnuuml uumlmlerine gerek duymad ndan sorgu
transfer ve entegrasyon i lemlerinin performanslar
oldukccedila yuumlksektir Ayr ca XML veritaban
youmlnetim sistemlerinde verinin yal n biccedilimde kendi iccedil format nda tutuluyor olmas n n bir
avantaj da eri imi kolayla t rmas d r Ba ka veritaban youmlnetim sistemi yakla mlar nda buna
benzer bir arama iccedilin karma k ccediloklu tablolar ara t r l r ve daha sonra XML verisine
doumlnuuml tuumlruumlluumlr Bu da i lem performans n n duuml mesine ve maliyet art r c ek uygulamalar
eklenmesine neden olur [66 76]
39 AJAX Prensipleri
AJAX yeni bir teknoloji olmas itibariyle henuumlz emekleme doumlnemindedir Bununla
birlikte birkaccedil Web tasar mc s bu yenili i ba a ccedil k lmas gereken bir sorun gibi alg lamaktad r
Bu sorun iyi bir AJAX Web uygulamas yapabilmek iccedilin s radan ya da koumltuuml bir uygulamaya
kar ne yap lmas gerekti i olarak tan mlanabilir Michael Mahemoff (wwwmahemoffcom)
bir yaz l m geli tirici ve kullan labilirlik uzman iyi Ajax uygulamalar iccedili birkaccedil temel ilke
belirlemi tir [37]
Minimal Trafik nternet trafi i internet uumlzerindeki veri ak d r Goumlnderilen ve al nan
mesajlar n miktar youmlnuuml web sitesine giren ziyaretccedililerin say s ziyaret ettikleri
sayfalar ccedilevrimiccedili trafi i olu turmaktad r AJAX uygulamalar nda amaccedil bu internet
trafi ini en alt seviyede tutmak iccedilin sunucudan muumlmkuumln olabildi i kadar az bilgi
goumlnderip almakt r Ayr ca bilgi ak nda gereksiz bilgilerin her seferinde goumlnderilip
al nmas n n oumlnuumlne geccedililmesiyle uygulamaya sa laml k kat l r
70
Kullan c etkile imli model Genellikle AJAX uygulamalar geleneksel Web
uygulamalar ndan farkl olarak de i ik kullan c etkile imli modeller sunar Web
standartlar ndaki t kla-bekle anlay na kar AJAX uygulamalar nda an nda suumlruumlkle
b rak ya da ccedilift t klamayla yak nla t rma gibi di er kullan c arayuumlz paradigmalar
vard r E er kullan c
etkile imli modeller seccedililirse kullan c
ne yapaca n bilir
Sade arayuumlz Yan p soumlnen sayfa boumlluumlmuuml ya da suumlrekli doumlnen animasyonlar gibi dikkat
da t c ve gereksiz sayfa elementlerinden kaccedil n l r Kullan c lar goumlze hitabeden
uyumlu ve sade sayfalar tercih etmektedir
Eri ilebilirlik nsanlar n ba lant h zlar ndan fiziksel engellerine ya ad uumllkenin
toplumsal yap s ndan ya l l a kadar birccedilok youmlnden eri ilebilirlik standartlar
incelenebilir Birincil ve ikincil kullan c lar n beklentilerine en uygun olacak AJAX
uygulamalar na eri im seccedilenekleri goumlz oumlnuumlnde bulundurulmal d r Oumlzel yaz l mlarla m
yoksa kullan lacak taray c oumlzellikleriyle mi adaptasyonun sa lanaca belirlenmelidir
Boumlylece yeni hedef kitleler de tamamen d ar da b rak lm olmayacakt r
Sayfan n tamam n indirilmesinden kaccedil nma Tetikleyici sayfa indirildikten sonra
tuumlm sunucu ileti imi AJAX motoru taraf ndan youmlnetilmektedir Boumlylece kuumlccediluumlk bilgi
al -veri leri iccedilin tuumlm sayfan n tekrar yuumlklenmesinin oumlnuumlne geccedililmi olur
lk kullan c AJAX uygulamalar nda tasar m kullan c lar n daha oumlnce
kar la mad klar bir biccedilimdedir Etkileyici efektler ve s k c olmayan bilgilendirici
reklamlarla genel kullan m durumlar n kolayca ba armaktad r
Buumltuumln bu ilkelerde bulunan ortak nokta kullan labilirliktir AJAX oumlncelikle kullan c lar
iccedilin web deneyimini geli tirmeye ccedilal rken arkas ndaki teknoloji sadece bunun iccedilin bir araccedilt r
Yukar daki ilkelere sad k kalarak AJAX uygulamalar oldukccedila faydal ve kullan l olacakt r
[37]
310 AJAX Kuumltuumlphaneleri ve Araccedillar
Kuumltuumlphaneler haz r fonksiyonlara kolayca eri im sa lar Ayr ca s k kullan lan var olan
kodlar tekrar yazarak zaman kaybedilmemesini sa lar A a da en ccedilok kullan lan AJAX
kuumltuumlphanelerine oumlrnekler verilmi tir
3101 Prototype
Prototype dinamik web uygulamalar yaratmak iccedilin kullanabilecek geli mi bir
kuumltuumlphanedir Accedil k kaynakl ve nesne tabanl kod kuumltuumlphanesidir Ajax iccedilin yaz lan
71
kuumltuumlphanelerin ilk oumlrneklerindendir ve di er haz r kuumltuumlphanelerin bir k sm prototypejs
kullanmaktad r [78]
3102 AJAX Gear Toolkit
AJAX olarak bilinen istemci tarafl tekni in buumltuumln avantajlar ndan faydalanmay
muumlmkuumln k lan bir araccedilt r XMLHttpRequest nesnelerini kullanarak internet taray c s n n
asenkron ccedila r yapmas n sa lar [78]
3103 AspNet Ajax
ASPNET AJAX ASPNET ile yap lan ve tuumlm nternet taray c lar nda ccedilal abilen
uygulamalar iccedilin Microsoft taraf ndan geli tirilen bir kuumltuumlphanedir Oumlnce Atlas daha sonra
ASPNET Ajax ad n alm t r ASPNET 20 ile kolay entegrasyon ASPNET 35 ile tam
entegrasyon sa lar Yeni nesil etkile imli arayuumlzler olu turmak iccedilin kullan l r [78]
3104 Dojo Toolkit
Accedil k kaynak kodlu bir javascript toolkit olup dhtml sorunlar n buumlyuumlk oumllccediluumlde ccediloumlzmuuml tuumlr
Arayuumlz programlama karma k kodlar n basite indirgenmesi toolkitin sa lad avantajlard r
Ayr ca dinamik web sitesi ya da ba ka ortamlar haz rlamay kolayla t ran ve sitenin daha
kullan l olmas n sa layan iccedilerikler sunar [78]
3105 MochiKit
Dreamweaver web uygulamalar iccedilin kullan lan ajax kuumltuumlphanelerinden birisidir E
zamanl olmayan davran lar iccedilin erteleme uygulamas n kulland ndan sunucuyla etkile im
halinde olan web sayfalar n n geli tirilmesinde tercih edilir [78]
3106 PHPLiveX
PHP ile yap lan uygulamalar iccedilin kullan lan bir kuumltuumlphanedir Versiyon 25 ile gelen
yenilikler ve optimizasyonlar kuumltuumlphanenin potansiyelini ciddi biccedilimde artt rm t r Di er php
tabanl kuumltuumlphaneler gibi php fonksiyonlar n javascript koduyla ccedila r r fakat di erlerine goumlre
daha az kodla kullan m sa lar [78]
72
3107 Sardalya (Sarmal Dinamik Altyap s )
Sardalya Dinamik AJAX Kuumltuumlphanesi DOM deste i olan tuumlm guumlncel taray c larda
ccedilal mak iccedilin tasarlanm bir AJAX Kuumltuumlphanesi dir Linux windows freebsd osx sun gibi
platformlarda ccedilal abilir Tuumlm taray c lardan ba ms z olarak ccedilal r ve kullan m s ras nda az
yer kaplar [78]
3108 Sajax
Sajax n accedil l m Simple Ajax Toolkit tir ASP ve PHP tabanl programlarda AJAX
uygulamalar geli tirmek iccedilin kullan lan bir kuumltuumlphanedir Buumltuumln sunucu tarafl platformlara
ccedila r goumlnderebilme yetene ine sahiptir [78]
3109 Solvent
AJAX uygulamalar n moduumller bir yap da gerccedilekle tiren farkl bir kuumltuumlphanedir
JavaScript ile yaz lm t r ve tuumlm taray c lardan ba ms z olarak ccedilal an bir AJAX uygulamas d r
Web uygulamalar n kuvvetlendirmek ve uygulamalar n geli tirme suumlrecini h zland rmak iccedilin
kullan l r [78]
31010 AjaxAC
AjaxAC accedil k kaynak kodlu php tabanl bir kuumltuumlphanedir AjaxAC ile varolan PHP
s n flar na ve MySQL veritaban na ek istek verilerini doumlnduumlrmek iccedilin geccedili oldukccedila kolayd r
[78]
31011 Xajax
Xajax Php JavaScript HTML XMLHttp ve XML kullanarak taray c ve sunucu
aras ndaki al veri i ve verileri goumlstermeyi gerccedilekle tirir Xajax ile geli tirilmi
uygulamalar sunucudaki php fonksiyonlar n ccedila rabilir ve sayfay yeniden yuumlklemeden
iccedileri ini guumlncelle tirebilir [78]
73
31012 Scriptaculous
Prototype tabanl bir js framework tuumlr Yap lan AJAX i lemleri prototype iccedilerisinde
bulunan nesneler ve fonksiyonlar ile yap l r [78]
311 AJAX Uygulamalar nda Kullan lan Di er Teknolojiler
AJAX istemci ile sunucu aras nda e zamanl olmayan ileti im sa layan bir teknolojiler
buumltuumlnuumlduumlr
3111 HTMLXHTML
stemci tarafl (client side) bir metin i aretleme dili olan XHTML (Extensible
HyperText Markup Language- Geli tirilebilir Metin aretleme Dili) dili XML soumlz dizimi ile
olu turulmu tur XHTML standart etiket ayarlar n tan mlarken spesifik bir yol kullan lmal d r
World Wide Web Consortium (W3C) duumlnyadaki Web geli tiriciler iccedilin olu turulmu ayn
standartla t r lm yakla m benimserler [66]
3112 CSS
XHTML de stil biccedilimlendirmesini sa lar Yuumlzlerce sayfan n tek merkezden
youmlnetilmesini sa lar Geleneksel youmlntemlerde her sayfan n biccedilimlendirme ayarlar birccedilok kod
sat r aras ndan stillerle ilgili olanlar n seccedililip duumlzeltilmesiyle yap l r CSS kullan lan
youmlntemlerde a a daki gibi bir kod parccedilas
tuumlm sayfalardaki stil ayarlar n n yap lmas n tek
merkeze ba lam t r
kabuk
width760px
background-colorEE7700
spot
colorEE7700
font-familyVerdana Comic Sans MS Helvetica sans-serif
74
AJAX ve CSS birlikte kullan larak masauumlstuuml ccedilal t r labilir EXE yaz l mlar ile ayn
h zda ve performansta ccedilal an web uygulamalar geli tirmek muumlmkuumln hale gelmi tir Google
belgelerinde Gmail bunun en buumlyuumlk oumlrne idir
Web sayfalar ndaki tuumlm iccedilerik biccedilimlendirmeler resimler vb istemciye
HTMLXHTML kodlar halinde goumlnderilir Bu kodlar sade ve basittir Bu da oldukccedila fazla
kullan c ya hitap edebilen web siteleri iccedilin oumlnemlidir Ccediluumlnkuuml internete ba land nda k s tl bir
bant geni li ine sahip kullan c lar daha az say da karakter iccedileren sayfalar daha k sa suumlrede
indirebilecektir Boumlylece kullan c lar toplam suumlrede daha fazla sayfa ziyaret edecektir
Sayfalar n h zl yuumlklenmesi kullan c lar n o siteler hakk ndaki memnuniyetini art racakt r
Ayr ca bu durum yaz c dostu sayfalar n olu turulmas nda etkilidir [79]
3113 XSLT
XSLT (Extensible Stylesheet Language Transformations Geni letilebilir
Biccedilimlendirme Dili Doumlnuuml uumlmleri) XML tabanl doumlkuumlmanlar n orijinal halini de i tirmeden
yeni bir dokuumlman olu turmak iccedilin kullan lan bir dildir [80] Oumlrne in bir XML doumlkuumlman n
XHTML ye doumlnuuml tuumlrmek iccedilin XSL doumlnuuml uumlmuuml (transformation) kullan labilir XMLnin iccedilindeki
hangi data nas l doumlnuuml tuumlruumllecek sorular ndan hangi sorusunun cevab XPath ile belirtilirken
nas l sorusunun cevab ise yine XML ile belirtilir [81]
75
4 FLEX
Flex MXML ActionScript 30 ve Flex s n f kuumltuumlphanelerinin birle iminden olu an
sunucu-istemci tabanl yeni bir teknolojidir Ayr ca Flex Flash uygulamalar ile derlenebilen
XML tabanl bir dil olarakta tan mlanabilir [84] Flex in ccedilal ma sistemati inin i lem ak
emas ekil 41 de goumlsterilmektedir
ekil 41 Flex uygulamalar n n i lem ak emas
ekil 41 de sol alt kouml eden sa uumlst kouml eye do ru i lem ak emas takip edildi inde
Flex Builder 3 ile geli tirlen appmxml uygulamas MXML derleyicide ccedilal t r ld nda bir swf
dosyas uumlretmektedir Ayr ca uumlretilen swf dosyas n n sunucu uumlzerinde test edilebilmesi iccedilin
birde html uzant l dosya olu turulur Flex in en oumlnemli oumlzelli i uumlretilen son uumlruumlnuumln swf
format nda olmas d r Ayr ca olay tutucu komut dizelerinin kolay kullan m
yaz l m n
olu turulmas nda Flex program n tercih nedeni olmas n sa lam t r
Adobereg Flexreg 3 yayg n olarak kullan lan taray c lar masauumlstleri ve i letim
sistemlerinde kolayl kla etkileyici web uygulamalar olu turmaya ve bak mlar n yapmaya
youmlnelik verimlili i yuumlksek bir programd r Accedil k kaynak (open source) altyap s na sahiptir
Eclipse tabanl bir plugin kuumlmesidir
Adobe firmas taraf ndan Flex Builder 3 Pro lisans
herhangi bir e itim kurumuna
ouml renci e itmen ya da ccedilal an olarak ba l olduklar n belgeleyenlere tamamen uumlcretsiz olarak
verilmektedir Kurulum tamamland ktan sonra ilk accedil l ekran ekil 42 de goumlsterildi i gibidir
[83]
76
ekil 42 Flex arayuumlzuuml
41 Adobereg Flexreg 3 Kurulumu ccedilin Gereken Minimum Sistem Gereksinimleri
Uygulama gerccedilekle tirmek iccedilin farkl i letim sistemleri iccedilin gerekli sistem
gereksinimleri a a da belirtilmi tir
411 Windows ccedilin Flex Builder 3 (Standart ve Profesyonel)
Flex in Windows kurulumu iccedilin gerekli minimum sistem gereksinimleri a a da
goumlsterilmektedir [83]
Intelreg Pentiumreg 4 i lemci
Microsoftreg Windowsreg XP Service Pack 2 veya Windows Vistareg Home (Premium
veya Basic) Business veya Ultimate
1 GB RAM (2 GB oumlnerilir)
500 MB kullan labilir sabit disk alan (eklenti yap land rmas iccedilin ek 500 MB gerekir)
Java Virtual Machine Sun JRE 142 Sun JRE 15 (dacirchildir) IBMreg JRE 15 veya
Sun JRE 16
Eklenti yap land rmas iccedilin Eclipse 322 33 ve 34 (Eclipse 33 Windows Vista iccedilin
oumlnerilir)
Adobe Flashreg Player 9 yaz l m
BEA Workshop 101
77
IBM Rational Software Architect 7003 (Yaln zca Eclipse 33 eklenti yap land rmas )
412 Macintosh ccedilin Flex Bu lder 3 (Standart ve Profesyonel)
Macintosh bilgisayarlar iccedilin gerekli minimum sistem gereksinimleridir [83]
PowerPCreg G4 125 GHz veya Intel i lemci
Mac OS X v1047 10410 veya 105
1 GB RAM (2 GB oumlnerilir)
500 MB kullan labilir sabit disk alan
Java Virtual Machine Appledan JRE 15 veya JRE 16
Eclipse 322 33 ve 34 (eklenti yap land rmas iccedilin)
Adobe Flash Player 9 yaz l m
78
5 CcedilEVR M Ccedil KATALOG TASARIMI F rat Uumlniversitesi Oumlrne i
AJAX teknolojisi AdobeMacromedia firmas n n geli tirdi i Flex program
ve
bile enleri kullan larak F rat Uumlniversitesinin 2009 ccedilevrimiccedili katalog ccedilal mas
herhangi bir
teknik bilgi gerektirmeden guumlncellenebilen alt yap s yla gerccedilekle tirilmi tir Kullan c arayuumlzuuml
olu turulurken XML tabanl bir gramer yap s
ve Flex program
kullan lm t r Bu tez
ccedilal mas nda sunucu olarak WampServer 20 kullan lm t r Katalog uygulamas n n kaynak
kodlar na ek boumlluumlmuumlnden bak labilir
AJAX teknolojisiyle ortaya ccedil kmaya ba layan ccedilevrimiccedili bro uumlrler ve kataloglar
internetteki Web uygulamalar uumlzerinde ccedilevrimiccedili hedeflerin oumlnemli bir boumlluumlmuumlne hacirckim
olmaktad r [37] Bu tez ccedilal mas da buna oumlrnek te kil etmektedir
Ccedilal man n olu um haritas na literatuumlr taramas yla ba lanm t r Bir sonraki ad mda
haz rlanacak olan program n oumlzellikleri belirlendi Bu a amadan sonra yaz l m iccedilin kullan lacak
program n seccedilimi yap ld Yaz l m algoritmas planlan p ekil 51 deki kodlama algoritmas
olu turulmu tur Yaz l m test edildi inde olu an hatalar giderilmi tir Ccedilal man n sayfa tasar m
yap larak son ekli verilmi tir
79
ekil 51 Kodlama algoritmas
Ba la
Harici verilerin XML dosyas ndan okunmas iccedilin HttpService s n f tan mland
De i ken tan mlamalar
Flex s n flar eklendi
Uygulamada kullan lacak resim boyutland rmas iccedilin maskeleme yap ld
Sunucu ile taray c ileti iminde AJAX scriptler kullan ld
Tuumlm sayfalar ekran goumlruumlntuumlsuuml iccedilin uygulama boyutland rmas yap ld
Zoom oumlzelli i iccedilin etiket tan mlamas ve buumlyuumltuumllmuuml sayfa goumlruumlntuumlsuuml iccedilin goumlruumlnuumlm
ayarlar fonksiyonu yaz ld
Navigasyon duuml meleri olu turuldu
XML format na uygun duuml uumlmler olu turuldu
Sayfa tasar m yap ld
Dur
A a daki kod sat rlar yla katalog ccedilal mas n n uygulama dosyas olan catamxml
dosyas na Flex iccedilinde ccedilal ma youmlntemlerini belirleyen faydal
s n flar dacirchil edilmi tir
lt[CDATA[
import mxutilsStringUtil
import mxrpcsoapLoadEvent
import mxcontrolsAlert
import mxrpceventsFaultEvent
import qscontrolsFlexBook
import qscontrolsflexBookClassesFlexBookPage
import qscontrolsflexBookClassesFlexBookEvent
import qscontrolsflexBookClassesWBookPageImpl
import qscachingContentCache
import mxrpceventsResultEvent
import mxrpchttpHTTPService
import mxcoreUIComponent
import mxmanagersPopUpManager
import compResimSec
import Kullan
import mxcoreScrollPolicy
import mxcollectionsArrayCollection
XML tan mlamalar diziler sunucu ba lant lar ve zoom i lemleri iccedilin gerekli de i ken
tan mlamalar a a daki kod sat rlar yla yap lm t r
private var aXML
[Bindable]
private var resimlerArrayCollection
private var dataSetHTTPService
private var resimdiziArray=new Array()
private var zoomYapBoolean=false
Katalo un local sunucu uumlzerinde ccedilal t r labilmesi iccedilin kaynak dosyas
Wamp kurulumu
sonras nda olu an www klasoumlruuml iccediline yerle tirilir E-katalog resimleri dinamik olarak data
dizinindeki imagesxml dosyas nda ccedilekilmektedir Katalog resimlerini de i tirmek iccedilin bu
dosyadaki xml duuml uumlmlerinin de i tirilmesi yeterlidir De i iklik yap lacak duuml uumlm oumlrne i
a a da goumlsterilmektedir
81
ltimage source=images2jpg thumb=images2jpg zoom=images2jpggt
Yukardaki sat rdaki duuml uumlmleri accedil klamak gerekirse source duuml uumlmuumlnde katalogda
goumlruumlnecek resim thumb duuml uumlmuumlnde e er as l resim (source) resmi yuumlklenene kadar ba ka bir
resim goumlruumlnmesi isteniyorsa o resmin kayna goumlsterilir Zoom duuml uumlmuuml ise sayfaya zoom
yap lmas esnas nda goumlruumlnecek resmin kayna n goumlsterir
Yukardaki 3 duuml uumlmden thumb duuml uumlmuuml iste e ba l olarak kullan l r Zoom
duuml uumlmuumlndeki resim as l resmin 100 buumlyuumlk hali olmal d r
ekil 52 Katalo un ilk sayfas n n ekran goumlruumlntuumlsuuml
E-katalog sayfalar n boyutunu kataloghtmlde tan ml olan object nesnesinin geni lik ve
yuumlkseklik oumlzelliklerinden almaktad r ekil 52 nin kaynak kodu a a da verilmi tir
ltscript src=ScriptsAC_RunActiveContentjs type=textjavascriptgtltscriptgt
ltscript type=textjavascriptgt
AC_FL_RunContent( idkatalogwidth894height653codebasehttpfpdownloadm
acromediacomgetflashplayercurrentswflashcabmoviekatalogqualityhighbgcolor
000000allowscriptaccesssameDomain ) end AC code
ltscriptgtltnoscriptgtltobject classid=clsidD27CDB6E-AE6D-11cf-96B8-444553540000
id=katalog width=894 height=653
82
codebase=httpfpdownloadmacromediacomgetflashplayercurrentswflashcabgt
ltparam name=movie value=katalogswf gt
ltparam name=quality value=high gt
ltparam name=bgcolor value=000000 gt
ltparam name=allowScriptAccess value=sameDomain gt
ltembed src=katalogswf quality=high bgcolor=000000
width=984 height=653 name=katalog align=middle
play=true
loop=false
quality=high
allowScriptAccess=sameDomain
type=applicationx-shockwave-flash
pluginspage=httpwwwadobecomgogetflashplayergt
ltembedgt
ltobjectgtltnoscriptgt
ekil 53 Katalo un 23 sayfa goumlruumlntuumlsuuml
Oumlrne in ekil 53 te kullan lan resimlerin width=447 height=613 boyutunda ise
resimlerin sayfada goumlruumlnmesi iccedilin html etiketindeki width oumlzelli ini 447x2=984 ve height
83
oumlzelli ini 613+40=653 eklinde duumlzenlenmesi gereklidir Yani width=resim geni li i X 2 ve
height=resim yuumlksekli i + 40 olmal d r
ekil 54 Katalo un sayfa ccedilevirme efektli goumlruumlntuumlsuuml
ekil 54 te goumlruumllen e-katalogun sayfay ccedilevirme oumlzelli i ile h z gibi i lemleri stylecss
dosyas nda tutulmaktad r Gerekli olmad kccedila bu dosya uumlzerinde de i iklik yap lmamas tavsiye
edilir Olu turulan stylecss dosyas n n kodlar a a da goumlsterilmi tir
FlexBook
color 000000
textRollOverColor 000000
border-thickness 0
border-style none
page-slope06
active-grab-area page
page-shadow-strength 1
curve-shadow-strength 1
auto-turn-duration 1500
Application
color F1F1CC
textRollOverColor FFFFFF
84
backgroundGradientColors FFFFFF FFFFFF
backgroundColor FFFFFF
SuperImage
border-thickness 0
border-style none
ekil 55 de goumlruumllen navigasyon ccedilubu unda 1 numara ile goumlsterilen alan istenilen
sayfaya konumland rma yap labilmesi iccedilin sayfa numaras n n girildi i kutudur 2 numara ile
goumlsterilen alan Sayfaya Git duuml mesine t kland nda istenilen sayfan n accedil lmas n sa layan
duuml medir 3 ve 4 numara ile goumlsterilen duuml meler Geri leri duuml meleridir Fare kontroluuml
olmadan da sayfalar aras nda gezinti yap labilmesini sa lar 5 numara ile goumlsterilen alan Tuumlm
Sayfalar duuml mesidir
ekil 55 Katalo un navigasyon ccedilubu u
Tuumlm sayfalar n accedil l r pencere iccedilerisinde goumlruumlntuumllenmesini sa layan fonksiyon a a daki
gibidir Kullanmxml sayfas nda ccedilekilen resimler pencerede goumlster komutuyla geni lik ve
yuumlksekli i ayarlan r Seccedililen nesneler customMoveend() komutuyla ekrana ta n r
private function tumsayfalar()void
Kullanshow_window(thisfalseapplicationwidth-10(applicationheight-60)2)
customMoveend()
customMoveplay()
ekil 56 da goumlruumllduuml uuml uumlzere ccedilevrimiccedili katalogdaki yuumlkluuml olan tuumlm sayfalar yukar dan
accedil lan bir pencere yard m yla goumlsterilir Tuumlm sayfalar
goumlster duuml mesi t kland nda goumlruumlnecek
resimler ile ilgi ayarlar ise data klasoumlruumlndeki onizlexml dosyas ndan ayarlanabilir Xml nin
esnek etiketleme yap s sayesinde onizlexml dosyas nda olu turulan ltsayfalargt etiketi aras na
a a daki kod sat rlar ccedilo alt larak olu turulmu tur
85
ltsayfagt
ltresim1gtimages2jpgltresim1gt
ltresim2gtimages3jpgltresim2gt
ltgitgt2ltgitgt
ltpagesgt23ltpagesgt
ltsayfagt
ekil 56 Tuumlm Sayfalar duuml mesi t kland ndaki ekran goumlruumlntuumlsuuml
Son olarak 6 numaral duuml me t kland nda + ve - konumlar n alarak buumlyuumlteccedil
oumlzelli i kullan l r ekil 57 de goumlsterildi i gibi imleccedil sayfa uumlzerinde gezdirilirken bu alan
uumlzerinde zoom yap larak yan sayfada buumlyuumltuumllmuuml goumlruumlntuuml sa lan r
86
ekil 57 Zoom oumlzelli i
Zoom oumlzelli inde resimler uumlzerindeki geni lik ve yuumlkseklik de erleri iccedilin if else blok
yap s kullan larak maskeleme fonksiyonu yaz lm t r Maskeleme fonksiyonu a a daki kod
sat rlar nda goumlsterilmektedir Fare nin x-y koordinatlar nda alaca de erlere goumlre fare nin
buumlyuumltuumllecek alan uumlzerinde gezinmesiyle yan sayfada buumlyuumltuumllmuuml goumlruumlntuuml elde edilmi tir
private function maskele(eMouseEvent)void if(zoomYap) if((mouseXgt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) )
maskex=0
img2visible=false img1visible=true img1x=(applicationwidth2)-mouseX img1y=-1mouseY else if((mouseXlt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) ) maskex=applicationwidth2 img1visible=false img2visible=true img2x=-1mouseX img2y=-1mouseY
Sayfa goumlruumlntuumllerinin maskelenmesinden sonra resimlerin kaynak dosyadan ccedilekilerek
ekrana buumlyuumltuumllmuuml hallerinin yans t lmas iccedilin a a daki fonksiyon olu turulmu tur
87
private function zoom()void
if(zoomerlabel==+) zoomerlabel=- if(img2source=aimage[bookcurrentPageIndex2]zoom) yuklemevisible=true
img2addEventListener(EventCOMPLETEbuyuk2_yuklendi) img2source=aimage[bookcurrentPageIndex2]zoom
if(aimagelength()gtbookcurrentPageIndex2+1) img1addEventListener(EventCOMPLETEbuyuk1_yuklendi)
img1source=aimage[bookcurrentPageIndex2+1]zoom
zoomYap=true else if(zoomerlabel==-)
zoomerlabel=+
setGorunum()
private function setGorunum()void zoomYap=false zoomerlabel=+ img1visible=false img2visible=false
88
6 SONUCcedil
Web 20 ak m ve zengin internet uygulamalar guumlnuumlmuumlz popuumller konular ndand r Bu
nedenle tez ccedilal mas
bu amaca youmlnelik olarak son teknolojiler kullan larak geli tirilmi tir
AJAX teknolojisi kullan larak kullan c n n istekleriyle sayfan n tamamen yenilenmeden
ilgili i lemin yuumlruumltuumllebilmesi sa lanmaktad r Geli tirilen sistem ccedilapraz taray c deste ine sahip
esnek ve kolay kullan labilir bir yap ya sahip oldu undan herhangi bir programlama bilgisine
sahip olmadan ki ilerin istenilen de i iklikleri yap labilece i bir alt yap ya sahiptir Bu ccedilal ma
nda en yenilikccedili internet yaz l mlar konusunda uygulama yapmak isteyen yaz l m
uzmanlar na kaynak te kil edecek bir ccedilal ma gerccedilekle tirilmi tir Yaz l m geli tiricileri ve
yaz l m mimarlar AJAX Flash Flex Appletler ve di er teknolojileri uygulamalar na kolayca
entegre edebilirler
Bu tez ccedilal mas kapsam nda Web de Ajax Tekni inin Bant Geni lik Optimizasyonuna
Etkisi ba l kl bir makale haz rlanm t r [85] Bu makalede Web Performance Suite 355941
program yla AJAX n performans testi yap lm t r Bu oumllccediluumlmler sonucunda elde edilen de erler
goumlstermi tir ki bir ebeke uumlzerinden goumlnderilecek sinyalin en duuml uumlk ve en yuumlksek frekanslar
aras nda gereksiz yere kullan lan aral n optime edilmesinde AJAX etkili bir youmlntemdir
AJAX n ccedilal ma prensibi sayesinde uygulamalar en iyi performansla gerccedilekle tirilir
AJAX teknolojisinin hala geli imi devam etmekte oldu undan baz eksik yanlar da
bulunmaktad r Oumlrne in taray c
uumlzerindeki Geri
fonksiyonu bazen beklendi i gibi
ccedilal mayabilir Dinamik olarak olu turulan sayfalar taray c n n oumlnceden i ledi i sayfalar
youmlneten mekanizmalar na kendini otomatik olarak kaydetmez bu yuumlzden taray c n n Geri
tu una bas ld nda istenen sayfa elde edilemeyebilir [86] Ba ka bir dezavantaj ise AJAX ile
olu turulan iccedileri in kodlar kaynak kodlar k sm nda goumlruumllememektedir Ayn zamanda Google
ve Yahoo gibi arama motorlar n n Web sayfalar na goumlnderdi i robot yaz l mlar da bu kodlar
goumlrememektedir Dolay s yla tamamen AJAX ile olu turulan iccedilerik arama motorlar n n sonuccedil
sayfalar nda listelenmezler Guumlnuumlmuumlzde yap lan Web sayfas n n arama motorlar nda
goumlruumlntuumllenmesi oldukccedila oumlnemlidir Fakat bir Web uygulamas ziyaretccedililer hakk nda oumlnemli
ki isel bilgilere sahipse bu bilgilerin arama motorlar nda herkes taraf ndan goumlruumlntuumllenmesini
sa lamas bir avantaja doumlnuuml uumlr [87] AJAX yerinde ve do ru bir ekilde kullan ld nda
uygulamalarda performans art n sa lar
Bu tez ccedilal mas nda Web 20 ak m n n ortaya ccedil k nedenleri ve RIA konseptine
duyulan ihtiyac n temeli irdelenmi tir Web 20 ak m nda oumlne ccedil kan uygulamalar ve ccedilal ma
sistematikleri incelenmi tir Oumlne ccedil kan bu uygulamalar n site tasar m nda dikkat ccedileken
89
oumlzelliklerine de inilmi tir AJAX teknolojisini olu turan bile enler incelenmi tir Bu inceleme
ve ara t rma sonucunda zengin internet uygulamalar na oumlrnek te kil edecek Web 20 ak m n n
ccedilekirde i olan AJAX teknolojisi kullan larak F rat Uumlniversitesi iccedilin ccedilevrimiccedili bir katalog
tasarlanm t r Bu tasar mda flexBook flexbookpage landscape wrapper zoomer gibi ek
bile enler kullan lm t r Navigasyon paneli tasarlanm t r Olu turulan tasar mda yerli ve
yabanc literatuumlr taramas yap larak emsallerindeki kullan l oumlzellikler projeye dahil edilmi tir
Projenin geli tirilmesi s ras nda izlenen ad mlar resimlenerek ortaya bir yol haritas ccedil kar lm t r
61 Oumlneriler
Bu tez ccedilal mas esas al narak ileride bu uygulamalar mobil cihazlar arac l yla
kullan labilirli i uumlzerine ara t rmalar suumlrduumlruumllebilir AJAX n uumlstuumln oumlzellikleri sayesinde Web
uumlzerinden yay nc l k ve mobil ileti im alanlar farkl bir boyut kazanm t r Birccedilok irket art k
ta nabilir cihazlar iccedilin Web 20 uygulamalar n AJAX la optimize etmeye ba lam t r Yeni bir
teknoloji olan AJAX la ta nabilir cihazlardaki performans bellek youmlnetimi s n rl tu giri i
gibi sorunlar n uumlstesinden gelinmesi hedeflenmelidir
AJAX kullan larak IDE (Integrated Development Environment) entegrasyonu Eclipse
iccedilin ba lant lar yaz labilir veya yap m servisi arac l yla do rudan IDE den yap m paketleri
geli tirilebilir Guumlnuumlmuumlzde oldukccedila popuumller olan accedil k kaynak kodlu yaz l m geli tirme
ortamlar nda entegre uygulamalar geli tirilebilir
Kullan c Arabirimi aretleme Beti i (User Interface Markup Language) s n f na dacirchil
edilecek gelece in en popuumller web tabanl teknolojilerinden biridir Flex geli tiricileri Adobe
Flex Builder - IDE ortam nda LiveCycle Data Services Java Coldfusion ASPNET JSP PHP
gibi popuumller web programlama dilleri yard m yla etkile imli ve guumlvenli web tabanl projeler
geli tirilebilir [82]
90
KAYNAKLAR
1 nternet Web 20 httptrwikipediaorgwikiWeb_20 Eri im tarihi 03092008
2 Oumlzer Z Web Teknolojileri ve AJAX Seminer Ccedilal mas Fen Bilimleri Enstituumlsuuml sf2
2007
3 nternet Web 20 Nedir wwworeillynetcompubaoreillytimnews20050930what-is-
web-20html Eri im tarihi 04102008
4 nternet httpravenyoungspaceslivecomblogcns17376F4C11A91E0E3717entry
Eri im tarihi 03092008
5 Mcluhan M Povers B R Ccedileviren Bahar Oumlcal Duumlzgoumlren Global Koumly 21 Yuumlzy lda
Yeryuumlzuuml Ya am nda ve Medyada Meydana Gelecek Doumlnuuml uumlmler Scala Yay nc l k 2001
6 nternet RIA konsepti httpwwwademaktepecomGunlukDetayaspxId=122 Eri im
Tarihi 26062008
7 Onat F A man Ouml K l ccedil A Sosyal A Sitelerinin Reklam Ve Halkla li kiler Ortamlar
Olarak De erlendirilmesi Sayfalar 3-6 2008
8 nternet httpi8tinypiccom6kymb0kgif Eri im tarihi 11072008
9 nternet DFA httpwwwdoubleclickcomproductsdfaindexaspx Eri im tarihi
14022009
10 nternet Adsensecom
httpswwwgooglecomadsensesupportbinanswerpyanswer=9712amptopic=13488 Eri im
tarihi 15112008
11 nternet DoubleClickcom wwwdoubleclickcom Eri im 13102008
12 nternet Adsense ho geldiniz wwwgooglecomadsense Eri im 18112008
13 nternet Flicker Tan m httptrwikipediaorgwikiFlickr Eri im tarihi 09032009
14 nternet Flicker Foto raf Payla m Sitesi httpwwwflickrcom Eri im 18022009
15 nternet BitTorent httptrwikipediaorgwikiBitTorrent Eri im tarihi 05012009
16 nternet Bittorent kulan m rehberi httpwwwbittorrentcombtusersguidesbeginners-
guide Eri im tarihi 05012009
17 nternet Bittorent kullan m k lavuzu httpwwwshukkocombittorrent_kilavuzu Eri im
tarihi 05012009
18 nternet Bittorent ccedilal ma mant httpwwwforumelbizbittorent-nedirgne-ise-
yarargresimli-detayli-super-anlatim-
t12836htmls=17f7b3147d97799d31c32b09e87d43e4ampamp Eri im tarihi 05012009
19 nternet Soumlzluumlk
91
httpwwwparliamentvicgovauSARCE-DemocracyFinal_ReportGlossaryhtm Eri im
tarihi 05012009
20 FU F LIU L WANG L Empirical Analysis of Online Social Networks in the Age of
Web 20 2007 Physica A Statistical Mechanics and its Applications Volume 387 Issues 2-3
Sayfalar 675-684
21 nternet Facebook httptrwikipediaorgwikiFacebook Eri im tarihi 06012009
22 nternet Facebook makale httpturkinternetcomhaberyazigosterphp3yaziid=22787
Eri im tarihi 06012009
23 nternet Facebook istatistiksel bilgiler
httpwwwinsidefacebookcom20090107facebook-growth-continuing-surpasses-150-
million-monthly-active-users Eri im tarihi 06012009
24 nternet Peter Thiel Facebook haberleri
httpwwwbusinessweekcomtechnologycontentmar2009tc2009031_743025htm Eri im
tarihi 06012009
25 nternet Blog httptrwikipediaorgwikiBlog Eri im tarihi 13022009
26 nternet Technorati httptechnoratimediacom Eri im tarihi 13022009
27 nternet Blog ara t rmas httpwwwmmistanbulcommakaletitlebloglarin-satin-alma-
kararlarina-etkisi-uzerine-bir-arastirma Eri im tarihi 13022009
28 nternet Wiki nedir httpyunushacettepeedutr~b0343579baglantilerwikinedirhtm
Eri im tarihi 13022009
29 nternet nternette wikinin yeri
httpogrencihacettepeedutr~besstindexphp20080603internette-wikinin-yeri Eri im
tarihi 14022009
30 Bergstedt S Wiegreffe S Wittmann J Moller D Content Management Systems and e-
Learning-Systems
A Symbiosis Proceedings of the The 3rd IEEE International Conference
on Advanced Learning Technologies (ICALT 03)
31 nternet ccedilerik Youmlnetim Sistemleri
httptrwikipediaorgwikiC4B0C3A7erik_yC3B6netim_sistemi Eri im tarihi
17022009
32 nternet ccedilerik Youmlnetim Sistemleri httpwwwmsxlabsorgforuminternet-bilgisayar-
dunyasi22262-icerik-yonetim-sistemi-cms-content-management-systemhtml Eri im tarihi
17022009
33 nternet Web 20 Tasar m Araccedillar httpwwweburhancomhazir-web-20-tasarim-
araclari Eri im tarihi 06022009
92
34 nternet Tasar m rehberi httpwwwhasanyalcincomweb-20-tasarim-rehberi-yansima-
ikon-ve-flaslarref=GuzelsTV Eri im tarihi 06022009
35 nternet AJAX kaynak makalesi
httpadaptivepathcompublicationsessaysarchives000385php Eri im tarihi 06022009
36 Keith J Bulletproof Ajax New Riders yay nc l k Sayfa 3 2007
37 Zakas N C McPeak J Fawcett J Professional Ajax 2nd Edition Wiley Publishing Inc
Sayfalar 5-18 2007
38 Gehtland J Galbraith B Almaer D Pragmatic Ajax A Web 20 Primer The Pragmatic
Programmers LLC sf1 2005
39 Babin L Beginning Ajax with PHP From Novice to Professional Apress Yay nc l k
Sayfa 6 2007
40 Crane D B beault B Sonneveld J Goddard T Gray C Venkataraman R Ve Walker J
Ajax in Practice Manning Publications Co Sayfalar 56 2007
41 Eichorn J Understanding AJAX Using JavaScript to Create Rich Internet Applications
August 11 2006 Sayfalar5-50
42 Ballard P SAMS Teach Yourself Ajax in 10 Minutes Sayfalar 6-78 28 Nisan 2006
43 nternet httpwwwipucuwebtraspders17php Eri im tarihi
44 Ullman C Dykes L Beginnig AJAX Wiley Publishing Inc Sayfa 44-100 2007
45 Zakas N C McPeak J Fawcett J Professional Ajax Wrox Press Chapter 2 Ajax
Basics Ajax Communication Techniques 2006
46 nternet Cross-Browser (Ccedilapraz Taray c Deste i) httpblogceyhunaksancomcross-
browser-capraz-tarayici-destegi Eri im 11032009
47 nternet
httpwwwyazgelistirnetviewtopicphpp=160ampsid=a49d3c26dd8e14e02e65bb222d6bcc39
Eri im 31032009
48 Jacobi J Fallows J R Pro JSF and Ajax Building Rich Internet Components Apress
Sayfa 175 2006
49 Schutta N T Asleson R Pro Ajax and Java Apress Sayfa 10 2006
50 Lauriat S M Ajax Architecture and Best Practices Pearson Education Inc Sayfa 25
2008
51 Powers S Adding Ajax OReilly yay nc l k June 01 2007
52 nternet Asenkron ve Senkron Meselesi httpAJAX-trcomasenkron-ve-senkron-meselesi
Eri im tarihi 02112008
53 Holzner S Ajax For Dummies Wiley Publishing Inc sf 40 2006
93
54 nternet httpwwwecma-internationalorgpublicationsfilesECMA-STEcma-262pdf
Eri im tarihi 06032009
55 Darie C Brinzarea B Chereche -To a F Bucica M AJAX and PHP Building
Responsive Web Applications Packt Publishing Sayfa42 2006
56 Olson S D Ajax on Java OReilly Yay nc l k Chapter 2 February 23 2007
57 nternet httpiibferciyesedutrggwebjavascriptpdf Eri im tarihi 06032009
58 nternet httpwwwmutasyonnetkitaplarasp hakk oumlcal javascript ders notu sf8 Eri im
tarihi 06032009
59 nternet httpwwwbilgisayarogrencomjava5doc Eri im tarihi 06032009
60 Asleson R Schutta N T Foundations of Ajax 2006 sf29
61 Wells C Securing Ajax Applications O Reilly Media Inc sf86 July 2006
62 nternet httpwwww3schoolscomdomdom_introasp Eri im tarihi 19032009
63 nternet httpwwww3orgTRREC-DOM-Level-1introductionhtml Eri im tarihi
19032009
64 nternet httpwwwberkerpeksagcomblogdom-document-object-model-belge-nesne-
modeli Eri im tarihi 19032009
65 nternet httpwwwrssnedircomxml_nedirphp Eri im tarihi 19032009
66 Jacobs S Beginning XML with DOM and Ajax From Novice to Professional Apress
Yay nc l k sf2631 2006
67 nternet
httpwwwcclubmetuedutrnenedirXML+(Extensible+Markup+Language)+Nedir3F
Eri im tarihi 20032009
68 nternet httpbelgelerorgelkitabixmldoc-howto_structhtml Eri im tarihi 20032009
69 nternet httpwwwverivizyoncomdetailaspcid=149 Eri im tarihi 20032009
70 nternet httpwwwbilgisayardershanesicomxml1htm Eri im tarihi 21032009
71 Johnson D White A Charland A ENTERPRISE AJAX Strategies for Building High
Performance Web Applications Prentice Hall Yay nc l k Sayfa 108 2008
72 nternet httpwwww3orgTRxhtml1dtds Eri im tarihi 01042009
73 nternet httpwwwcsharpnedircommakalegosteraspMId=51 52 Eri im tarihi
01042009
74 nternet httpofficemicrosoftcomtr-trinfopathHP010967301055aspx Eri im tarihi
01042009
75 nternet
httpwwwkodpaylascomviewtopicphpt=959ampsid=e5167bdea935943ed9bbdc91ee218c53
Eri im tarihi 01042009
94
76 nternet httpwwww3schoolscomXhtml Eri im tarihi 02042009
77 nternet httpwwwzvonorgxxlXMLTutorialOutput_turexample6html Eri im tarihi
02042009
78 nternet httpwwwbidbituedutrd=837 Eri im tarihi 03042009
79 nternet httpwwwcssnedircom Eri im tarihi 03042009
80 nternet httptrwikipediaorgwikiXSLT Eri im tarihi 03042009
81 nternet httpwwwbilisim-kulubucomsozluksozlukphpe=XSLT Eri im tarihi
08042009
82 nternet httpwwwsanalkursnetadobe-flex-nedir--1081html Eri im tarihi 10042009
83 nternet httpwwwadobecomtrproductsflex Eri im tarihi 11042009
84 nternet httpwwwtrflexcomp=4 Eri im tarihi 11042009
85 Oumlzer Z Varol A Web de Ajax Tekni inin Bant Geni lik Optimizasyonuna Etkisi
Bilimde Modern Youmlntemler Sempozyumu 2008
86 nternet httptrwikipediaorgwikiAJAX(programlama) Eri im tarihi 01062009
87 nternet httpajax-trcomajaxi-anlamak Eri im tarihi 01062009
95
OumlZGECcedilM
Zeynep OumlZER AYDO MU
zeynep_ozermsncom
F rat Uumlniversitesi Teknik E itim Fakuumlltesi
Elektronik Bilgisayar E itimi Boumlluumlmuuml
ELAZI
1983 y l nda Elaz da do du lk orta ve lise ouml renimini Elaz da tamamlad ktan
sonra 2002 y l nda F rat Uumlniversitesi Teknik E itim Fakuumlltesi Elektronik Bilgisayar E itimi
Bilgisayar Ouml retmenli i Boumlluumlmuuml nuuml kazand 2006 y l nda bu boumlluumlmden mezun oldu 2006
y l nda F rat Uumlniversitesi Fen Bilimleri Enstituumlsuuml Elektronik Bilgisayar E itimi Ana Bilim Dal
Bilgisayar Sistemleri Bilim Dal nda yuumlksek lisans e itimine ba lad 2007 y l ubat ay nda
Elaz n Karakoccedilan ilccedilesinin Yenice koumlyuumlnde h J Kd Uumlt m Mahir Oumlzdemir lkouml retim
Okulu nda Bilgisayar Ouml retmeni olarak goumlreve ba lad uan Elaz Korgeneral Hulusi Say n
Lisesi nde Bilgisayar Ouml retmeni olarak goumlrevini suumlrduumlrmektedir Yabanc dili ngilizce dir
Fatih AYDO MU ile evlidir
96
EK
Katalog ccedilal mas n n uygulama dosyas olan catamxml kullanmxml ve
imagepagemxml dosyalar n n kaynak kodlar a a daki gibidir
Catamxml
ltxml version=10 encoding=utf-8gt
ltmxApplication xmlnsmx=httpwwwadobecom2006mxml
layout=absolute
xmlnscontrols=qscontrols
backgroundColor=FFFFFF
creationComplete=init() color=FFFFFF xmlnslocal= xmlnscomp=comp
horizontalScrollPolicy=off verticalScrollPolicy=off borderColor=050505 borderStyle=solid
borderThickness=2gt
ltmxStyle source=stylecss gt
ltmxScriptgt
lt[CDATA[
import mxutilsStringUtil
import mxrpcsoapLoadEvent
import mxcontrolsAlert
import mxrpceventsFaultEvent
import qscontrolsFlexBook
import qscontrolsflexBookClassesFlexBookPage
import qscontrolsflexBookClassesFlexBookEvent
import qscontrolsflexBookClassesWBookPageImpl
import qscachingContentCache
import mxrpceventsResultEvent
import mxrpchttpHTTPService
import mxcoreUIComponent
import mxmanagersPopUpManager
import compResimSec
import Kullan
import mxcoreScrollPolicy
import mxcollectionsArrayCollection
private var aXML
[Bindable]
private var resimlerArrayCollectioncomboresim
97
private var dataSetHTTPService
private var resimdiziArray=new Array()
private var zoomYapBoolean=false
private function init()void
maskex=0
maskey=0
maskewidth=applicationwidth2
maskeheight=applicationheight-40
addEventListener(MouseEventMOUSE_MOVEmaskele)
addEventListener(tamam sayfa_secildi)
dataSet = new HTTPService()
dataSeturl = (dataimagesxml)
dataSetresultFormat = e4x
dataSetsend()
dataSetaddEventListener(FaultEventFAULT onFault)
dataSetaddEventListener(ResultEventRESULT onResult)
var wNumber=new Number
var hNumber=new Number
w=Applicationapplicationwidth
h=Applicationapplicationheight
bookwidth=w
bookheight=h-40
yuklemevisible=false
yuklemesource=assetsloadinggif
yuklemeaddEventListener(EventCOMPLETEyukleme_yuklendi)
private function yukleme_yuklendi(eventEvent)void
yuklemex=(applicationwidth2)-100
yuklemey=(applicationheight-40)2
private function maskele(eMouseEvent)void
if(zoomYap)
98
if((mouseXgt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) )
maskex=0
img2visible=false
img1visible=true
img1x=(applicationwidth2)-mouseX
img1y=-1mouseY
else if((mouseXlt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) )
maskex=applicationwidth2
img1visible=false
img2visible=true
img2x=-1mouseX
img2y=-1mouseY
maskex=mouseX
maskey=mouseY
private function onFault(eEvent)void
trace(e)
private function onResult(eResultEvent)void
a=new XML(eresult)
bookcontent = dataSetlastResultimage
bookaddEventListener(FlexBookEventTURN_STARTloadContent)
bookaddEventListener(FlexBookEventTURN_ENDloadContent)
private function sayfa_secildi(eventResimSec)void
99
sayfatext=eventyeniResim
git()
mxcontrolsAlertshow(sseventyeniResim)
private function loadContent(eventFlexBookEvent)void
setGorunum()
var pageImagePage = ImagePage(eventrenderer)
pageload()
sayfatext=(bookcurrentPageIndex2)toString()
resimdizi[bookcurrentPageIndex]=pagethumbsource
mxcontrolsAlertshow(bookcurrentPageIndextoString())
private function buyuk1_yuklendi(eventEvent)void
yuklemevisible=false
img1width=applicationwidth
img1height=(applicationheight-40)2
img1x=0
img1y=0
private function buyuk2_yuklendi(eventEvent)void
yuklemevisible=false
img2width=applicationwidth
img2height=(applicationheight-40)2
img2x=0
img2y=0
private function tumsayfalar()void
Kullanshow_window(thisfalseapplicationwidth-10(applicationheight-60)2)
customMoveend()
customMoveplay()
private function zoom()void
if(zoomerlabel==+)
zoomerlabel=-
if(img2source=aimage[bookcurrentPageIndex2]zoom)
yuklemevisible=true
img2addEventListener(EventCOMPLETEbuyuk2_yuklendi)
100
img2source=aimage[bookcurrentPageIndex2]zoom
if(aimagelength()gtbookcurrentPageIndex2+1)
img1addEventListener(EventCOMPLETEbuyuk1_yuklendi)
img1source=aimage[bookcurrentPageIndex2+1]zoom
zoomYap=true
else if(zoomerlabel==-)
zoomerlabel=+
setGorunum()
private function setGorunum()void
zoomYap=false
zoomerlabel=+
img1visible=false
img2visible=false
private function next()void
mxcontrolsAlertshow(bookcurrentPageIndextoString() bookpageCounttoString())
if(bookcurrentPageIndex+1 lt bookpageCount)
mxcontrolsAlertshow(--resimdizi[bookcurrentPageIndex])
setGorunum()
bookturnToPage(bookcurrentPageIndex + 1)
private function previous()void
if(bookcurrentPageIndex gt 0)
setGorunum()
bookturnToPage(bookcurrentPageIndex -1)
private function git()void
var s_nouint = new uint
s_no=Mathfloor(uint(sayfatext)2)
101
if(s_nogt0 ampamp s_noltbookpageCount)
bookturnToPage(s_no)
setGorunum()
]]gt
ltmxScriptgt
lt-- 614x453 --gt
ltmxParallel id=customMove target=Kullangt
ltmxMove duration=2000 xTo=(100) 2 yTo=(200) 2 gt
ltmxWipeRight duration=2000 gt
ltmxParallelgt
ltmxVBoxgt
ltmxHBoxgt
ltcontrolsFlexBook id=book width=100 height=100 x=0 y=0 horizontalCenter=0
verticalCenter=0
animateCurrentPageIndex=true
showCornerTease=false
edgeAndCornerSize=150
itemRenderer=ImagePage
animatePagesOnTurn=true
itemSize=halfPage cornerRadius=0 themeColor=1D99E8
backgroundAlpha=10 alpha=10gt
ltcontrolsFlexBookgt
ltmxHBoxgt
ltmxHBox height=30 width=100 verticalAlign=middle
horizontalAlign=center color=B65F5F backgroundColor=121313gt
ltmxSpacer width=10gt
ltmxSpacergt
ltmxTextInput borderColor=FFFFFF width=34 height=24 id=sayfa
color=FFFFFF fontSize=11 text=0 alpha=001gt
ltmxButton click=git() color=ffffff fontWeight=bold fontSize=11
width=114 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label=Sayfaya Git themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxSpacer width=60gt
102
ltmxSpacergt
ltmxButton click=previous() color=ffffff fontWeight=bold fontSize=11
width=70 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label=Geri themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxButton click=next() color=ffffff fontWeight=bold fontSize=11
width=70 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label= leri themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxButton click=tumsayfalar() color=ffffff fontWeight=bold fontSize=11
width=134 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label=Tuumlm Sayfalar themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxButton id=zoomer click=zoom() color=ffffff fontWeight=bold
fontSize=14 width=44 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00
00] label=+ themeColor=EDF2F5 textRollOverColor=EDD617 fontFamily=Arialgt
ltmxSpacer width=5gt
ltmxHBoxgt
ltmxSpacer height=10gt
ltmxVBoxgt
ltmxCanvas id=maske x=224 y=168 width=200 height=168
verticalScrollPolicy=off horizontalScrollPolicy=off borderThickness=0 borderColor=000000
borderStyle=solidgt
ltmxImage id=img1 x=0 y=0gt
ltmxImage id=img2 x=40 y=0gt
ltmxCanvasgt
ltmxImage x=10 y=144 id=yuklemegt
ltmxApplicationgt
103
Kullanmxml
ltxml version=10 encoding=utf-8gt
ltmxTitleWindow xmlns= xmlnsmx=httpwwwadobecom2006mxml
creationComplete=on_creation_complete()
styleName=popupWindow showCloseButton=true
paddingBottom=0 paddingTop=0 paddingLeft=0 paddingRight=0
height=200 width=100 alpha=09 borderAlpha=1gt
ltmxScriptgt
lt[CDATA[
import mxcontrolsAlert
import mxcollectionsArrayCollection
import mxrpceventsResultEvent
[Bindable]
private var sayfalarArrayCollection
[Bindable]
private var introString =
import mxeventsCloseEvent
import mxmanagersPopUpManager
import mxcoreApplication
import mxeventsDragEvent
import mxmanagersDragManager
import mxcoreDragSource
import compResimSec
import koraxcontrolsColorPickerResimSecEvent
private var m_parentDisplayObject = null
private function myResult(eventResultEvent)void
sayfalar = eventresultsayfalarsayfa
private function sayfaac(eventEvent)void
wndwith_last_preved()
mxcontrolsAlertshow(myTileselectedItemgittoString())
uyeler = eventresultsayfalarsayfa
104
private function on_creation_complete()void
myHTTPsend()
private static var wndKullan = null
public static function show_window(parentDisplayObject
modalBooleanwNumberhNumber)void
if (wnd == null)
wnd = new Kullan()
wndaddEventListener(mxeventsCloseEventCLOSE on_close_event)
wndm_parent = parent
if (wndisPopUp)
PopUpManageraddPopUp(wnd DisplayObject(Applicationapplication) modal)
PopUpManagercenterPopUp(wnd)
else
PopUpManagerbringToFront(wnd)
wndstart_init()
wndx=0
wndy=0
wndwidth=w
wndheight=h
wndmyTilewidth=w-20
wndmyTileheight=h-40
private function with_last_preved()void
if (m_parent = null) m_parentdispatchEvent(new ResimSec(tamam
myTileselectedItemgit))
private static function on_close_event(eventCloseEvent)void
if (wnd == null) return
PopUpManagerremovePopUp(wnd)
wnd = null
105
private function yardim()void
Kullanshow_window(thisfalse)
]]gt
ltmxScriptgt
ltmxHTTPService id=myHTTP url=dataonizlexml
result=myResult(event) showBusyCursor=truegt
ltmxTileList id=myTile dataProvider=sayfalar change=sayfaac(event)
itemRenderer=compUyeSayfasi width=100 height=147 rowHeight=110 columnWidth=120
rowCount=2gt
ltmxTitleWindowgt
106
ImagePagemxml
ltxml version=10 encoding=utf-8gt
ltmxCanvas xmlnsmx=httpwwwadobecom2006mxml width=600 height=400
xmlnscontrols=qscontrols
backgroundColor=FFFFFF horizontalScrollPolicy=off verticalScrollPolicy=offgt
ltmxstatesgt
ltmxState name=loadingStategt
ltmxAddChild position=lastChildgt
ltmxImage id=loadingContent horizontalCenter=0 verticalCenter=-6
source=assetsloadinggif gt
ltmxAddChildgt
ltmxStategt
ltmxstatesgt
ltmxtransitionsgt
ltmxTransition fromState= toState=loadingStategt
ltmxFade alphaTo=1 target=loadingContent duration=1000gt
ltmxTransitiongt
ltmxTransition toState= fromState=loadingStategt
ltmxSequencegt
ltmxFade alphaTo=0 target=loadingContent duration=1000gt
ltmxRemoveChildAction target=loadingContent gt
ltmxSequencegt
ltmxTransitiongt
ltmxtransitionsgt
ltmxScriptgt
lt[CDATA[
import mxcontrolsAlert
private var _loadedBoolean = false
public function load()void
if(_loaded)
return
_loaded = true
fullsource = datasourcetoString()
mxcontrolsAlertshow (fullsource)
107
currentState = loadingState
]]gt
ltmxScriptgt
ltcontrolsSuperImage left=0 right=0 top=0 bottom=0 id=thumb
source=datathumbtoString() gt
ltcontrolsSuperImage left=0 right=0 top=0 bottom=0 id=full complete=currentState = gt
ltmxCanvasgt
This document was created with Win2PDF available at httpwwwwin2pdfcomThe unregistered version of Win2PDF is for evaluation or non-commercial use onlyThis page will not be added after purchasing Win2PDF
VII
KISALTMALAR L STES
AJAX Asenkron JavaScript ve XML
API Application Programming Interface (Uygulama Program Arayuumlzuuml)
ASP Active Server Pages (Aktif Sunucu Sayfalar )
CDNs Content Distributed Networks ( ccedilerik Da t c A lar)
CMS Content Management System ( ccedilerik Youmlnetim Sistemi)
CGI Common Gateway Interface (Genel Geccedili Arayuumlzuuml)
CSS Cascading Style Sheets (Basamakl Stil Sayfalar )
DFA DART for Advertisers
DOM Document Object Model (Doumlkuumlman Nesne Modeli)
DTD The Document Type Definition (Dokuumlman Tipi Tan mlama)
DWR Direct Web Remoting ( Direkt Web Eri imi)
ECMA European Computer Manufacturers Association (Avrupa Bilgisayar
Uumlreticileri Birli i)
GOumlBL GNU Oumlzguumlr Belgeleme Lisans
HTML Hyper Text Markup Language (Yard ml Metin aretleme Dili)
HTTP Hypertext Transfer Protocol (Yard ml Metin Aktar m Protokoluuml)
IDE Integrated Development Environment (Tuumlmle ik Geli tirme Ortam )
JSP Java Server Pages (Java sunucu Sayfalar)
LAN Local Area Network (Yerel Alan A )
MIYS E-ticaret ve Muuml teri li kileri Youmlnetim Sistemleri
MSN Microsoft Network
OOP Object Oriented Programming (Nesne Youmlnelimli Programlama)
PHP Hypertext Preprocessor (Yard ml Metin Oumlni leme)
PIs Processing Instructions ( lem Accedil klamalar )
RIA Rich Internet Applications (Zengin nternet Uygulamalar )
VIII
RPC Remote Procedure Call (Uzaktan Yordam Ccedila rma)
SAX Simple API for XML (XML iccedilin Basit API)
WIKI What I Know is (Ne Biliyorsam)
W3C World Wide Web Consortium (Duumlnya Ccedilap nda A Birli i)
XML eXtensible Markup Language (Geli tirilebilir aretleme Dili)
XHR XMLHttpRequest
XHTML Extensible HyperText Markup Language (Geli tirilebilir Yard ml Metin
aretleme Dili)
XSD eXtensible Schema Document(Geni letilebilir ema Dokuumlman )
XSL Extensible Stylesheet Language (Geli tirilebilir Biccedilimlendirme Dili)
XSLT Extensible Stylesheet Language Transformations (Geli tirilebilir
Biccedilimlendirme Dil Doumlnuuml uumlmleri)
IX
OumlZET
Yuumlksek Lisans Tezi
AJAX TEKNOLOJ S KULLANARAK CcedilEVR M Ccedil
KATALOG TASARIMI
Zeynep OumlZER AYDO MU
F rat Uumlniversitesi
Fen Bilimleri Enstituumlsuuml
Elektronik-Bilgisayar E itimi Anabilim Dal
2009 Sayfa 107
Gerccedilekle tirilmi olan bu uygulama kapsam nda Flex program ve Web 20 n
ccedilekirde ini olu turan AJAX (Asynchronous JavaScript and XML) teknolojisi kullan larak F rat
Uumlniversitesini tan tan kolayl kla guumlncellenebilen Zengin nternet Uygulamalar na (RIA- Rich
Internet Applications) oumlrnek bir ccedilevrimiccedili katalog tasar m ve gerccedilekle tirimi yap lm t r
Projenin gerccedilekle tirim a amalar nda kullan lan teknolojilerin ve izlenen youmlntemlerin
anlat mlar n iccedileren bir yol haritas olu turulmu tur
Anahtar soumlzcuumlkler AJAX RIA Web 20 ccedilevrimiccedili katalog e-dergi
X
ABSTRACT
Master Thes s
ONLINE CATALOG DESIGN USING AJAX TECHNOLOGY
Zeynep OumlZER AYDO MU
F rat University
Graduate School of Natural and Applied Sciences
Department of Electronic and Computer Education
2009 Page 107
Embracing in this comparison F rat University is introduced by using Flex program and
AJAX (Asynchronous JavaScript and XML) technology which forms Web 20 Also RIA (Rich
Internet Applications) is easily renowated which is instance for online catalog design A road
map including realization of the project and tracing methods are illustrated
Keywords AJAX RIA Web 20 online catalog e-journal
1
1 G R
Web in geli im suumlrecinde ccedile itli youmlntemler kullan l r Bu youmlntemlerin farkl amaccedillara
hizmet etmeye ba lamas yla Web te ak mlar meydana gelmi tir Bu ak mlardan ilki Web 10
ak m olarak adland r l r Bu ak mda kullan c lar bilgilendirmeye youmlnelik iccedilerik sunumu
yap lmaktad r [1]
Web 20 ak m ise internet sitelerinin bilgi bar na olmas ndan i leyen platformlara
ta nmas
olarak tan mlanabilir Web 20 RIA (Rich Internet Applications- Zengin nternet
Uygulamalar ) i lemleri internet sunucu mimarisi temeline dayanmaktad r RIA da beraberinde
kulland AJAX Flex gibi teknolojiler uumlzerine kuruludur [1]
Baz yeni teknolojilerle de i en World Wide Web duumlnyas Web 20 RIA AJAX
(Asynchronous JavaScript and XML- E zamanl olmayan JavaScript ve XML) terimleriyle izah
edilmektedir
11 Tez Ccedilal mas n n Amac
Bu tez ccedilal mas yla Web 20 n ccedilekirde ini olu turan AJAX (Asynchronous JavaScript
and XML) teknolojisi ve Flex program kullan larak F rat Uumlniversitesini tan tan kolayl kla
guumlncellenebilen Zengin nternet Uygulamalar na (RIA-Rich Internet Applications) oumlrnek bir
ccedilevrimiccedili (online) katalog tasar m yap lmas hedeflenmi tir Projenin gerccedilekle tirim
a amalar nda kullan lan teknolojilerin ve izlenen youmlntemlerin anlat mlar n iccedileren bir yol
haritas olu turulmas amaccedillanm t r Bu tez ccedilal mas sonucunda geli tirilen yaz l mla kolay
guumlncellenebilen katalog haz rlanmas na katk sa lanmas amaccedillanm t r
12 Tez Ccedilal mas n n Kapsam
Bu tez ccedilal mas 6 boumlluumlmden olu mu tur 1 Boumlluumlm giri i olu turmaktad r 2Boumlluumlmde
Web 20 ak m incelenecektir 3 Boumlluumlmde AJAX teknolojisi accedil klanacakt r 4 Boumlluumlmde
yaz l m gerccedilekle tirme arac olarak kullan lan Flex tan t lacakt r 5 Boumlluumlmde gerccedilekle tirilmi
ccedilevrimiccedili katalog hakk nda bilgi verilecektir 6 Boumlluumlmde ccedilal man n sonuccedillar
ve gelece e
youmlnelik oumlneriler bulunmaktad r
2
2 WEB 20 AKIMI
Ccedilo u teknolojilerde oldu u gibi yenilik aray ihtiyaccediltan do ar Yeni Web ak mlar n n
do u u da 2001 y l ndaki tuumlm duumlnyay etkileyen kriz sonras nda iflas eden irketlerin yeniden
aya a kalkma ccedilabalar n n bir sonucu olarak ortaya ccedil km t r [2 3] Web 20 ak m 2005 te ilk
kez OReilly ve MediaLive International aras nda gerccedilekle en bir beyin f rt nas s ras nda
uumlretilmi bir kavramd r [3] Web 20 kavram World Wide Web teknolojisinde kullan lan
de i en ve geli en e ilimlere verilen bir ad olarak da tan mlanabilmektedir
ekil 21 Web 20 kavram
[4]
Web 20 kavram ekil 21 de goumlsterildi i uumlzere Web bir uygulama platformu ve sosyal
etkile imli olma oumlzelliklerini bar nd r r Ccedilevrimiccedili hayat n ba lang c ve devam n temsil eder
Say sal ortamda kendini ifade etme imkacircn sunar Kullan c lar (oku-yaz oumlzelli i ile) Web te
kat l mc kimlik kazan r
Asl nda Web 20 ortam n 1964 y l nda McLuhan Global Koumly terimini kullanarak
ortaya atm t r McLuhan Global Koumlyuuml gelecekte ileri teknolojiye geccedililmesiyle ve toplumlar
aras nda s n rlar n kalkmas yla duumlnyan n her kouml esinde teknolojiyi kullanan herkesin co rafi
s n rlar ve s n rlamalar olmaks z n diledikleri ki iyle ileti im kurabilecekleri
haberle ebilecekleri ve payla mda bulunabilecekleri bir ortam olarak tan mlam t r [5]
Mc Luhan n n tan m ndan guumlnuumlmuumlze kadar geccedilen suumlreccedil iccedilinde kullan c ihtiyaccedillar
da
de i im ve geli im goumlstermi tir Bu ihtiyaccedillar kar lamak iccedilin genel olarak internet
uygulamalar n n daha zengin bir arayuumlz ile sunulmas n sa layan uygulamalar Zengin nternet
Uygulamalar ad alt nda k sa zaman oumlnce hayat m za girmi tir
RIA uygulamalar s radan HTML web uygulamalar ile standart masauumlstuuml uygulamalar
aras ndaki bo lu u dolduran bir geli tirme platformudur Web arayuumlzuumlnde basit HTML ile
3
s n rl kalmadan masauumlstuumlndeki zengin goumlrsel ouml eleri program niteli inde kullanabilecek her
tuumlrluuml araccedil RIA konseptini uygulamaktad r [6]
Kullan c lar art k iccedilerik uumlreticilerin s n rlar n kald rarak kullan c n n yan s ra kat l mc
olarak ta nitelendirilerek etkile imli bir rol uumlstlenmi lerdir nternetin bu yeni gereksinimlere
cevap vermesiyle ortaya ccedil kan Web 20 doumlnuuml uumlmuuml hem kullan c say s nda art a neden
olmu tur hem de kullan c lar n iccedilerikleri yani mesajlar olu turdu u ve payla t buumlyuumlk bir
guumlce doumlnuuml muuml tuumlr Bu guumlcuumln oumlnemini ccedilabuk anlayan kurulu lar mimarilerine AJAX da dacirchil
ederek oumlnce arama motorlar n Google Yahoo yu daha sonra MSN yi Hotmail i bloglar
(Myspace Bloggercom Blogcucom gibi) Youtube u Wikileri ve sosyal a sitelerini
(Facebook Twitter Orkut vb) ke fetmi lerdir Bu ke iflerin sonucunda McLuhan n Global
Koumly uumlnuumln 21 Yuumlzy lda tam olarak gerccedilekle ti i soumlylenebilir Bu interaktif siteler sayesinde
ayn anda milyarlarca ki inin rk dil din ya am tarz e itim ya cinsiyet statuuml goumlzetmeksizin
e zamanl payla mda bulunup kendi ccedilevreleri ve ba ka ccedilevrelerle ileti ime geccedilebilmektedirler
ekil22 de goumlsterilen irketler Web 20 ak m nda oumlne ccedil kan sitelerin oumlzellikle ccedilevrimiccedili
faaliyet goumlsteren reklacircm irketleri pazarlama ve ticari irketler perspektifinden bak ld nda da
oumlnemli bir potansiyele sahip kitle ileti im araccedillar olarak goumlruumlluumlr [7]
ekil 22 Web 20 ak m nda oumlne ccedil kan uygulamalar [8]
Kitle ileti im arac olarak kullan labilen bu uygulamalar iccedilin birccedilok geli tirme ortam
mevcuttur Adobe Flex AJAX Java Applet Adobe Flash ve Microsoft Silverlight uygulamalar
en ccedilok bilinen RIA uygulamalar d r A a da da bu uygulamalarla olu turulmu Web 20
platformunda oumlne ccedil kan popuumller uygulama oumlrnekleri incelenecektir [7]
4
21 Web 20 Platformunda Oumlne Ccedil kan Popuumller Uygulamalar
kinci nesil internet hizmeti olarak literatuumlre giren Web 20 ak m yla internet sitelerinin
ccedilehresi de i mi tir nternet siteleri art k masauumlstuuml uygulamalar ile internet uygulamalar
aras nda bir koumlpruuml goumlrevi uumlstlenmi tir A a da bu ak m n popuumller uygulamalar ndan oumlrnekler
bulunmaktad r
211 Double Click - Google AdSense
Google firmas na ait iki uygulama da reklacircm verenlerin ve yay nc lar n web uumlzerinden
reklacircm hizmeti sunmas n sa layan sitelerdir Her reklacircmc n n hedefi tuumlketicilerin isteklerine
uygun ccediloumlzuumlmler sunmakt r Bu ccediloumlzuumlm ise Web 20 la reklacircmlar n profilini de i tirmi tir Art k
istenmeyen kendili inden accedil lan reklacircm pencerelerinin yerini kullan c n n bilgisayar na
yerle tirilmi ccedilerezlerden ccedilekti i bilgilere dayanarak kullan c n n ilgisini ccedilekebilece ini tahmin
etti i rahats z edici olmayan metin ya da resim tabanl
reklacircmlar alm t r
DoubleClick in di er reklacircm firmalar ndan ayr lan youmlnuuml reklacircmc lar iccedilin DART
oumlnerisiyle k saca DFA (DART for Advertisers) ile reklacircm youmlnetimi ve servis ccediloumlzuumlmlerinde
kullan c lar na dijital pazarlama programlar n n tuumlmuumlnuuml kapsayan youmlnetimi kolay daha iyi bir
arayuumlze sahip h zl geni bir arama sistemine sahip de eri artan sitelerin trafik ak n
belirleyen bir ccediloumlzuumlm olmu tur DoubleClick daha ccedilok grafiksel reklacircmlar yay nlamaktad r
Oumlnceleri Web 10 uygulamalar aras nda say lan bu site Web 20 doumlnuuml uumlmuumlnuuml ba ar yla
gerccedilekle tirmi tir [9]
Google AdSense ise web sitesi yay nc lar n n site iccedileri iyle alakal dinamik ve goumlze
batmayan Google reklacircmlar n
web sitelerinde goumlstererek kullan c lar n bu reklacircmlara
t klamalar yla para kazanmalar n sa laman n h zl ve kolay bir yoludur Uumlcretsiz olan bu
program sayesinde her t klama ve goumlsterim iccedilin site sahiplerine oumldeme yap l r [10] Bu
uygulamalar sayesinde Web de daha ak ll bir sisteme do ru youmlnelim ba lam t r
ekil 23 Doubleclick ve Google Adsense sitelerinin logolar [11 12]
5
212 Flickr
Yahoo nun sundu u bir hizmet olan uumlcretsiz foto raf arama ve payla m sitesi Flickr
ayn zamanda web servisi ve ccedilevrimiccedili topluluk platformudur Web 20 n ilk uygulamalar ndan
biridir Foto raf payla m nda en popuumller sitelerin ba nda gelmektedir ccedileri inde yakla k
olarak 3 milyar
a an foto raf bulunmaktad r Yenilikccedili ccedilevrimiccedili topluluk araccedillar foto raflar
etiketlemeye ve s n fland rmaya yard mc olur Bu da popuumllaritesindeki ciddi art n
nedenlerinden biridir
Flickr a imaj yuumlkleyebilmek iccedilin Yahoo dan bir e-mail adresiyle sisteme giri
yap lmal d r Payla lmak istenen foto raflar uumlcretli uumlyelik olmadan her imaj iccedilin 5 Mb l k
s n rlamayla ayda toplam 100 Mb a kadar yuumlkleme yap labilir Sadece foto raf eklemenin
d nda imajlar uumlzerinde duumlzenlemeler yap labilir Belirlenen alanlara notlar eklenebilir
Be enilen foto raflara yorumlar eklenebilir Ccedile itli gruplara uumlye olunup ileti im kurulabilir
Ayr ca API leri sayesinde XML-RPC (Remote Procedure Call- Uzaktan Yordam Ccedila rma)
arabirimi kullanarak flickr sitesindeki foto raflarla ilgili bilgileri proseduumlrler sayesinde XML
format nda al p ayr t rarak ba ka bir programda kullan labilinir Flickr daki blog grup ve
etiketleme alt yap s bu API lere dayanmaktad r [13]
ekil 24 Flickr sitesinin logosu [14]
213 BitTorrent
BitTorrent internet uumlzerinden yuumlksek h zlarla iccedileri in da t ld duumlnya ccedilap nda bir
standartt r Ayr ca 150 milyondan fazla kullan c ya sahip en son p2p (peer to peer) dosya
payla m youmlntemlerinden biridir Di er p2p payla m programlar ndan fark sabit olmayan
ba ms z sunucu tan mlama dosyalar sayesinde sabit bir sunucuya ihtiyaccedil olmaks z n belirli bir
protokol ccedilerccedilevesinde indirme (download) yaparken yuumlkleme (upload) yap lmas na da izin
vererek payla ma devam edebilmesidir [15]
Python programlama diliyle yaz lm bir uygulamad r [15]
ekil 25 ccedilerik da t m sitelerinde bittorrent site logosu [16]
6
Bit Seli olarak da ccedilevirebilece imiz ccedilok h zl bir sistemdir BitTorrent sayesinde
oldukccedila buumlyuumlk boyutlu videolara ses ya da yaz l m dosyalar na daha h zl daha ucuz ve daha
kolay bir ekilde ula labilmeyi sa lar
Guumlnuumlmuumlzde ccedilerik Da t c A lar (Content Distributed Networks-CDNs) guumln geccediltikccedile
popuumllaritesini art rmaktad r Bittorent kullan m n n 2004 te internet te teknik standartlar ve
youmlnetim konusunda yetkili organ olan W3C (World Wide Web Consortium - Duumlnya Ccedilap nda
A Birli i) taraf ndan yap lan bir ccedilal maya goumlre P2P ba lant lar n toplamda 60 n tuumlm
internet trafi inin ise 30 unu a aca tahmin edilmektedir
BitTorrent le dosya transferi yap l rken oumlncelikle bilgisayarda BitTorrent stemci
(Client) yuumlkluuml olmal d r stemci yaz l mlara oumlrnek Flashget Azureus BitTorrent Torrent
ABC LimeWire vb yaz l mlar olabilir ekil 26 ve ekil 27 de en popuumller uygulamalardan
Torrent yaz l m n n kurulum ve arayuumlz oumlrne i goumlruumllmektedir
ekil 26 Torrent program n n anasayfas
7
ekil 27 Torrent program n n arayuumlzuuml
BitTorrent istemciler BitTorrent Protokol uygulamalar n yapar Her istemci bu
protokoluuml kullanarak dosyalar n kullan c lar n BitTorent in kulland protokole sahip
duumlnyadaki tuumlm iccedileriklere h zl ve guumlvenilir bir ekilde eri mesine izin verir stenilen iccedileri in
indirilebilmesi iccedilin gerekli tan mlama bilgilerinin bar nd
torrent uzant l bir dosyaya
ihtiyaccedil vard r Bu torrent dosyalar n ccedile itli duyuru sitelerinden ya da Web den temin edildikten
sonra istemciler yukar da bahsedilen herhangi bir torrent yaz l m kullanarak bu dosyay accedilarlar
ndirme ba lad anda indirilmek istenen dosyay payla an kullan c lar n olu turdu u kuumlccediluumlk
a a (swarm) dacirchil olurlar Bu kuumlccediluumlk a daki her kullan c dosyan n indirdi i boumlluumlmuumlnuuml di er
kullan c larla payla mas gerekir Tuumlm bu i lemleri de takipccedili (tracker) isimli bir sunucu kontrol
eder Yakla k olarak 256 Kb buumlyuumlkluuml uumlndeki bu kuumlccediluumlk boyutlu dosyalara indeksleyici
(indexer) de denmektedir Kuumlccediluumlk bir a
kurulmas iccedilin tuumlm dosyaya sahip en az bir da t c n n
(seeder) olmas gerekir Da t c lar herhangi bir dosyay yuumlkleyen kaynaklard r O dosyan n
tamam n
kendi bilgisayar na indiren her kullan c art k bir da t c
olur Fakat da t c olmak
kullan c lar n insiyatifindedir ndirme i lemi bittikten sonra o dosya payla ma accedil k tutulmazsa
di er kullan c lar da t c dan bu dosyay ccedilekerek indirme i lemini h zland ramazlar Da t c
say s
ne kadar artarsa indirme i lemi o kadar h zl olur ndirme yapan kullan c lara da grup
uumlyeleri (peers) denilmektedir Torrent dosyas n indiren kullan c lar izleyicilere (tracker) dosya
hakk nda bilgi goumlnderirler di er kullan c lar (peers) ise izleyicilere ba lanarak kimde hangi
dosyan n hangi parccedilalar n n oldu unu ouml renirler zleyiciler uumlzerinden kesinlikle dosya transferi
8
gerccedilekle mez sadece kaynak payla l r Hangi kullan c ne kadar dosya ccedilekti ve ne kadar
yuumlkledi gibi istatistiksel bilgileri de bar nd rabilir [16 17]
Sadece indirme i lemi yap p kaynak olmay istemeyen ki ilere leecher (suumlluumlk) denir Bu
anlay a sahip ki iler gruplar iccedilinde ho kar lanmazlar Bir torrent dosyas payla m nda
kaynak (seed) say s s f r ise yani dosyan n tamam na sahip ki iler payla mdan ccedilekilmi lerse
eksik dosyaya sahip buumltuumln uumlyeler (peer) birbirleri aras nda veri al veri i yaparak eksik
parccedilalar indirebilecekleri bir kaynak olmad ndan belli bir yuumlzdesi tamamlanm dosyaya
sahip olarak kal rlar Bu durumda daha oumlnce dosyay indirmi ve dosyan n tamam na sahip olan
bir kullan c
eksik parccedilalar goumlndermek iccedilin dosyay yeniden payla ma accedilabilir (seed eder) Bu
olaya reseed etme denir [18]
214 Sosyal A Siteleri
Sosyal a lar bireyler aras ndaki ki isel veya profesyonel ili kilerin olu turuldu u
duumlzenlendi i a d r [19] Son y llardaki bilgi teknolojilerindeki geli meler sosyal a lar n gerccedilek
ya amdakinden daha farkl bir ekilde yeniden yap lanmas n
sa lam t r Herhangi bir
irketteki yerel a iccedilinde personelin e-posta al p-goumlndermesiyle olu an etkinlik ve e-posta
gruplar ilk ccedilevrimiccedili sosyal a oumlrneklerinden say labilir Daha sonra h zla hayat m za giren
bloglar wikiler ve sosyal a siteleri gibi sosyal i birli i sa layan teknolojilerin geli mesi
insanlar n ileti im kurduklar bilgi resim muumlzik video payla t klar ve birbirleriyle suumlrekli
haberle tikleri ccedilevrimiccedili sanal topluluklar n olu mas n sa lam t r [20] Bu topluluklar n h zla
yay lmas n n temelinde kullan c lar n bireysel aktivitesine ba l olarak duygu ve duuml uumlncelerini
bilgiyi guumlncel haberleri tavsiyelerini be enilerini payla ma fikri vard r A a da sosyal a
sitelerinden en popuumller olanlar iccedilinde yer alan Facebook incelenecektir [7]
2141 Facebook
En yayg n sosyal a sitesi Facebook Amerika Birle ik Devletleri nde 4 ubat 2004
tarihinde Harvard Uumlniversitesinde ouml renci Mark Zuckerberg taraf ndan kurulmu tur Facebook
oumlncelikle Harvard ouml rencileri iccedilin kurulmu tu Daha sonra h zla tuumlm duumlnyaya yay lm t r
Kullan c lar siteyi uumlcretsiz uumlye olarak kullanabilmektedir Site gelirini banner reklamlar ndan ve
sponsor gruplar ndan almaktad r Duumlnyan n en popuumller Web 20 blogu TechCruncha goumlre
Amerika Birle ik Devletleri ndeki uumlniversitelerdeki ouml rencilerin 85inin facebookda bir
hesab bulunmakta ve bunlar n 60 her guumln ba lanmaktad r 85 her hafta 93 her ay
ba lananlar aras ndad r [21] Facebook sitesinden ba ms z Web 20 ak m n yak ndan takip
9
eden bir blog sitesi olan insidefacebook 2009 Ocak ay n n ba nda yay nlad habere goumlre
facebook kullan c say s a a daki grafikte goumlruumllduuml uuml gibi yakla k 140 milyonu bulmu tur
Milyonlar a k n aktif uumlye say s yla guumlnde ortalama 150 bin aktif kullan c yla sanal duumlnyan n en
popular sitesi olmu tur [22]
ekil 28 Facebook kullan c say s n n aylara goumlre da l m grafi i [23]
Aktif kullan c lar n iccedileri e katk s a a daki istatistik sonuccedillar n do urmu tur [22]
13 milyon kullan c durumlar n en az ndan guumlnde bir kez guumlncellenmektedir
25 milyon kullan c her guumln Sayfa hayran (fan of Pages) olmaktad r
Siteye her ay 700 milyon foto raf yuumlkleniyor ki toplam foto raf rakam yakla k 10
milyar bulmaktad r
Her ay 4 milyon video yuumlklenmektedir
Her ay 15 milyon iccedilerik parccedilas (web linki yeni hikacircyeler blog yaz lar notlar
foto raflar vb) payla ma sunulmaktad r
Her ay 2 milyon etkinlik olu turulmaktad r
Sitede 19 milyon adet aktif grup varl n suumlrduumlrmektedir
Yukar da belirtilen bu rakamlar sosyal ileti im a lar n n ne kadar ciddi boyutlarda bir
kapasiteye sahip oldu unu goumlstermektedir
10
ekil 29 Aylara goumlre facebook ve myspace site analizi [22]
Facebook ve ona en yak n rakibi sosyal ileti im web sitesi olan MySpace compete de
kar la t r ld nda yukar daki grafik elde edilmektedir
Tablo 21 Facebook ve myspace in buumlyuumlme tablosu
Tarih 032008 032009 Kullan c
Ayl k Y ll k
facebookcom
91054535 234
1951
myspacecom
55594761 48
-114
Tablo 21 de Mart 2008 ile Mart 2009 aras ndaki ayl k aktif ziyaretccedili say s n
goumlstermektedir Compete verilerine goumlre Aral k 2008 de facebook myspace in kullan c say s n
yakalam t r Tablo 21 deki verilere goumlre bir oumlnceki y la goumlre Facebook taki kullan c say s nda
ayl k 234 luumlk bir art varken MySpace 48 lik bir buumlyuumlmeye sahiptir Yakla k olarak
ayl k MySpace Facebook u 5 kat geriden takip etmektedir Facebook taki bir oumlnceki y la
goumlre 1951 lik buumlyuumlmeye kar n myspace de 114 luumlk kuumlccediluumllme goumlruumllmektedir Elde edilen
veriler ileriki y llarda bu rakamlar aras ndaki uccedilurumun artaca n i aret etmektedir
Facebooktaki bu h zl buumlyuumlme ekonomi ve ticari sektoumlruumlnuumln de ilgisini ccedilekmektedir Oumlnemli bir
yat r m alan olarak giri imcileri cezbetmektedir
Facebook youmlneticilerinden Peter Thiel ise Facebookun iccedil de erinin 8 Milyar dolar
oldu unu ve proje gelirlerinin 2015 y l iccedilin 1 milyar dolar oldu unu soumlylemektedir [24]
Duumlnyaca tan nm Microsoft irketi 24 Ekim 2007 de Facebooku 16l k hissesini 240 milyon
dolara sat n alm t r Google ve di er irketler de gittikccedile de er kazanan Facebook hisselerine
youmlnelmektedir [24]
11
215 Web Guumlnluumlkler
ngilizcedeki Web
ve log kelimelerinin birle iminden olu an Blog kelimesi internet
uumlzerinden ki ilerin istedikleri konu hakk nda fikir beyan edebilecekleri kendilerini kolayca
ifade etmelerini sa layacak bir ortamd r
Bloglar genellikle en yeni yorum ve yaz lardan eski tarihli yorum ve yaz lara do ru
s ralanm web tabanl yay nlar
belirtir Bloglar n iccedileri i suumlrekli guumlncellendi i iccedilin sadece
bloglar iccedilin kurulmu oumlzel indeksleme mekanizmalar ve arama motorlar bulunmaktad r [25]
Duumlnya ccedilap nda indeksleme mekanizmalar n n en oumlnde geleni Technorati firmas
milyonlarca blog okuyucusu iccedilin her geccedilen guumln 15 milyondan fazla yeni blogu
indekslemektedir [26] Forrester in ara t rma irketlerinden internet ile ilgili ciddi bir ara t rma
kurumu olan JupiterResearch uumln 2008 A ustos unda bloglar uumlzerine gerccedilekle tirdi i
ara t rmada internet kullan c lar na 40 soruluk kapal uccedillu soru youmlneltilmi tir Bu ara t rma
sonucunda geccedilti imiz doumlrt y l iccedilerisinde bloglar n okunma oranlar nda 300 oran nda bir art
oldu u ortaya ccedil km t r Belki ilgimi ccedilekecek bir bloga ula abilirim duuml uumlncesi ile kullan c lar
okuduklar bloga eklenmi
olan di er linkleri de takip edebiliyorlar S k blog okuruyum
diyenlerin 38 i yeni bir blogu okudu u blogun linklerinden ke fetti ini belirtmi tir
Ara t rmaya kat lan blog okurlar n n 34 uuml Web te dola rken yeni bir blogla tan t n 11 i
blog arama motorlar n kulland n
belirtmi [27]
Bloglar n bu kadar yayg nla mas n n nedenlerinde biri de internet gezginler sanal
acirclemdeki tek duumlze yorumsuz hatta bazen oldukccedila bilimsel bir dille yaz lm yaz lardan
s k ld klar iccedilin bloglar tercih etmektedir Bloglarda ki iler gittikleri bir seminer hakk ndaki
yorumlar n kulland klar bir uumlruumln hakk ndaki fikirlerini k saca hayata dair kendi yorumlar n
katarak ba ka ki ilerle payla abilmektedirler
216 Wiki
Bilgiye ula mak iccedilin eskiden oldu u gibi kitap ya da ansiklopediler kullan lmamaktad r
Guumlnuumlmuumlzde kuumlreselle menin ve geli en teknolojinin etkisiyle tuumlm kaynaklara bilgisayar
uumlzerinden ula lmas elde edilen bilgilerin k sa suumlrede derlenebilmesine imkacircn vermi tir
Wiki ler kullan c lar n uumlzerinde istedi i gibi duumlzenlemeler yapmas na izin veren bilgi
sayfalar toplulu udur ngilizce What I Know is soumlzcuumlklerinin k saltmas
olan Wiki
Bildi im kadar yla anlam na gelir [28]
12
Wikilerin ccedilal ma prensibi u ekilde accedil klanabilir Bir web program script ya da script
grubu sayesinde veritaban na yaz lm olan ya da sadece dosya halindeki verileri okur bu
verileri HTML kodlar ile de i tirir ve Web taray c s na yans t r
ekil 210 Vikipedi oumlzguumlr ansiklopedi sitesinin logosu
Wiki dilini kullanan ve internetin en geni iccedileri ine sahip ccedilevrimiccedili ansiklopedisi
Vikipedi 22 Ocak 2007de Alt n Oumlruumlmcek 2006 En yi ccedilerik oumlduumlluumlnuumln sahibi oldu
Wikipediaorg taraf ndan geni kitlelere tan t lan Wiki dili pek ccedilok farkl programlama
platformunda Javascript ASP PHP C++ vb kullan labilmektedir
2161 Wiki Kullanman n Avantajlar
Web proje gruplar
projeleri olu tururken ekiplere ayr ld iccedilin programc lar kendi
goumlrevi d ndaki ccedilal malarda neler yap ld n
tam olarak bilemez ccedileri in yap land r lmas nda
geli melerden sadece iccedilerik koordinatoumlrleri haberdard r An nda yap goumlster oumlzelli iyle Wikiler
bu sorun iccedilin pratik bir ccediloumlzuumlm te kil eder
ndekslenme yapan sitelerde bile arama yap l rken defalarca ayn siteye girilebilir yahut
aran lan bilgiyi bulmak ccedilok zaman alabilir Wiki gereksiz tekrarlardan kurtar r steyen herkes
wiki iccedileri indeki bilgileri eksik ya da hatal
ise de i tirilebilir veya kald rabilir Bu i lemleri
yapan wiki youmlneticilerine wikipedist denir Wikipedistler sayfa duumlzenlemelerine ve iccedilerik
zenginle tirmeye yard mc olurlar
Wiki de de i iklik yap ld nda de i iklik yapan ki inin bir hesab yoksa IP adresiyle
varsa kullan c ad yla kaydedilerek hemen sonuccedil goumlzlenebilir Yap lan iccedileriksel herhangi bir
hata ba kalar taraf ndan fark edildi inde duumlzeltilir Geccedilmi sekmesiyle duumlzeltilen sayfalar n
oumlnceki suumlruumlmleri kronolojik s ralamayla takip edilebilir hatta sayfalar aras nda kar la t rma
bile yap labilir Sayfa iccedilerikleri hakk nda Tart ma
sekmesiyle fikir beyan nda bulunulabilinir
Tart malara yorum eklenebilir Denetleme mekanizmas sayesinde telif haklar n n ihlali gibi
durumlarda ihlali yapan kullan c lar engellenebilmektedir
13
Wiki di er ansiklopedilerden farkl olarak Vikipedi GNU Oumlzguumlr Belgeleme Lisans
(GOumlBL) kullanmaktad r Kullan c lar na oumlzguumlr iccedilerik kat l m e it tarafs z ve uumlcretsiz kat l m
hakk verir Ayr ca diluumllkekonuya goumlre geli mi kategorilendirme sistemine sahiptir Diff
oumlzelli i sayesinde sayfalar aras ndaki fark izlenebilir [29]
217 ccedilerik Youmlnetim Sistemleri
ngilizce Content Management System ya da k saca CMS olarak tan nan ccedilerik
Youmlnetim Sistemleri - YS bilgiyi olu turmak ar ivlemek ara t rmak denetlemek ve
yay nlama olana sa layan buumlyuumlk bir veritaban na sahip moduumlllerden olu an buumltuumlnle ik bir
ortamd r YS lerde iccedilerik iki ayr boumlluumlmden olu ur Bunlardan birincisi uumlzerinde i lem
yap lmam olan ham bilgiyi bar nd ran veritaban
di eri ise bu bilginin yerle imini goumlsteren
ablondur ablonda bilginin goumlsterilece i sayfan n goumlrsel boumlluumlmuumlnuuml olu turan yaz tipleri
renkleri gibi tuumlm biccedilim bilgileri saklan r Genellikle PHP benzeri dillerle kodlan r Boumlylece daha
esnek hale gelebilirler [30]
ccedilerik Youmlnetim Sistemleri uluslararas platformda birccedilok organizasyon iccedilin zorunluluk
haline gelen modern bir veri youmlnetimi tekni idir Guumlnuumlmuumlzde iccedilerik youmlnetim sistemleri kendi
iccedilerisinde boumlluumlnmuuml bir yaz l m enduumlstrisi haline gelmi tir Kendi iccedilerisinde portal sistemleri
Wiki sistemleri web-based grupware vb alt dallara ayr lan enduumlstri guumlnuumlmuumlzde halen
geli imini suumlrduumlrmektedir [31]
Web yay nlama sistemi kullan c lar arad klar iccedileri e goumlre veritaban iccedilinde anahtar
kelimeler yazar olu turulma tarihi gibi ccedile itli oumllccediluumltlere goumlre arama yapabilirler Web iccedilerik
youmlnetim sistemleri bilgi portallar olu turmak iccedilin bilgi youmlnetimi hizmeti sunar YS buumlnyesinde
bar nd rd
yaz l m moduumllleri sayesinde herhangi bir kullan c n n web sitesi uumlzerindeki
i lemleri yapabilmesi iccedilin grafiksel kullan c arayuumlzuuml sunar
YSnin temeli iccedileri in olu turulmas ndan son hali olan yay nlanma evresine kadar tuumlm
evrelerde iccedileri i youmlnetme esas na dayan r Ayr ca YS nin iccedileri i E-ticaret ve Muuml teri li kileri
Youmlnetim Sistemleri (MIYS) (ing CRM - Customer Relationship Management System) ile de
payla labilir YS sayesinde iccedilerik yay n
teknik bilgisi olmayan kullan c lar taraf ndan bile
yap labilir Kullan c lar na sade basit ama guumlccedilluuml web taray c s destekli bir uygulama arayuumlzuuml
sunar [32]
14
218 Etiketleme (Folksonomi)
Web 20 sitelerinde goumlze ccedilarpan etiket bulutlar ile kullan c lara ilgilendikleri konulara
ili kin kolay ve h zl ba lant lar sa lanmaktad r Site iccedileri iyle ilgili konular ccedile itli etiketler ad
alt nda s n fland r l r Her etiket iccedilinde bar nd rd makale yaz ba l k ile farkl boyutlarda
olabilmektedir Yani etiketin yaz boyutu ne kadar buumlyuumlkse iccedilinde bar nd rd iccedilerik o kadar
fazlad r ekil 211 de bir etiket bulutu goumlruumllmektedir
ekil 211 Oumlrnek etiket bulutu
22 Web 20 da Site Tasar m nda Dikkat Ccedileken Oumlzellikler
Yukar daki popuumller uygulamalar olu turulurken dikkat ccedileken ortak oumlzellikler bu ba l k
alt nda incelenecektir Genel olarak Web sitelerindeki de i im ve geli im tasar m ve arayuumlz
accedil s ndan de erlendirilecektir
221 Logolar
Logolara daha parlak bir goumlruumlntuuml verilirken yans ma efekti bolca kullan lmaktad r
Yans ma efekti dinamik olmayan tuumlm objelere kullan larak siteye derinlik hareket ve modern
bir goumlruumlnuuml kazand r l r Kullan c lar n dikkatini ccedilekmek iccedilin ekil 212 de goumlruumllduuml uuml gibi
logolara rozet eklinde yenilik bildiren kelimeler eklenebilmektedir [33] Bu yenilik bildiren
kelimelerden Beta ifadesiyle s k s k kar la l r Bunun nedeni Web 20 ak m na goumlre
kullan c lar birer yard mc -geli tiriciler olarak benimsenir Sonuccedil olarak ortaya ccedil kan site suumlrekli
geli mekte ve de i mektedir Logolara yerle en Beta bu geli imin bir simgesi haline gelmi tir
[34]
15
ekil 212 Yans mal logo oumlrne i [34]
222 Butonlar
Butonlarda ise klasik butonlar yerine resim olarak haz rlanan butonlarda oumlzellikle cam
efekti ve renk geccedili (gradient) efekti hacirckimdir Gradient efekti butonlarda logolarda ya da arka
planlardaki renk geccedili lerini daha yumu at r Bir renkten farkl bir renge keskin geccedili lerin oumlnuumlne
geccedililmi olur [33] Ccedile itli buton oumlrnekleri ekil 213 de goumlruumllmektedir
ekil 213 Web 20 da buton oumlrnekleri
223 Arka Planlar
Web 20 ile sitelerde arka planlar olu turulurken yatay eritlerden ya da duumlz renk
geccedili lerinden faydalan labilinir Her iki ekilde de hedeflenen ortak amaccedil ekil 214 te oldu u
gibi goumlzuuml yormayan tasar mlar gerccedilekle tirmektir [33]
ekil 214 Web 20 da arka plan oumlrnekleri
16
224 Ccedilerccedileveler
Site iccedilinde goumlruumlnmez iframe ler yerine ekil 215 deki gibi ccedilerccedilevelerin yuvarlak kouml eli
kutular olarak tasarlanmas
oumln plana ccedil km t r Kouml eleri keskin duumlz kare veya dikdoumlrtgen
biccedilimde kutular art k kullan lmamaktad r Yuvarlak kouml eli kutu yap m iccedilin farkl tekniklerle
olu turulabilecek programlar mevcuttur Resim css ve html teknikleri kullan lacaksa Spiffy
Corners RoundedCornr ve CSS Rounded Box Generator gibi araccedillar kullan labilirken Nifty
Corners Cube ve curvyCorners gibi araccedillar da JavaScript tekni i ile kullan labilinir [33]
ekil 215 Web 20 da ccedilerccedileve yap s na oumlrnek
225 Menuumller
Site iccedileri inden etkin bir ekilde faydalanabilmek iccedilin menuuml ve sekmeler sade kolay
anla labilir olmal d r Hem goumlrsel hem kullan l menuumller CSS kodlarla olu turulabilir [33]
ekil 216 Web 20 da menuuml oumlrne i
Yukar da bahsedilen konu Web 20 platformunda olu turulan sitelerin genel oumlzellikleri
olarak alg lanabilir Bu oumlzellikler d nda da tasar mlar olabilmektedir
17
3 AJAX
AJAX kavram n n ilk ccedil k noktas
ubat 2005 de Jesse James Garrett taraf ndan the
Adaptive Path Web sitesinde Ajax A New Approach to Web Applications ba l yla
yay nlanan makaledir [35]
ekil 31 Jesse James Garrett in makale goumlruumlntuumlsuuml [36]
Bu makalede Web uygulamalar olu turulurken tasar mlardaki buumlyuumlleyici geli meler
yenilikccedili ccedilevrimiccedili projelerle desteklenirken bunun yan nda h zl cevap verebilir daha zengin
goumlrsellere sahip masauumlstuuml uygulamalar aras ndaki bo lu a dikkat ccedilekilmi tir Bu bo lu u
dolduran Google Suggest ve Google Maps uygulamalar Adaptive Path sitesinde AJAX olarak
adland r lan Web uygulamalar na yeni yakla m n en iyi oumlrnekleri oldu u belirtilmi tir Klasik
Web uygulamalar n n ccedilal ma modeliyle AJAX l uygulamalar n ccedilal ma modeli
kar la t r lm t r AJAX di er uygulama youmlntemlerinden ay ran oumlzellikleri belirtilmi tir
AJAX yakla m na buumlyuumlk yat r mlar yapan Google n neden AJAX tercih etti i accedil klanm t r
Google Groups Google Suggest Gmail Google Maps ve ard ndan Flickr Amazon nun
A9com servisleriyle kullan c lar n oda haline geldi ine de inilmi tir [35]
AJAX n ccedilekirde i olan XMLHttpRequest (XHR) nesnesi sayesinde de iyi haz rlanm
sa lam ve kolay anla labilir-kullan labilir sitelerin olu umuna dikkat ccedilekilmi tir [35] A a da
18
ise AJAX tekni i kullanan en populer servislerden Google Suggest ve Google Maps hakk nda
k sa bilgi verilecektir
31 Google Suggest
ekil 32 Google Suggest ekran goumlruumlntuumlsuuml
Google Suggest a httpwwwgooglecomigcomplete=1amphl=en
adresine girildi inde
ekil 32 de goumlruumlnen ana sayfaya ula lmaktad r Google Suggest servisinin oumlzelli i arama
motorunda aranacak kelimenin harfleri girilmeye ba land andan itibaren filtreleme yaparak
text alan n n alt na accedil lan boumllmede oumlneriler sunulmaktad r Sadece oumlneri sunmakla da kalmay p
oumlnerileri popuumllarite s ras na goumlre s ralar Kelime tamamlama oumlzelli i sayesinde aranan kelime
tam yaz lmadan gelen oumlnerilerden biri t klanarak istenen sonuca ula labilinir Ayr ca oumlnerilerin
yan nda o kelimeye ait kaccedil sonuccedil oldu u da belirtilir ve bu i lem sadece 1-2 sn iccedilinde
gerccedilekle ir
32 Google Maps
ekil 33 Google Maps ekran goumlruumlntuumlsuuml
19
Google Maps sitesine httpmapsgooglecom
adresinden ula labilinir Google n
etkile imli harita servisi ile arama motorunda goumlruumlntuumllenmek istenen konum yaz larak
Haritalarda Ara butonu ile o konuma odaklan l r Bir yerden bir yere gitmek iccedilin Yol
Tariflerini Al butonu kullan l r Konumun iste e goumlre uydu arazi ve sokak haritas
goumlruumlnuumlmlerine ula labilinir Daha fazla seccedilene i ile resim video ve wikipedia katmanlar da
goumlruumlntuumlye eklenir Hatta yurtd ndaki ba lant larda yoldaki trafik ak n n h z hakk nda bile
bilgi katman mevcuttur
Di er harita web uygulamalar ndan farkl olarak Google Maps te harita uumlzerinde ccedile itli
youmlnlere ula mak iccedilin suumlrekle b rak youmlntemi kullan l r Harita bir imaj serisi halinde ayr larak
boumlluumlnuumlr Biti ik imajlar n birlikte goumlruumlntuumlsuumlnuumln olu turulabilmesi iccedilin bu serilerden faydalan l r
Goumlruumlntuumllenen haritada kullan lan imaj say s s n rl d r Bu da her seferinde yeni imajlar n
olu turulmas gerekti ini goumlsterir Kullan c n n harita uumlzerindeki h zl hareketleri haf za
problemlerine yol accedilabilir Bunun yerine ayn imajlar haritan n farkl segmentlerinde tekrar
tekrar goumlruumlntuumllenir [37]
stemci-sunucu ileti imi gizli bir IFRAME uumlzerinden yap l r Bir arama yap ld nda
veya yeni bir yol soruldu unda bu bilgiler goumlnderilir ve IFRAME iccedilinde doumlnduumlruumlluumlr Veri XML
format nda ccedilevrilir ve bir Javascript fonksiyonunda (AJAX Motorunda) kullan lmak iccedilin
aktar l r Bu XML verisi sonra farkl ccedile itli ekillerde kullan l r Bazen hatas z harita imajlar n n
ccedila r lmas nda bazen de XML dokuumlmanlar n n XSLT (Extensible Stylesheet Language
Transformations Geni letilebilir Biccedilimlendirme Dili Doumlnuuml uumlmleri) sayesinde HTML kodlar na
doumlnuuml tuumlruumllerek ana pencerede goumlruumlntuumllenmesinde kullan l r [37]
Bunlar n d ndaki daha birccedilok accedil k kaynak projeler ve ticari uumlruumlnler bu yeni Web
uygulama modelinin avantajlar ndan faydalanarak geli tirilmeye ba lanm t r [37]
33 Neden AJAX
AJAX terimi oldukccedila guumlccedilluuml bir kelimedir Guumlcuumlnuuml daha zengin geni enduumlstri trendlerinin
olu umunda kullan labilmesinden ve oumlzguumlr Web uygulamalar n n kurulumunda odak noktas
olmas ndan al r Ayr ca programc lar yabanc olduklar yeni programlama dilleri ouml renmelerine
gerek kalmadan geli tirdikleri Web uygulamalar na istedikleri etkiyi katabilmektedirler Bunu
yaparken de sunucu tarafl teknolojileri kullan rken var olan yat r mlar n n d nda ba ka
masraflar olmaz AJAX guumlccedilluuml bir teknik olmas n n yan s ra di er teknolojilerle birlikte
kullan ld nda daha etkili sonuccedillar al nabilmektedir [38] AJAX Java 2 Enterprise Edition
(JAVA EE) Net PHP Flex CGI scriptler ve di er birccedilok uygulama geli tirme ortam nda
ccedilal abilir
20
AJAX uygulamalar n n gittikccedile yayg nla mas n n bir nedeni de geleneksel uygulamalara
goumlre istekcevap modelleri aras ndaki farkt r ekil 34 te goumlsterildi i uumlzere geleneksel Web
uygulamalar nda sunucuya yap lan her istekte olu turulan cevap Web sayfas n n tuumlmuumlnuuml
etkileyerek yeniden yuumlklenmesine neden olmaktad r
ekil 34 Geleneksel sunucularda istekcevap modeli [39]
AJAX n asenkron metodolojisiyle klasik Web mimarilerindeki gibi sunucuya gidip
parametreleri i lemek yerine ekil 35 te goumlruumllduuml uuml uumlzere birccedilok sunucu iste i tuumlm sayfan n
yenilenmesine ihtiyaccedil duymadan cevaplanabilmektedir
ekil 35 AJAX n asenkron istekcevap modeli [39]
Yukar da anlat lan durum kullan c lar ekil 36 da goumlruumllen t kla-bekle doumlnguumlsuumlnden
kurtar r AJAX kullan c lara ekil 37 deki gibi kesintisiz gezinti (soumlrf) imkacircn sunar
21
ekil 36 Klasik Web uygulamalar nda t kla-bekle doumlnguumlsuuml [40]
ekil 37 T kla-T kla interaktif AJAX uygulamas
[40]
stek i lem basamaklar ekil 38 te goumlsterildi i gibi AJAX motoru sayesinde JavaScript
kod betikleri kullan larak sunucuya HTTP tabanl ba lant sa lan r Bu ba lant
XMLHttpRequest protokoluumlnuuml kullanarak mesaj transferi yap lmas n sa lar Bu sayede hem h z
artar hem de bant geni li i verimli bir ekilde kullan lm olur
ekil 38 Geleneksel Web ileti im modeli ile AJAX ileti im modeli [37]
AJAX sunucuya kullan c n n Web taray c s uumlzerinden Javascript ortam nda ikinci bir
ileti im yoludur AJAX n kullan m normal Web uygulamalar nda goumlruumllen tipik sayfa ak nda
de i ikliklere neden olur AJAX ile istekler daha s k ve daha kuumlccediluumlk cevaplar halinde HTML
olmayan veri formunda cevaplan r Daha iyi anlayabilmek iccedilin normal bir Web uygulamas n n
ileti im ak ekil 39 da goumlruumllmektedir [41]
22
ekil 39 Web uygulamas ndaki cevap ak
Bir AJAX Web uygulamas bir Web uygulamas n n normal ileti im ak n al r ve yeni
bir istek tipi ekler Bu durum sunucuya normal sayfa iste i gibi goumlruumlnuumlr ama Web taray c iccedilin
farkl formatta bir giri i vard r Kullan c taraf ndan do rudan tetiklenmeyen ve sayfan n
tamam n n yeniden yuumlklenmesini gerektirmeyen bir istektir Ccedilo u durumda bu AJAX istekleri
baz verilerin oumln yuumlklenmesi ya da bir formdaki baz alanlar n do rulama istekleri gibi kuumlccediluumlk
de i iklikler olabilir Bazen de JavaScript ile bir form goumlnderimi veya HTML sayfalar n n bir
parccedilas uumlzerindeki iccedileri i de i tirmek iccedilin kullan l r Oumlrnek bir AJAX ileti im ak ekil
310 da goumlruumllmektedir AJAX uygulamalar ndaki istek biti zamanlar ve bunun normal Web
uygulamalar yla kar la t rmas ekil 311 de goumlruumllebilir Boumlylece ikisinin aras ndaki istek
frekanslar n n fark na var labilinir [41]
ekil 310 AJAX uygulamalar ndaki istek ak
23
ekil 311 Normal Web ile AJAX uygulamalar n n kar la t rmas
AJAX Web uygulamalar yla frekanstaki bu de i im hostlar iccedilin buumlyuumlk etki yapabilir
Boumlylece sunucular ayn kullan c say s yla yuumlksek h zlarda veri al -veri ini yapabilecek duruma
gelir Bu oumlzellikle daha fazla i lem gerektiren normal sayfa yuumlklemelerinde oldukccedila zor bir
i lemdi [41]
34 AJAX Metodolojisi
World Wide Web istemci-sunucu a mimarisine uygun ccedilal r [42] A aktiviteleri iki
tiptir Bunlardan birincisi kullan c taraf ndan tetiklenen HyperText Transfer Protocol (HTTP)
istekler (URL yazarak ya da bir link t klanarak olu turulur) di eri ise sunucu cevaplar d r
HTTP protokoluuml soru ve cevaplar serisinden olu an bir ileti im yoludur [41]
ekil 312 Geleneksel istekcevap (requestresponse) youmlntemi [39]
24
Web taray c dan bir istekte bulunuldu unda HTTP kullan larak cevap goumlnderilir Web
taray c bir istemci internet sayfas n n sunucusu ise HTTP sunucudur AJAX sunucu
cevaplar n HTTP kullanarak goumlnderir Sunucu taraf ndan geri doumlnduumlruumllen farkl tuumlrlerdeki
HTTP istek ve cevaplar n n tan nmas oumlnemlidir AJAX uygulamalar n sunucudan gelecek olan
HTTP cevaplar n iccedileri inin ne oldu u hakk nda karar verebilmesi iccedilin sunucunu
sorgulanmas nda HTTPRequest nesnesine ihtiyaccedil duyar [42]
341 HTTP Requests Nesnesi
HTTP request nesnesinin kullan m format a a daki ekildedir
ltrequest-linegt
ltheadersgt
ltblank linegt
[ltrequest-bodygt]
HTTP request nesnesinin ilk sat r genellikle iste in tipini belirten uumlccedil boumlluumlmden olu ur
Youmlntemin ad gerekli olan sunucu kayna n n yolu HTTP suumlruumlmuumlduumlr Birinci istek sat r (accedil l
sat r ) olmal d r kinci boumlluumlm sunucunun kullanabilece i ba l k sat r eklenebilen bilgilerin
goumlsterildi i boumlluumlmduumlr Son boumlluumlm olan bo sat r ise iste e ba l olarak BODY boumlluumlmuumlnden
ccedila r labilecek ek verilerin takip edilebilece i sat rd r
HTTP iccedilinde ccedile itli istek tuumlrlerinin tan mlanabilece i ccedilok say da youmlntem vard r Fakat
AJAX sadece GET ve POST youmlntemleriyle ilgilenir
3411 GET Youmlntemi
HTTP GET youmlntemi ccedila r lmak istenen URL adresi ard na eklenen anahtar-de er
ccediliftleri (key-value pair) ile ccedilal r Bir Web taray c dan talep edilen bir URL ccedila r s sunucuya
GET youmlnetemi ile bir istek goumlnderir Basitccedile sunucu kayna getirir ve taray c ya cevab
goumlnderir A a da Get youmlnetemi kullan larak F rat uumlniversitesinin Web sitesine yap lan bir ccedila r
sat r goumlsterilmektedir
GET HTTP11 ltrequest-linegt
Host wwwfiratedutr
User-Agent Mozilla50 (Windows U Windows NT 51 en-US rv176) ltheadersgt
Connection Keep-Alive
25
Oumlrnek kod parccedilas nda da goumlruumllduuml uuml uumlzere ilk sat r GET istek sat r d r Di er boumlluumlm ise
istek hakk nda bilgi goumlnderilen ba l k (header) k sm d r Bu boumlluumlme bir parametre ve her sat r
ba na bir de er ccedilifti gelebilir Host ba l iste in hedef sunucu adresini iccedilerir User-Agent
ba l eri ilebilir her iki sunucu ve istemci tarafl scriptler ve taray c lar n temel ta d r Bu
bilgi ile her istekte otomatik olarak goumlnderilir ve kullan lan taray c tan mlan r Connection
ba l ise taray c i lemleri iccedilin kullan lan tipik ba lant ayarlar nda kullan l r
3412 POST Youmlntemi
POST iste i ise sunucuya request body iccedilinde ek bilgi sa lar Genellikle ccedilevrimiccedili
formlarda doldurulmayan sat r bilgileri POST youmlntemi ile sunucuya bildirilir POST istekleri
a a daki yap dad r
POST HTTP11
Host wwwfiratedutr
User-Agent Mozilla50 (Windows U Windows NT 51 en-US rv176)
Content-Type applicationx-www-form-urlencoded
Content-Length 40
Connection Keep-Alive
Yukar daki kod parccedilas nda gri ile vurgulanan sat rlar GET youmlnteminden farkl olan
sat rlar goumlstermektedir lk sat rda kullan lan youmlntemin ad belirtilmi tir Content-Type sat r
request-body nin nas l kodland n goumlsterir Content-Length sat r nda request-body nin kaccedil
byte uzunlu unda oldu u goumlsterilir [37]
342 HTTP Request Nesnesinin Oumlzellikleri ve Youmlntemleri
Request nesnesi be tane temel fonksiyon bulundurmaktad r [43] Bunlar
Querystring URL iccedilersinde bulunan dosya ismi ile birlikte goumlnderilen bilginin veya
form iccedilerisinden GET
youmlntemi ile goumlnderilen bilgilerin al nmas nda kullan l r
Form POST
youmlntemi genellikle form iccedilerisinden bilgi al nmas iccedilin kullan l r
Servervariables Web sunucu request ile ilgili bilgilere (Http ServerVariables)
ula may sa layan bir youmlntemidir
Cookies(Ccedilerezler) Kullan c n n taray c s sunucudan gelen ccedilerezleri kabul ediyor ise
bu bilgilere ula lmas n sa lar
26
ClientCertificate Dijital bir sertifikad r Sunucu ve istemcinin birbirini tan mlamas
iccedilin kullan l r
343 HTTP Response Nesnesi
HTTP response nesnesi HTTP request nesnesine benzer ekilde goumlsterilir
ltstatus-linegt
ltheadersgt
ltblank linegt
[ltresponse-bodygt]
HTTP request nesnesinden tek fark ilk sat rda istek bilgisinin yerine iccedileri in durum
bilgisi vard r Durum sat r istek kayna
hakk nda temin edilen bir durum kodunu bildirir
A a da basit bir HTTP response kod parccedilas
goumlsterilmektedir
HTTP11 200 OK
Date Sat 31 March 2009 165959 GMT
Content-Type texthtmlcharset=ISO-8859-1
Content-Length 122
lthtmlgt
ltheadgt
lttitlegtFirat Universitesilttitlegt
ltheadgt
ltbodygt
lt-- body buraya gelir --gt
ltbodygt
lthtmlgt
Bu oumlrnekte durum sat r nda 200 eklinde bir HTTP durum kodu ve Tamam (OK)
diye bir mesaj verilmektedir Durum sat r her zaman durum kodu ve her hangi bir kar kl
oumlnlemek iccedilin k sa bir mesaj iccedilerir A a da en yayg n kullan lan durum kodlar verilmektedir
200 (OK) Sunucu ba ar l istekler iccedilin bu kodu kullan r
304 (NOT MODIFIED) Sunucu goumlnderilen istekle ilgili verilerin daha i lenmedi ini
istemciye bildirmek iccedilin bu kod kullan l r Taray c lar n oumln bellek mekanizmalar iccedilin en s k
kullan lan koddur
27
401 (UNAUTHORIZED) stemcinin kaynak eri im yetkisi yoktur
anlam nda
kullan l r Genellikle bu taray c n n sunucudan kullan c ad ve ifre gibi bilgi giri i istemesiyle
olu an hatalarda meydana gelir
403 (FORBIDDEN) Yetki elde etmek iccedilin istemci ba ar s z oldu
hata kodudur 401
hatas ndan sonra e er do ru bir kullan c ad ve ifre ile oturum accedil lmamas halinde genelde bu
hata kodu olu ur
404 (NOT FOUND) Kaynak belirtilen yerde bulunamad nda bu hata kodu uumlretilir
Kod parccedilas n n ikinci sat r nda uumlretilen cevab n tarihi ve saati Date ba l nda
sunucuya goumlnderilir Content-Type ve Content-Length ba l klar POST youmlnteminde oldu u gibi
kullan l r BODY cevab basitccedile istemci kayna (iccedilerik duumlz metin ikili veri ya da farkl
tuumlrden
bilgiler olabilir) HTML kayna n iccedilerir [42]
35 AJAX leti im Teknikleri
Web uygulamalar nda ccedilo unlukla kullan c istekleri bir form uumlzerinden yap l r ve
sunucu cevab h zl bir ekilde Java ya da Php gibi bir programlama dili ile olu turulur Normal
Web uygulama modelinde kullan c daima istek uumlretir boumlylece kullan c lar n h zl ca
t klamalar yla olu an yuumlksek h zlardaki sayfa istekleri genellikle rastgele aral klarla olu ur ve
her bir istek h z n n cevab duuml uumlktuumlr [41]
AJAX uygulamalar nda yukarda bahsedilen eksikli in oumlnuumlne geccedilebilmek iccedilin ccedile itli
ileti im teknikleri geli tirilmi tir Bu teknikler
Gizli Ccedilerccedileve (Hidden Frame) Tekni i stemci-sunucu ileti iminde kullan lan gizli
ccedilerccedileve yap s yuumlksekli i ve geni li i 0 pikselden olu an ekranda goumlruumlnmeyen bir
frameset yap s na dayan r
XMLHttp Requests (XHR) AJAX teknolojisinin temel nesnesidir A a daki ba l kta
ayr nt l bir biccedilimde incelenecektir
351 XMLHttp Requests (XHR) Nesnesi
AJAX la do rudan ilgili teknolojilerin ccedilo u asenkron ve XML tekni i ile yak ndan
ilgilidir Ccediluumlnkuuml veri kodlama yollar ve ileti im katmanlar n n tedarik edilmesi bu teknikler ve
kuumltuumlphaneler uumlzerinden hareket eder Ccedilo u durumda bu XMLHttpRequest nesnesi kullan l r
ancak IFrame lerde popuumllerdir Ccedilerezler veya ActiveX Java goumlmuumlluuml ba ka bir alternatif de
kullan labilir [41]
28
XHR Nesnesi Internet Explorer 50 (IE 5) iccedilindeki ActiveX control ile ortaya ccedil km t r
XHR Javascript ile olu turulur [44] Sayfalar n tamamen yeniden yuumlklenmeden sa lanan parccedilal
guumlncelleme oumlzelli i bu nesne sayesinde olmaktad r Arka planda ccedilal an bu sistem sayesinde
asenkron bir ileti im gerccedilekle ir Yenilenme s ras nda taray c yla ba lant kesilmeksizin yeni bir
istek yap labilir
World Wide Web Consortium (W3C) standart organizasyonu standartla amam
XMLHttpRequest nesnenin tuumlm taray c larda kullan labilen youmlntem ve oumlzelliklerinin genel bir
alt kuumlmesini olu turma ccedilal malar suumlrmektedir u anda kullan lan kural kuumlmesi W3C DOM
Level 3 yuumlkleme ve kaydetme oumlzellikleri iccedilerir kinci ccedilal ma tasla
wwww3orgTRXMLHttpRequest adresinde bulunabilir Henuumlz bir standart haline
gelememesinin nedeni taray c dan taray c ya goumlre farkl davran lar goumlstermesidir
Ccedilal ma tasla na goumlre XHR nesnesinin iki goumlrevi vard r Birincisi HTTP yolu ile
sunucuya programlanabilir ba lant kuran betiklerin ccedilal mas na izin verir kinci ifade ekli ise
normal HTTP istekcevap doumlnguumlsuumlnuumln d nda sunucuyla ileti ime izin verir
XMLHttpRequest Microsoft taray c ccedile itlerinde Mozilla Firefox Konqueror Opera
ve Safari gibi neredeyse tuumlm modern taray c lar taraf ndan desteklenmektedir [42]
3511 XMLHttpRequest Nesnesi Olu turma
Nesneler olu turulurken farkl taray c lar iccedilin farkl kurallar vard r Oumlrne in Microsoft
Internet Explorer XMLHttpRequest nesnesini bir ActiveX nesnesi olarak Safari Mozilla
Firefox ve Opera ise sadece normal bir JavaScript nesnesi olarak yorumlar
Windows un guumlncelleme sisteminin temelini olu turan ActiveX Web sayfalar ndaki
aktif nesneleri etkinle tiren oumlzel bir Microsoft teknolojisidir ActiveX i mevcut Web taray c lar
aras nda u anda sadece Microsoft Internet Explorer desteklemektedir Microsoft IE nin di er
suumlruumlmleri iccedilin MSXML geli tirerek daha aktif ve kararl bir yap olu turulmu tur IE nin farkl
suumlruumlmleri iccedilin a a daki bile enler kullan l r [45]
MicrosoftXMLHttp
MSXML2XMLHttp
MSXML2XMLHttp30
MSXML2XMLHttp40
MSXML2XMLHttp50
29
IE 60+ taray c lar iccedilin a a daki tan mlama yap l r
var nesne = new ActiveXObject(Msxml2XMLHTTP)
IE 55 suumlruumlmleri iccedilin ise a a daki tan mlama yap l r
var nesne = new ActiveXObject(MicrosoftXMLHTTP)
Mozilla Firefox Opera Safari gibi taray c lar iccedilin ise a a daki tan mlama yap l r
var nesne = new XMLHttpRequest ()
Ayn anda birden fazla internet taray c s (ie firefox opera vb) ile uyumlu Web
uygulamalar iccedilin ccedilapraz taray c deste i ifadesi kullan lmaktad r Ccedilapraz taray c deste i bir
arayuumlz kodlamas nda kodlay c lar n en ccedilok zaman harcad konudur Guumlnuumlmuumlzde ccedilapraz
taray c deste i bir zorunluluk haline gelmi tir [46] AJAX uygulamalar n n sorunsuz tuumlm
taray c larla uyumlu bir ekilde ccedilal abilmesi iccedilin JavaScript iccedilerisinde try-catch bloklar
yazarak taray c ya goumlre yeni bir nesne olu turulur
function NesneOlustur()
var nesne
try
nesne = new ActiveXObject(Msxml2XMLHTTP) IE 60+ taray c lar iccedilin
catch(e)
try
nesne = new ActiveXObject(MicrosoftXMLHTTP) IE 55 taray c lar iccedilin
catch(e)
try
nesne = new XMLHttpRequest () Firefox Opera 80+ ve Safari taray c lar iccedilin
30
catch(e)
alert( Maalesef taray c n z AJAX desteklemiyor)
return null
return nesne
Yukar da tan mlanan fonksiyon sayesinde dinamik ve ccedilapraz taray c deste ine sahip bir
XHR nesnesi olu turulmu tur
3512 XHR Nesnesinin Oumlzellik ve Youmlntemleri
XMLHttpRequest nesnesine eklenebilen oumlzellikler Tablo 31 de goumlsterilmektedir [42]
Tablo 31 Standart XHR nesnesinin oumlzellikleri
Oumlzellikler Tan mlar
onreadystatechange
Nesnenin readyState oumlzelli i de i ti inde hangi olay tutucunun (event
handler) ccedila r laca n belirler
readyState ste in durumunu raporlayan tamsay de eridir
0 = uninitialized ( stek haz rlanmad Henuumlz open youmlntemi kullan lmad )
1 = loading ( stek haz rland goumlnderiliyor)
2 = loaded ( stek goumlnderildi)
3 = interactive ( stek de erlendiriliyor ve sonuccedil bekleniyor)
4 = completed ( stek tamamland ve sonuccedil geldi)
responseText Form iccedilindeki metin dizesi sunucu taraf ndan veriye doumlnuuml tuumlruumlluumlr
responseXML Sunucu taraf ndan bir belge nesnesi gibi ifade edilen veri geri doumlnduumlruumlluumlr
Status Sunucu taraf ndan geri doumlnduumlruumllen HTTP durum kodudur Oumlrne in 404
kodu Not Found yani istenilen sayfa bulunamad anlam na gelir 200 ise
OK de eri goumlnderir ve i lemin tamamland n belirtir
31
statusText Status oumlzelli inin metin kar l n verir
XMLHttpRequest nesnesinin fonksiyonunu artt ran ek youmlntemler Tablo 32 de
goumlsterilmektedir Bu youmlntemler sayesinde sunucuyla asenkron ileti im kurulur
Tablo 32 Standart XHR nesnesinin fonksiyonlar
[42]
Youmlntemler Tan mlar
abort() Geccedilerli iste i iptal eder
getAllResponseHeaders()
Gelen cevab n ba l k bilgilerini string olarak getirir
getresponseHeader(x) x gibi bir parametre olarak verilen ba l k bilgisini getirir
setRequestHeader(xy) stekle goumlnderilen ba l k bilgisine istenilen etiketi ya da de eri atar
Tablodaki youmlntemler d nda open ve send youmlntemleri de s kccedila kullan lmaktad r
Open youmlnteminin parametreleri a a da goumlsterilmektedir
nesneopen( POST | GET URL asynch username password)
1 Parametre Web sayfas na yap lacak iste in hangi youmlntemle yap laca n belirtir
2 Parametre stek yap lacak Web sayfas n n URL adresi E er GET youmlntemi
kullan l yorsa querystring lerin de erleri URL e birle tirilerek belirtilmelidir
3 Parametre True de eriyle yap lacak iste in e zamans z olaca false de eri ile
e zamanl
olaca belirlenir E er false de eri verilirse i lem bitene kadar taray c di er
kullan c isteklerine cevap veremeyecektir True yap l rsa istek ayr bir i lem olarak ele
al nacakt r
4 ve 5 Parametre Opsiyonel parametreler olup e er istek yap lan Web sayfas ifre ve
kullan c ad istiyorsa bu ekilde goumlnderilebilir [47]
Open ile haz rlanan istek sunucuya goumlnderilir E er open ile accedil lan istek post metodunu
kullan yorsa send metodu parametre olarak goumlnderilecek veriyi ta yabilir
Send metodu parametresiz veya null parametresi ile de kullan labilinir Send metodunda
cevab n gelip gelmedi inin anla labilmesi iccedilin yani e zamanl haberle menin hangi safhada
oldu unun belirlenebilmesi iccedilin Tablo 31 deki oumlzellikler eklenir Send metodunun kullan m
ekli a a da verilmi tir [42 47 48 49]
nesnesend() veya nesnesend(null)
32
3513 XHR Ccedilal ma Mant
ekil 313 bir AJAX uygulamas nda standart etkile imli bir paradigmay
goumlsterir [49]
lem ad mlar a a da s ralanmaktad r
ekil 313 Standart AJAX etkile imi [49]
1 stemci tarafl bir olay AJAX olay (event) tetikler stemcinin a a daki gibi her
hangi bir hareketi onchange olay n ba lat r
ltinput type=text d=eposta name=eposta onblur=validateEposta()gt
2 Oumlrnek bir XHR nesnesi olu turmak iccedilin open() youmlntemi kullan l r ve ccedila r lar iccedilin
ayarlan r URL ayarlar iste e goumlre kullan lacak HTTP youmlntemlerinden GET ya da
POST a goumlre belirlenir A a daki kod oumlrne inde oldu u gibi istek send() youmlntemi
ile bir ccedila r y tetikler
var xmlHttp
function validateEposta()
var eposta= documentgetElementById(eposta)
var url = validateeposta= + escape(epostavalue)
if (windowActiveXObject)
xmlHttp = new ActiveXObject(MicrosoftXMLHTTP)
else if (windowXMLHttpRequest)
xmlHttp = new XMLHttpRequest()
xmlHttpopen(GET url)
xmlHttponreadystatechange = gericagir
33
xmlHttpsend(null)
3 Sunucuya bir istek yap l r Bu bir servlet CGI script PHP ya da ASPNET ile
yaz lm herhangi bir sunucu tarafl (server-side) script olabilir
4 Sunucu herhangi bir veri ambar na eri ebilir
5 stek taray c ya geri doumlnduumlruumlluumlr XHR nesnesi Content-Type ayar textxml dir
XHR nesnesi sadece texthtml tipindeki sonuccedillar i leyebilir Daha karma k
oumlrneklerde cevap JavaScript DOM manipuumllasyon ya da ba ka benzer teknolojiler
iccedilerebilir
responsesetHeader(Cache-Control no-cache)
responsesetHeader(Pragma no-cache)
Taray c lokal sonuccedillar oumln belle inde depolamaz Bunun iccedilin yukar daki kod sat rlar na
ihtiyaccedil duyar
6 Bu oumlrnekte i lemler geri doumlnduumlruumllduuml uumlnde gericagir() ad ndaki XHR fonksiyonu
ayarlan r Bu fonksiyon sunucudan goumlnderilen durum kodlar na bakar ve XHR
nesnesinin readyState oumlzelli ini kontrol eder gericagir() fonksiyonu beklendi i gibi
i lenmi se a a daki gibi bir kod parccedilas goumlruumlluumlr
function gericagir()
if (xmlHttpreadyState == 4)
if (xmlHttpstatus == 200)
stek Ba ar l
Yukar daki anlat mla XHR nesnesinin ccedilal ma mant na de inilmi tir Genellikle
kullan lan standart ccedila r lar oumlrneklenmi tir Bu ccedila r lar yap l rken bir kuumltuumlphaneden yap lan bir
uygulamadan da faydalan labilir Yeni bir ccedilal ma alan olmas na ra men accedil k kaynak
topluluklar nda hat r say l r etkinlikler yap lmaktad r [49]
Uygulamalar olu turulurken genellikle ccedile itli frameworkler ve toolkitlerden faydalan l r
Bunlardan baz lar sadece istemci tarafl ccedilal r baz lar ise sunucu uumlzerinde ccedilal maya ihtiyaccedil
duyar
34
Bu frameworkler suumlrekli de i en ve geli en bir ortam oldu u iccedilin yeni kuumltuumlphaneler ve
suumlruumlmleri takip edilmelidir En yayg n kullan lan kuumltuumlphanelerin ba nda Prototype
scriptaculous Dojo Toolkit Direct Web Remoting (DWR) Taconite ve Rico gelmektedir [49]
36 AJAX Olu turan Bile enler
Asynchronous JavaScript and XML kelimelerinin ba harflerinden olu an AJAX
kavram kullan l zengin Web uygulamalar geli tirebilmek iccedilin pratik bir araccedilt r [50]
AJAX n A parccedilas veri ileti im tekni ini JA parccedilas ileti im youmlntemini X
parccedilas tekni in veri kodlama k sm n olu turur AJAX tam manas yla anlayabilmek iccedilin onu
olu turan bile enlerin her birini de anlamak gerekmektedir [41]
361 E zamanl Olmayan leti im
AJAX tekni inin ccedilekirde ini olu turan XMLHttpRequest nesnesi hem e zamanl hem
de e zamans z olarak ccedilal abilen bir yap uumlzerine kurulmu tur
Ccedilo u AJAX uygulamas XHR nesnesini asenkron olarak kullan r Asenkron istek
taray c ya goumlnderilir ama sunucudan bir cevap gelmesini beklemektense sonraki istek kodlar
i letilmeye devam eder lenen cevap goumlnderildi inde XHR nesnesinin onreadystatechange
oumlzelli i bir fonksiyona ba lan r Bu fonksiyonun i letilmesinden sonra readystate koduyla
iste in durumu test edilir readystate oumlzelli i 4 de erini ald nda sunucuya istek tamamland
ve sonuccedil geldi mesaj gider [51]
A a daki kod parccedilas nda asenkron bir ileti im goumlsterilmektedir [51]
get recipe using Ajax
function getRecipe(evnt)
if (xmlhttp) xmlhttp = aaGetXmlHttpRequest( )
if (xmlhttp) return
var drink = encodeURIComponent(documentgetElementById(drink)value)
var qry = drink= + drink
var url = recipephp + qry
xmlhttpopen(GET url true)
xmlhttponreadystatechange = printRecipe
xmlhttpsend(null)
if (evnt ampamp evntpreventDefault( ))
evntpreventDefault( )
35
return false
E zamans z ileti imde kullan c ayn zaman diliminde birden fazla i lem yapabilir
Oumlrne in Web sayfas nda bir form dolduruldu unda formdaki bilgiler AJAX ile goumlnderilirken
i lemin bitmesini beklemek gerekmemektedir O zaman diliminde Web sayfas n n ba ka bir
yerinde bulunan anket cevapland r labilir Ccediluumlnkuuml e zamanl
ccedilal l rken bloke edilen JavaScript
motoru e zamans z ccedilal rken serbesttir ve ba ka isteklerin goumlnderilmesine muumlsaade eder Yani
ayn zaman dilimi iccedilerisinde birden fazla iste i kabul edebilir [52]
ekil 314 E zamanl olmayan ileti im modeli
ekil 314 te goumlruumllduuml uuml gibi ayn zaman dilimi iccedilerisinde 4 adet istek yap lm t r
Kullan c bu isteklerin tamamlanmas n beklemek zorunda de ildir Bu sebeple istemci ve
sunucu aras ndaki t kla-bekle-t kla-bekle etkile imi ortadan kalkmaktad r
362 E zamanl leti im
Senkron isteklerde taray c cevap iccedilin beklerken kilitlenir
var state = documentforms[0]elements[0]value
var url = ajaxphpstate= + state
xmlhttpopen(GET url false)
xmlhttpsend(null)
alert(xmlhttpgetAllResponseHeaders( ))
Yukar daki kod dizesiyle bir form alan na Web servisi uumlzerindeki HTTP GET istek
yap s kullan larak eri ilir Uumlccediluumlncuuml sat rdaki open youmlnteminin uumlccediluumlncuuml parametresinin false
olmas n n anlam iste in e zamanl (senkron) oldu unu goumlsterir Herhangi bir parametre
almadan null de erli istek goumlnderilir stek goumlnderildikten hemen sonra uyar mesaj kutusu
36
accedil larak cevap ba l yaz l r [51] Kullan lan Web servisi h zl ysa cevap hemen gelir E er
servis yava sa istek bitinceye kadar di er sayfa aktiviteleri gerccedilekle emez [51]
E zamanl
ileti imde ayn zaman diliminde yaln zca bir i lem yap labilinir Web
taray c m zdan uzaktaki Web sunucusuna goumlnderilen istek Web sunucusunda i lenir ve tekrar
geldi i yoldan Web taray c s na geri doumlner Bu i lem belli bir zaman al r E zamanl
ccedilal rken
bu zaman diliminde ba ka bir istek goumlnderilemez [52]
E zamanl
ccedilal ma oumlzellikle Web sunucusu ayn bilgisayarda ise veya yak n olan bir
LAN uumlzerindeyse sa l kl ccedilal abilir Fakat Web sunucusu a r bir yuumlk alt ndaysa veya Web
taray c s Web sunucusuyla yava bir ba lant uumlzerinden etkile ime geccediltiyse koumltuuml bir
performans verecektir Ccediluumlnkuuml Web taray c s iccedilindeki JavaScript motoru goumlnderdi i istek
tamamlan ncaya kadar bloke edilir ve Web taray c s donmu bir ekilde iste in
tamamlanmas n bekler Bu zaman diliminde kullan c goumlnderilen iste i iptal de edemez Bu
yuumlzden Web sayfas ndaki ba ka bir noktaya t klayamaz veya ba ka bir sekmeye geccedili yapamaz
[52]
ekil 315 E zamanl
ileti im modeli
ekil 315 de goumlruumllduuml uuml gibi Web taray c s ndan goumlnderilen 1 nolu istek Web
sunucusuna iletilmektedir Al nan istek i lendikten sonra Web taray c s na geri
goumlnderilmektedir Bu zaman diliminde ba ka bir istek yap lamaz
363 Javascript
1995 y l nda Brendan Eich ad ndaki yaz l m geli tiricisi taraf ndan Netscape Navigator
20 ile birlikte geli tirilen JavaScript dili istemci tarafl
(client-side) bir betik (script) dilidir
Web sayfalar nda dinamik iccedilerik sa lamak ya da kullan c yla ileti im kurmak iccedilin kullan l r [53]
Bu ileti imin sa lanabilmesi iccedilin ortak kurallar duumlnyada uluslararas standart kurumu olan
Avrupa Bilgisayar Uumlreticileri Birli i (European Computer Manufacturers Association-ECMA)
taraf ndan belirlenir Temel kurallar ECMA Script (ECMA-262) ad verilen bir standartta
toplanm t r [54]
37
Javascript in soumlz dizim kurallar C diline benzerlik goumlsterir Derleme i lemi yap lmayan
ayr t rmal (parsed language) bir dildir Nesne youmlnelimli programlama (Object Oriented
Programming - OOP) yetene ine sahiptir [55]
AJAX n JavaScript le olan ili kisi k saca u ekilde oumlzetlenir Herkes taraf ndan
bilinen goumlnder (submit)-cevap(response) doumlnguumlsuumlnuumln oumlnuumlne geccedilerek kullan c lar n Web
sunucusuyla direk etkile im iccedilinde bulunmas n sa lar [56] AJAX goumlnder duuml mesi olmaks z n
sunucu etkile imini sa lar Veriye ihtiyaccedil duyuldu unda Web sayfas iccedilindeki Javascript kodlar
ile bir istek yapar Sunucu cevab tam bir HTML sayfas olarak de il veri olarak geri doumlnduumlruumlr
ve istemciyi cevaplar Cevab n bu ekilde olu turulmas Web uygulamalar n n masauumlstuuml
uygulamalar gibi ccedilal abilmesini sa lar [56]
Sonuccedil olarak Javascript HTML kodlar aras na goumlmuumllebilen kod parccedilalar d r Bunun
yan s ra tek ba na js uzant l JavaScript kodlar da yaz labilir Bu kodlar Internet Explorer
Firefox Opera vb tuumlm taray c lar taraf ndan desteklendi i iccedilin sorunsuz ccedilal r [57]
3631 JavaScript Ccedilal ma Prensibi
JavaScript kodlar
iccedilin herhangi bir metin editoumlruuml kullan labilir ya da Notepad gibi bir
duumlz yaz program yla da kodlar olu turulabilir Taray c lar n yorumlayabilmesi iccedilin ltSCRIPTgt
etiketiyle ba layan ltSCRIPTgt etiket ile biten JavaScript kodlar HTML belgelerinin ccedile itli
yerlerine eklenebilir Eklenen kodlar kullan c lar n HTML belgesindeki bir ba lant ya t klamas
veya klavyede bir tu a basmas yla tetiklenir ya da HTML sayfas kullan c
Browser nda
goumlruumlntuumllendi i anda otomatik olarak ccedilal maya ba lar Otomatik ccedilal an Javascript kodu ise iki
ayr youmlntemle ccedilal t r labilir lk youmlntem HTML kodlar i letilmeden oumlnce (yani Web sayfas
kullan c n n Web Browser nda goumlruumlntuumllenmeden oumlnce) ccedilal mas ikinci youmlntem sayfa
goumlruumlntuumllendikten sonra script kodlar n n ccedilal mas d r [58] Bu youmlntemler a a da s ras yla
accedil klanmaktad r
HEAD boumlluumlmuumlnde
BODY boumlluumlmuumlnde
HEAD Boumlluumlmuumlndeki Scriptler HEAD etiketleri iccediline ltSCRIPTgt ltSCRIPTgt etiketi
kullanarak istenilen JavaScript kodlar
eklenebilir Bu kodlar HTML sayfas n n BODY boumlluumlmuuml
yuumlklenmeden i lenir
38
ltHTMLgt
ltHEADgt
ltSCRIPT LANGUAGE=Javascript12gt
alert(Merhaba Duumlnya) ltSCRIPTgt
ltHEADgt
ltBODYgt
ltBgtDeneme Sayfas na Ho geldinizltBgtltbrgt
ltBODYgt
ltHTMLgt
Yukar daki oumlrnekte kaynak kodlar yukar dan a a ya do ru i letilirken sayfada ilk
goumlruumlntuumllenecek olan alert( ) komutuyla ekrana yaz lan Merhaba Duumlnya
ileti im kutusu
olacakt r Gelen ileti im kutusunda Tamam butonuna bas ld nda body boumlluumlmuumlndeki
kodlar n i lenmesine s ra gelecektir Ekrana Deneme Sayfas na Ho geldiniz mesaj
yazacakt r
BODY Boumlluumlmuumlndeki Scriptler HTML belgesinin BODY boumlluumlmuumlnde JavaScript
kullanmak iccedilin iki yol vard r
Do rudan ccedilal acak kodlar ve kullan c taraf ndan ccedilal acak kodlar
Do rudan ccedilal acak JavaScript kodlar
ltBODYgtltBODYgt etiketleri aras na
ltSCRIPTgt etiketi kullan larak HTML belgesinin istenilen yerine yaz l r Bu cuumlmleler taray c
taraf ndan okundu u anda yerine getirilir
ltHTMLgt
ltHEADgt
kinci Ornek
ltHEADgt
ltBODYgt
ltSCRIPT LANGUAGE=Javascript12gt
alert(Javascript duumlnyas na ho geldiniz)
ltSCRIPTgt
ltBODYgt
ltHTMLgt
Yukar daki oumlrnekte ise kod i leme s ras na uygun olarak i letilerek oumlnce HEAD
etiketleri yorumlanarak ekrana kinci Ornek yaz p hemen ard ndan ileti im kutusu ccedil karak
39
Javascript duumlnyas na ho geldiniz yazacakt r Kullan lan di er bir youmlntem ise kullan c
taraf ndan bir olay n ba lat lmas yla bir JavaScript kodunun ccedilal t r lmas d r
ltHTMLgt
ltHEADgt
ltSCRIPT LANGUAGE=Javascript12gt
genel de i ken tan mlar
var n = Merhaba Duumlnya
bu fonksiyon uyar kutusu accedilar
function merhaba()
alert(n)
ltSCRIPTgt
ltHEADgt
ltBODYgt
ltbrgtltbrgtltbrgtltbrgtltBgtButona T klad n zda Merhaba Duumlnya yazan ileti im kutusu ekrana
gelecektirltBgtltbrgtltbrgt
ltFORMgt
ltINPUT TYPE=SUBMIT NAME=dugme1 VALUE=TIKLAYINIZ
onclick=merhaba()gt
ltFORMgt
ltBODYgt
ltHTMLgt
Yukar daki oumlrnekte ise HEAD etiketleri aras nda de i ken tan mlama ve fonksiyon
olu turma i lemleri yap lm t r BODY komutu i letildikten sonra FORM ouml esiyle olu turulan
duuml me kullan c taraf ndan t kland nda script kodu tetiklenerek fonksiyon ccedila r l r ve mesaj
kutusu ekrana gelir
Ayr ca ltBODYgt iccedilinde URL kullan larak da a a daki oumlrnek kodla goumlsterildi i gibi
JavaScript kodu ccedila r labilmek muumlmkuumlnduumlr
ltA HREF=javascript alert(Ccedil kmak istedi inizden emin misiniz)gtSiteden Ccedil kltAgt
40
3632 Javascript Dilinin Oumlzellikleri
JavaScript dilinin temel soumlz dizim yap s na a a da incelenecektir
36321 De i kenler
Bir de eri iccedileren bellek adlar n ifade ederler De i kenler verileri saklar ve onlara
eri imi sa larlar De i kenlerin bir ad olur bir de de eri olur Program boyunca de i kenin ad
de i mez fakat iccedileri i de i ebilir
Bir JavaScript de i keni belli kurallara uymak zorundad r
a) De i kenler harfle ya da alt ccedilizgi (_) ile ba lamal d r Rakam veya di er
i aretler birinci karakter olarak kullan lamaz fakat de i ken ad n n di er
karakterlerinde kullan labilir
b) Javascript buumlyuumlk kuumlccediluumlk harfe kar duyarl d r (case-sensitive oumlzellli i) Ayn
kelimenin buumlyuumlk harfle yaz lmas ile kuumlccediluumlk harfle yaz lmas farkl isimler
olarak alg lanmas na neden olur
c) De i ken isimleri iccedilinde bo luk olmamal d r
d) Kullan c lar n bilgisayar nda kullan lan dil setinin ayarlar her bir kullan c iccedilin
farkl l k goumlsterebilece i iccedilin ngilizce alfabede bulunmayan Tuumlrkccedile ve di er
dillerdeki high-ASCII karakterleri ( ile uuml Uuml ouml Ouml ccedil ve Ccedil)
kullanmamakta fayda vard r [58]
36322 Kapsam
Bir de i kene bir de er atand nda bu de erin geccedilerli olaca suumlreyi belirlemek iccedilin
kapsam (scope) kavram kullan l r Bir de i kenin kapsam
global ya da lokal olabilir Bir
global de i kene sayfa uumlzerinde herhangi bir JavaScript ten eri ilebilir Lokal de i ken ise
de erin atand yordam iccedilinde geccedilerlidir
A a daki oumlrnekte bir de i kenin kendisine atama yaparak de er verilir
adi= Zeynep
Bir fonksiyon yaz l rken yerel bir de i ken olu turmak iccedilin a a daki oumlrnekte oldu u
gibi var kelimesiyle tan mlama yap l r
41
function toplama()
var sayi=1
toplam=0
deyimler
Yukar daki oumlrnekte sayi adl de i ken toplama fonksiyonu iccedilin yerel toplam de i keni
ise tuumlm sayfa iccedilin genel (global) de i ken olacakt r De i kenlere atanan de erler Tablo
33 deki de i ken tuumlrlerinden herhangi biri olabilir Verinin tuumlruumlne ba l olarak de er uumlzerinde
belirli i lemler yap labilir ya da yap lamaz Oumlrne in iki string de er uumlzerinde aritmetik i lem
yap lamaz
Tablo 33 De i ken tuumlrleri
De i ken Tuumlrleri
Numbers Tam ve ondal kl
say lar iccedilerir Pozitif 0 ya da negatif olabilir
Booleans Mant ksal veri tuumlruumlduumlr True (Do ru) ya da False (Yanl ) de erini al r Sorgulama
sonunda geriye True iccedilin 1 False iccedilin 0 de erini doumlnduumlruumlr
Strings Karakter bilgi iccedileren bir de i kendir T rnak iccedilinde yaz lan ifadeler de i kene
atan r
Objects Taray c ya ait nesnelerdir nesne= new Object() eklinde kodlamada kullan labilir
Null Oumlzel bir de i kendir ccedili bo ya da de ersiz olarak ifade edilir
Undefined
Bir de i ken yarat ld ktan sonra iccedilerdi i tan ms z de eri simgeler
36323 leccediller (Operators)
leccediller iki ya da daha fazla de er uumlzerinde i lem yap lmas n sa lar De erler ya da
de i kenler aras nda toplama ccedil karma mod gibi i lemler yap labilir
Tablo 34 leccediller ve goumlrevleri
leccediller ve Goumlrevleri
+ Toplama
- Ccedil karma
Ccedilarpma
Boumllme
42
MOD Boumllmede kalan verir (10 3 i lemi 1 de erini verir )
++
Tek art r m De er 1 art r l r
-- Tekli azaltma
- Negatifle tirme lenenin negatif de erini doumlnduumlruumlr
36324 kili leccediller
kili i leccediller birden ccedilok kar la t rma i lemini tek bir ko ul ifadesi olarak birle tirirler
Oumlrne in
sayi =1 AND dongu gt 1000 ise gibi
Tablo 35 kili i leccediller
kili i leccediller
ampamp
Mant ksal Ve And ki ifade de do ruysa True de erini doumlnduumlruumlr
|| Mant ksal Veya Or fadelerden birisi do ruysa True de erini doumlnduumlruumlr
Mant ksal De il Not Negatifle tirme i lemi do ruysa True de erini doumlnduumlruumlr
36325 Atama Deyimi
Atama deyimi (=) bir de i kene sa dan bir de erin atanmas n sa lar De i kenlere
tuumlrlerine ve tan mlamalar na uygun olan herhangi bir de er atanabilir
Oumlrnek sayi=100
Oumlrnek toplam=(fiyat+kdv)
Sa daki de eri soldaki de i kene atayan += -= = = ifadeleri de kullan labilir
Oumlrne in toplam+=fiyat (di er bir de i kenden gelen fiyat de erini toplam de erine
ekler ve sonucu toplam de i kenine atar)
36326 fadeler
De i kenlerin i leccedillerin ve deyimlerin bir araya gelerek olu turduklar yap lar
ifade
eder
Oumlrne in toplam = sayi 1 sayi2 formuumlluuml bir ifadedir
43
36327 Deyimler
Deyimler belli bir komut ya da soumlz dizimi bile enlerine verilen add r Oumlrne in bir komut
ya da bir IF yap s deyim olabilir
Oumlrnek if (basari_notugt50) deyimler else deyimler
36328 Nesneler
Kendi de erleri oumlzellikleri ve i lemleri olan bile enlere nesne (object) denir JavaScript
dilinde ccedilok say da yerle ik nesne vard r
JavaScript buumltuumln Web sayfas n ve taray c y nesneler toplulu u olarak goumlruumlr Bu
sisteme DOM (Document Object Model) denir [59]
JavaScript kullanarak dinamik ve etkile imli goumlruumlnuumlmler elde edilir DOM a JavaScript
ve JScript gibi ECMAScript olan kullan c taraf ndaki bir scripting dili yard m yla eri ilebilinir
DOM la veri al -veri i yeni bir sayfada kullan c ekran na yans t lmaz Parccedilal guumlncelleme
olay n n buumlyuumlk k sm bu modelle gerccedilekle tirilir
Ba lang ccedilta Javascript geli tiricileri kullan c lar na daha zengin uygulama deneyimleri
ya atabilmek ve sayfalardaki etiketlerde dinamik de i imler sa lanabilmesi iccedilin ccedilaba sarf
ediyordu Bu durum sayfalar n bir nesne gibi i lenebilmesini gerekli k ld Boumlylece DOM ortaya
ccedil km t r lk oumlnceleri Javascript ve DOM s k bir ili ki iccedilindeydi sonuccedilta ise iccedilerik ayr larak
geli tirilmi tir DOM sayfalar n JavaScript veya VBScript gibi bir betik dili ile de i tirilebilir
sayfalar n tamamen nesne youmlnelimli goumlsterimidir [60]
DOM ekil 316 da goumlsterilen JavaScript iccedilindeki buumltuumln nesneleri ifade etmektedir
Hiyerar ik olarak ccedilok say da nesneyi iccedilerir NetScape ve Microsoft taray c lar iccedilin DOM
nesneleri farkl oldu u iccedilin yaz lan kodlar uyumlu de ildir [59]
44
ekil 316 Javascript nesneleri [59]
Window nesnesi taray c n n kendisidir Window nesnesi birccedilok youmlnteme oumlzelli e ve
olaya sahiptir Form nesnesi DOM nesnesinin ana nesnesidir Form uumlzerindeki alanlar bu nesne
arac l yla kullan l r [59]
Verilerin yuumlklenmesinde kullan lan XML ile uumlretilen Javascript istemci kodlar ve veri
sunucu uumlzerindeki kodlar aras ndan ayr larak goumlsterilir Bu istemcinin etkilenmeksizin sunucu
uumlzerinde de i iklik yap lmas n sa lar Benzer API iccedileren di er istemciler iccedilin bilgileri accedil a
ccedil kar r [41]
363281 DOM (Document Object Model)
Document Object Model (DOM) XML ve HTMLXHTML iccedilin World Wide Web
Consortium (W3C) taraf ndan geli tirilen bir belgenin a accedil yap s n (tree-based) temsil eden bir
standartt r DOM bir tak m nesneler iccedilin belgenin yap s n temsil etmesinin yan s ra bu
nesnelere eri im iccedilin youmlntemler de sa lar [44]
DOM bir belgenin stilini kaynak dosyas n yap s n ve iccedileri ini guumlnceller ve program
ile scriptlerin belgeye eri imine izin veren bir platformdur Ayn zamanda bir API (application
programming interface) dir [62]
Nesneleri iccedileren belgeler iccedilin standart model olarak DOM uumlccedil boumlluumlme ayr lm t r
Core DOM
XML
HTMLXML DOM - XML
45
HTML DOM
HTML
DOM da her internet sayfas bir belge ve bu belge iccedilerisinde bulunan tuumlm elemanlar ise
nesne olarak kabul edilir DOM sayfa uumlzerindeki her bir XML eleman
iccedilin nesnelerin a accedil
yap s n n resmini goumlrselle tirmenin kolay bir yoludur A a daki oumlrnek basit bir XML
belgesinin doumlrt duuml uumlmden olu an DOM u goumlstermektedir Koumlk Dokuumlman duuml uumlmuuml koumlk etiketi
iccedilin bir Element duuml uumlmuuml alt etiketler iccedilin bir Element duuml uumlmuuml ve alt etiketin sahip olaca
herhangi bir bilgi girilebilen bir metin duuml uumlmuumlduumlr [41]
ltrootTaggt
ltchildTaggtSome TextltchildTaggt
ltrootTaggt
Bir a accedil yap s n n goumlrsel bir temsili a a da goumlsterilmektedir
Dokuumlman
Element (koumlkEtiket)
Element (altEtiket)
Metin
A a daki kod kuumlmesinin [63] DOM goumlsterimi ekil 317 deki gibidir
ltTABLE border=1gt
ltTBODYgt
ltTRgt
ltTDgtOumlgr NoltTDgt
ltTDgtAd Soyad ltTDgt
ltTRgt
ltTRgt
ltTDgt900ltTDgt
ltTDgtZeynep OumlZERltTDgt
ltTRgt
ltTBODYgt
ltTABLEgt
46
ekil 317 DOM a accedil yap s
[63]
Geccedilerli her HTML ve XML belgesindeki element nitelik metin duuml uumlmuuml (text node)
hatta bo luk ve sekme karakterleri(whitespace) bile W3C DOM taraf ndan duuml uumlm (node) olarak
kabul edilir ekil 317 deki gibi belgedeki duuml uumlmlerin kullan m hiyerar isine goumlre
s ralanmas na da duuml uumlm a ac (node tree) denir Belge nesnesi yeni duuml uumlmler olu turmak bu
duuml uumlmlerin oumlzeliklerini de i tirmek ve youmlnetmek iccedilin ccedilok say da youmlnteme sahiptir
363282 DOM Elementinin S k Kullan lan Genel Oumlzellikleri ve Youmlntemleri
A a da duuml uumlmlere eri mek ve youmlnetmek iccedilin s k kullan lan JavaScript youmlntemleri
vard r [64]
getElementById()
Soumlzdizimi
documentgetElementById(herhangiBirID)
Oumlrnek kullan m
element = documentgetElementById(kimlik)
getElementById() youmlntemi id oumlzelli i belirtilen elementlerin referans n n al nmas n
sa lar Ayn id kimli ine sahip ba ka bir element olmas durumunda sadece ilk elementi verir
Di erlerine eri im sa lamaz kimlik
dokuumlman uumlzerinde elementi bulmak iccedilin kullan lacak
e siz bir oumlzelli ini ifade eder
47
getElementsByTagName()
Soumlzdizimi
documentgetElementsByTagName(herhangiBirHTMLElementi)
Oumlrnek kullan m
documentgetElementsByTagName(etiketAdi)
Dokuumlman uumlzerinde belirtilen ayn etiket ismine ait buumltuumln elementlerin bir listesini verir
documentgetElementById(herhangiBirID)documentgetElementsByTagName()
parametresiyle id niteli inin de eri herhangiBirID olan elementin duuml uumlmleri
iccedilindeki tuumlm elementler listelenir
getElementsByName()
Soumlzdizimi
documentgetElementsByName(herhangiBirIsim)
Oumlrnek Kullan m
documentgetElementsByName(baslik)
Bu youmlntem dokuumlman uumlzerinde belirtilen name oumlzelli ine sahip elementlerin bir listesini
verir Oumlrnek kullan mda name niteli inin de eri baslik olan elementleri verir
firstChild
Bu oumlzellik elementin ilk alt elementini verir
Soumlzdizimi
documentgetElementById(herhangiBirID)firstChild
lastChild
Bu oumlzellik elementin son alt eleman n verir
Soumlzdizimi
documentgetElemementById( herhangiBirID )lastChild
48
nodeValue
nodeValue oumlzelli i text comment ve CDATA duuml uumlmlerinin iccedilerdikleri de eri verir
Soumlzdizimi
m= documentgetElemementById( herhangiBirID )lastChildnodeValue
m e er varsa duuml uumlmuumln iccedilerdi i de erin string olarak de eridir document nesnesinin
ve elementlerin nodeValue de eri null doumlner
removeAttribute()
removeAttribute fonksiyonu elementin belirtilen bir oumlzelli inin silinmesini sa lar
Soumlzdizimi
elementremoveAttribute(ozellik)
ozellik silinecek oumlzelli in ad d r
nodeName
Duuml uumlm bilgilerini almak iccedilin kullan l r Geccedilerli duuml uumlmuumln ad n doumlnduumlruumlr
Geccedilerli duuml uumlm element ise elementin tipini doumlnduumlruumlr Nitelik ise nitelik ad n doumlnduumlruumlr
nodeType
Geccedilerli duuml uumlmuumln tuumlruumlnuuml say sal olarak doumlnduumlruumlr
nextSibling
Duuml uumlmler aras gezinti yap labilmesiyi sa lar Geccedilerli duuml uumlmden bir sonrakine referans verir
previousSibling
Geccedilerli duuml uumlmuumln bir oumlncekine referans verir
setAttributeNode
Bir duuml uumlme nitelik atamada kullan l r
Soumlzdizimi
elementsetAttributeNode(nitelik)
49
36329 Fonksiyonlar
Fonksiyonlar birden fazla ad mdan olu an i lemlerin kolayca tek seferde yap lmas n
sa lar Fonksiyonlar bir dizi i lemi yerine getirir ve bir sonuccedil doumlnduumlruumlr Ayr ca fonksiyonlar
parametre olarak kabul edilen birccedilok de er al rlar
Fonksiyonlar n HTML dosyas n n HEAD boumlluumlmuumlne koyulmas yani gerekli buumltuumln
fonksiyonlar alt alta HTML in HEAD boumlluumlmuumlnde yer alacak bir SCRIPT etiketi iccedilinde
olu turulmas taray c n n Javascript yorumlay c s bak m ndan h z kazanmas n sa lar Sonra
ihtiyaccedil duyuldu unda yeni bir SCRIPT etiketi koyarak bu fonksiyon goumlreve ccedila r l r [58]
function fonksiyonun_ad (arguumlman1 arguumlman2 arguumlmanN)
i lemler
deyim 1
deyim 2
deyim N
363210 Accedil klamalar
Programlar n anla l r olmas n sa layan accedil klama sat rlar JavaScriptte bu lt- ve --gt
i aretlerinin aras nda ifade edilir [58]
lt- Accedil klama sat r d r --gt
37 Basit Bir AJAX Oumlrne i
Ekran ccedil kt s ekil 318 de goumlruumllen basit bir oumlrnek uumlzerinde i leyi anlat lacakt r
ekil 318 AJAX oumlrne i
50
indexhtml dosyas accedil ld nda Metnin AJAX la getirilmesi iccedilin tiklayiniz
ba lant s na t kland nda taray c kullan lan AJAX youmlntem sayesinde tuumlm sayfa yeniden
yuumlklenmeden iccedileri i sunucu da depolanan sonuchtm dosyas ndan alarak ekrana yans t r
Yukar daki indexhtml dosyas n n kodlar a a da goumlsterilmektedir
lthtmlgt
ltheadgt
lttitlegtAJAXla oumlrne ilttitlegt
ltscript language=JavaScript type=textjavascriptgt
function getXmlHttpRequestObject()
if (windowXMLHttpRequest)
return new XMLHttpRequest() IE olmayan
else if(windowActiveXObject)
return new ActiveXObject(MicrosoftXMLHTTP) IE
else
alert(Maalesef taray c n z XmlHttpRequest nesnesini desteklememektedir AJAX
destekleyen bir taray c da tekrar deneyiniz)
var receiveReq = getXmlHttpRequestObject()
function cevap()
if (receiveReqreadyState == 4 || receiveReqreadyState == 0)
receiveReqopen(GET sonuchtml true)
receiveReqonreadystatechange = handlecevap
receiveReqsend(null)
function handlecevap()
if (receiveReqreadyState == 4)
documentgetElementById(span_result)innerHTML = receiveReqresponseText
ltscriptgt
ltheadgt
lta href=javascriptcevap()gtMetnin AJAXla getirilmesi icin tiklayinizltagtltbr gt
51
ltspan id=span_resultgtltspangt
lthtmlgt
Oumlrnekte ilk olarak tuumlm taray c larda sorunsuz ccedilal abilmesi iccedilin ccedilapraz taray c deste i
sa lanm t r receiveReq de i keni getXmlHttpRequestObject() ile tan mlanm t r Daha
sonra cevap fonksiyonu olu turulmu tur Sunucudan gelen cevab n durumu ifelse yap s yla
kontrol edilmi tir Sunucudan gelen gelen cevaba goumlre doumlnduumlruumllen de erlerle sonuchtml sayfas
ccedila r larak uygulama sonlan r
AJAX youmlntemi ile ccedilekilen bilginin tutuldu u sonuchtml dosyas nda ise sadece ekil
319 de yazan veri bulunmaktad r
ekil 319 sonuchtml sayfas n n ekran ccedil kt s
38 XML
XML (eXtensible Markup Language) internet te teknik standartlar ve youmlnetim
konusunda yetkili organ olan W3C (World Wide Web Consortium) organizasyonu taraf ndan
geli tirilmi tir XML programc lar n kendi sistemlerini olu turabilecekleri kendi etiketlerini
tan mlayarak ccedilok daha rahat ve etkin programlama yapabilecekleri ve bu belirlenen etiketleri
kendi yap lar iccedilerisinde standartla t rabilece i esnek geli tirilebilir ve kolay uygulanabilir bir
meta-dil (bir dili tan mlamak iccedilin kullan lan soumlzcuumlkler dilbilim dili) dir [65]
XML ile ilgili ilk ve en oumlnemli nokta ba l ba na bir dil olmamas d r Daha ziyade
di er dilleri ya da bir dili olu turan soumlzcuumlkleri olu turmak (vocabularies) iccedilin kullan lan bir
meta-dildir XML bu soumlzluumlklerin olu turulmas iccedilin gerekli kurallar tan mlar [66]
XML bu kural yap s na uygun olarak etiketleri iccedilerik bilgisiyle tan mlayabilir XML nin
esnek yap s sayesinde a a daki oumlrnekte oldu u gibi kullan lan dilde ccedilok farkl tiplerde etiket
olu turulmas na muumlsaittir XML soumlzluuml uumlndeki tek k s tlamas etiketlerin iyi biccedilimlendirilmi
olmas gerekti idir [66]
52
ltnotgt
ltkimegt Melek lt kimegt
ltkimdengt Zeynep lt kimdengt
ltbaslikgt Hatirlatici ltbaslikgt
ltbodygt Bana proje teslim tarihini hatirlat lt bodygt
ltnotgt
Yukar daki not oumlrne i kendi kendini accedil klay c bir oumlrnektir Goumlnderici ve al c bilgisinin
yan nda mesaj metni ve ba l da mevcuttur XML nin HTML de oldu u gibi oumlnceden
tan mlanm etiketleri yoktur XML yazar kendi etiketlerini ve kendi belge yap s n oumlrnekteki
gibi olu turabilir
Her dil farkl d r ama hepsinde iccedileri i i aretlemek iccedilin etiketler kullan l r Etiket
adlar n n seccedilimi ve yap s esnektir ve genellikle gruplarda bilginin payla labilmesi iccedilin standart
XML soumlzluumlkleri kararla t r lm t r [66]
XML 1998 y l nda SGML alt yap s uumlzerine kurulmu tur SGML (Standard
Generalized Markup Language) bir etkinle tirme teknolojisidir HTML gibi uygulamalarda
kullan l r Geni letilebilir aretleme Dili (Extensible Markup Language-XML) nin oldukccedila
basit bir diyalektidir [66]
XML SGML ve HTML sistemlerinin her ikisinin de uygulanmas n kolayla t rmak iccedilin
tasarlanm t r XML ayn zamanda son derece popuumller bir veri format d r Ccediluumlnkuuml ccedilo u
programlama dili taraf ndan desteklenir Bu dil sayesinde geli iguumlzel veri tipleri tan mlamak
kolayd r Ccedilo u kez XML Uzak Yordam Ccedila r s - Remote Procedure Call (RPC) mekanizmas
sayesinde istemci-sunucu ileti imini kolayla t rmak iccedilin kullan lm t r [66] XML elde edilmek
istenen alan bilgileri konfiguumlrasyon parametreleri teknik ccedilizim hesap ccedilizelgesi (spreadsheet)
gibi ouml eleri iccedileren dosyalar n yaz l m nda kullan l r [67]
XML verileri goumlruumlntuumllemek iccedilin de il verilerin platformdan ba ms z bir ekilde
depolanmas ve transferi iccedilin tasarlanm t r XML tuumlm bilgiler duumlz metin format nda saklar Bu
da tuumlm platformlarda sorunsuz bir ekilde kullan labilir olmas n sa lar Bu dosyalar diskte duumlz
metin olarak tutman n bir avantaj
da olu turuldu u programda accedil lmas gerekli de ildir Bu
yaz dosyalar programc n n istedi i bir yaz i leme program nda accedil l p duumlzenlenebilir Ayr ca
XML veriyi duumlz metin (plain text) format nda saklamas ndan dolay veriyi payla t rma
konusunda hem yaz l m hem de donan mdan ba ms z hareket edebilme imkacircn n sunmu tur
53
381 Oumlrnek XML Belgesi Olu turma
XML belgelerinin yap s n n daha iyi kavranabilmesi iccedilin basit bir oumlrnekten yola ccedil k l r
Bir dizi karakter mant ksal bir yap ya ccedilevrilmelidir Bu ccedilevrim a accedil yap s kullan larak
yap labilir Oumlrnek belgede koumlk dizin ya da element ve alt boumlluumlmler iccedilin de dallar belirlenir
denemexml olarak kaydedilecek belgenin iccedileri inde sisteme kay tl kullan c lar n bilgileri
vard r
Haz rlanan denemexml belgesinin a accedil yap s a a daki gibi olu turulmu tur Koumlk
element ve alt dallar ve alt dala ait nitelik belirtilmi tir
ekil 320 denemexml dosyas n n a accedil yap s
A accedil yap s olu turulduktan sonra kodlama k sm na geccedililir XML de kod yaz m n
kolayla t rmak iccedilin Altova XMLSpy MoreMotion XML Editor XMLwriter XML Editor 26
gibi ccedile itli editoumlr programlar kullan labilir Bu tez ccedilal mas nda oldukccedila i levsel oumlzelliklere
sahip Altova XMLSpy yaz l m kullan lm t r Editoumlr kullanarak dokuumlmandaki metinlerin
yap sal elemanlar yaz oumlzellikleri (renk stil biccedilim vb ) belirginle tirilir mlerin otomatik
soyadi
adi
soyadi
eposta
adi
soyadi
eposta
Kullanicilar Kullanici Kullanici_id= 2
Kullanici Kullanici_id= 3
Kullanici Kullanici_id= 1
adi
eposta
54
olarak kapanmas sa lanabilir Olu turulan yap lar n do rulu u ve geccedilerlili i kolayca kontrol
edilebilir Altova XMLSpy editoumlruumlyle olu turulan belge a a daki kodlardan olu maktad r
ltxml version=10 encoding=UTF-8gt lt--Bu XML belgesi kullan c bilgilerini tan mlar --gt ltKullanicilargt
ltKullanici kullanici_id=1gt
ltadigtZeynepltadigt
ltsoyadigtOZERltsoyadigt
ltepostagtz_ozerhotmailcomltepostagt
ltKullanicigt
ltKullanici kullanici_id=2gt
ltadigtYagmurltadigt
ltsoyadigtOZERltsoyadigt
ltepostagty_ozeryahoocomltepostagt
ltKullanicigt
ltKullanici kullanici_id=3gt
ltadigtFatihltadigt
ltsoyadigtAYDOGMUSltsoyadigt
ltepostagtf_aydogmusgmailcomltepostagt
ltKullanicigt ltKullanicilargt
Haz rlanan dokuumlman iyi biccedilimlendirilmi (well-formed) bir yap ya sahiptir ekil 321
de Altova XMLSpy editoumlruumlyle olu turulan belgenin ekran goumlruumlntuumlsuumlnde denemexml
goumlruumllmektedir
55
ekil 321 XML belgesi
382 XML Dokuumlman n n Yap s
XML ile veriler yap bak m ndan moduumllerlik kazanmaktad r Bu sayede verilerin iccedilerik
yap ve sunum k s mlar ayr moduumlller halinde farkl XML dokuumlmanlar nda tutulmaktad r
Her XML belgesini olu turan moduumlller iki boumlluumlmde incelenecektir Bu moduumlller giri
boumlluumlmuuml (prolog) ve belge ya da koumlk duuml uumlm (document node) olarak ayr lm t r
Prolog XML belgesinin ba nda goumlruumlntuumllenir ve belge hakk nda iccedilerikle ilgili bilgiler
iccedilerir XML bildirimleri i lem accedil klamalar yorumlar ve DTD (Document Type
Definition)XML ema iccedilerebilir
yi duumlzenlenmi bir XML dokuumlman tek ve temel bir koumlk duuml uumlm uumlzerine kurulur
Elementler nitelikler metin CDATA (character data) varl k ve yorumlar iste e ba l olarak
eklenebilir
56
ekil 322 Oumlrnek bir XML dokuumlman yap s
[ 66]
3821 Giri Boumlluumlmuuml (Prolog)
Bu boumlluumlmde XML belgesinde bulunabilecek oumln tan mlama konular incelenecektir
3822 XML Bildirimleri
XML dokuumlmanlar genellikle a a daki bildirim sat r yla ba lar Bildirim sat r ndan
oumlnce ba ka komut sat r yaz lmamal d r Tersi bir durumda XML dokuumlman iccedileri i i leme
koyarken do ru bir ekilde okuyamaz ve hata mesaj uumlretir
ltxml version= 10 encoding= UTF-8
gt
Bu i lem sat r nda ba lang ccedil etiketi ve biti etiketi yoktur XML bildiriminin yap ld
ltxml ve gt i lem komut etiketleridir lem komutlar oumlrnekteki gibi biti ik yaz l r Bu oumlrnek
sat rda 2 tane oumlznitelik bar n r Birinci oumlznitelik xml dokuumlman n n hangi suumlruumlm oldu unu bildirir
ve yaz lmas zorunludur En yayg n kullan lan ve en guumlncel suumlruumlmuuml olan 10 yerine ba ka bir
57
de er yaz ld nda dosya i lenmeyebilir kinci oumlznitelik olan encoding belge i lenirken
kullan lacak dil seccediliminin belirtildi i aland r Oumlrnekteki kod birccedilok dili destekleyen UTF-8
karakter dil setini tan mlar
38221 lem Accedil klamalar (Processing Instructions)
Giri boumlluumlmuumlnde di er uygulamalara XML dokuumlman hakk nda bilgi veren i lem
accedil klamalar (Processing Instructions- PIs) dacirchil edilebilir lem accedil klamalar lt karakterleriyle
ba lar ve gt karakterleriyle biter PIs XML belgesinin di er boumlluumlmlerinde goumlruumllebilmesine
ra men genellikle giri boumlluumlmuumlnde goumlruumlluumlr
XML bildirimleri ltxml karakter grubuyla ba lar lem accedil klamalar yla benzerlik
goumlsterir Fakat aralar ndaki fark XML bildirimleri ltxml karakter grubuyla ba larken i lem
accedil klamalar ise lt karakterleriyle ba lar
Bir XSL stylesheet i referans goumlsteren PI goumlsterimi
ltxml-stylesheet type= textxsl
href= stylesheetxsl gt
PI nin ilk ouml esi bir isimdir PI hedefi olarak adland r l r Yukar da goumlsterilen PI xml-
stylesheet ismine sahiptir simler ltxml karakter grubundan - semboluumlyle ayr l r PI ler type=
textxsl href= stylesheetxsl metin karakter dizesine sahiptir Oumlrnek kod sat r nda stylesheet
ad nda metin iccedilerikli bir XSL dosyas referans goumlsterilmi tir
38222 Yorumlar (Comments)
Yorum sat rlar XML belgesinin hemen hemen her yerinde iste e ba l olarak
kullan labilir XML yorum sat rlar XHTML belgelerindeki yap yla ayn d r Ayn karakterlerle
ba larlar
lt--Bu alana yorumlar yaz labilir --gt
Yorum sat rlar XML belgesi i lenirken etkilenmezler Bu sat rlar programc lar n ya da
kullan c lar n program kodlar n kolayca anlayabilmeleri iccedilin yaz l r [68]
58
38223 Dokuumlman Tipi Tan mlama-The Document Type Definition (DTD) ve XML
emalar
XML belgesinin standartla t r lmas iccedilin kullan lan bir yap d r XML belgesinin hangi
elementleri iccedilerece ini ve bu elementlerin oumlzniteliklerinin ne olaca n elementlerin neleri
ta yaca n dokuumlman iccedilerisindeki tekrar eklini ve say s n kurallarla belirtir [69]
382231 DTD kullanman n Avantajlar
Veri depolama XML nin temel amaccedillar ndan birisidir Oumlrne in yaz l m geli tirecek bir
proje ekibi ccedilal rken ortak bir DTD nin olu turulmas yla geli iguumlzel yeni etiketler eklenmesinin
etiketlerle depolanan bilginin hatal s ralanmas n n etiketlere hatal nitelikler eklenmesinin
oumlnuumlne geccedililmi olur Ayr ca i lem yapan program n da bu belgeleri tan mas ve i lemesi kesinlik
kazan r [70] Belge i lenirken geccedilerlilik derleyicileri (validating parsers) XML belgesinin DTD
geccedilerlili i sa lanana kadar tekrar tekrar kontrol eder E er geccedilerlilik kontroluumlnden geccedilemezse
derleyici hata mesaj verir [66]
ccedileri in bir standarda oturtulmas yla AJAX ve dinamik DOM manipuumllasyonunda
istenmeyen gereksiz kod parccedilalar n n ve ccedilal mayan i aretlemelerin oumlnuumlne geccedililir Ayr ca daha
h zl HTML derleyicileri ve daha iyi ccedilapraz taray c performans iccedilin geli mi arama motoru
optimizasyonu sa lan r Bir DOCTYPE belirlemenin en oumlnemli etkisi HTML iccedileri inin nas l
ayr t r ld n ve yorumland n n Web taray c ya goumlsterilmesi gerekti ini belirtmesidir Ayr ca
DOCTYPE ba l olarak CSS yorumlanabilir ve HTML farkl ekilde goumlruumlntuumllenir [71]
Hangi i lem moduna dacirchil oldu u tespit edilerek Web taray c lar
DOCTYPE
doumlnuuml uumlmuumlnuuml destekler Web taray c lar bir Web sayfas n n nas l HTML ve CSS iccedileri ini
yorumlad n
ve de erlendirdi ini sayfalar n DOCTYPE bildirimlerine dayanarak de i tirir
[71]
382232 DTD tan mlama
DTD olu umu iki yolla yap labilir Birinci yol belge iccedilerisinde a a daki oumlrnekte oldu u
ilk standart sat rdan sonra ltDOCTYPE ile ba layan ve gt i areti ile biten aral kla DTD tan m
yap lmas d r DTD alan nda bir kok_element_adi etiketi tan mlanm t r [ ]
i aretleri aras nda
iccedilsel olarak tan mlanm t r Bu etiketin iccedilerisine element_icerigi olarak alt alanlar belirtilir
XML dokuumlman n n iccedilerik k sm na tan mlanan kok_element_adi etiketleri aras na istenilen metin
giri i yap l r
59
ltxml version= 10 encoding= UTF-8 gt
ltDOCTYPE kok_element_adi
[ltELEMENT kok_element_adi (element_icerigi) gt ]
gt
lt kok_element_adi gt Bu basit bir DTDli XML ornegidir lt kok_element_adi gt
kinci yol ise Web sayfalar n n iccedileri i bir geccedilerlilik servisi kullan larak onaylanmas d r
Do rulu u W3C1 taraf ndan garantiye al nan bir DTD ile geccedilerlilik kontroluuml sa lanabilir [71]
HTML XHTML SMIL MathMLvb Web dokuumlmanlar n n httpvalidatorw3org adresinden
URI adresi dosyalar upload edilerek ya da direk i aretleme giri i yap larak geccedilerlilik kontroluuml
yap labilir [72]
DTD tan m a a daki oumlrnekteki gibi HTML belgesine harici olarak
httpwwww3orgTRxhtml1DTDxhtml1-strictdtd adresindeki haz r kural yap s
dacirchil edilir
Kural ak bu adresten sa lan r [72] A a daki kod sat r nda XML veri tan mlamas na goumlre
ltcodegtltcodegt etiketleri olu turulmu tur
ltDOCTYPE html
PUBLIC -W3CDTD XHTML 10 StrictEN
httpwwww3orgTRxhtml1DTDxhtml1-strictdtdgt
lthtmlgt
ltbodygt
ltpgt Bu alana serbest metin giri i yap labilir
ltcodegt
Bu alanda ise XML veri tan mlamas DTD tan m na goumlre yap lm t r
ltcodegt
ltpgt
ltbodygt
lthtmlgt
Programc lar n en ccedilok ihtiyaccedil duyabilece i 6 tane oumlncelikli DOCTYPE belgelerinin
listesi a a da verilmi tir [72]
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401EN
httpwwww3orgTRhtml4strictdtdgt
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 TransitionalEN
httpwwww3orgTRhtml4loosedtdgt
ltDOCTYPE HTML PUBLIC -W3CDTD HTML 401 FramesetEN
60
httpwwww3orgTRhtml4framesetdtdgt
ltDOCTYPE html PUBLIC -W3CDTD XHTML 10 StrictEN
httpwwww3orgTRxhtml1DTDxhtml1-strictdtdgt
ltDOCTYPE html PUBLIC -W3CDTD XHTML 10 TransitionalEN
httpwwww3orgTRxhtml1DTDxhtml1-transitionaldtdgt
ltDOCTYPE html PUBLIC -W3CDTD XHTML 10 FramesetEN
httpwwww3orgTRxhtml1DTDxhtml1-framesetdtdgt
382233 DTD ccedilinde Element Tipi Bildirimleri
Elementler hakk nda bilgi veren kodlard r Kullan lan yap ELEMENT ile ba lar
element ad ve element iccedileri inin eklenmesiyle sonlan r
ltELEMENT elementName (elementContents)gt
Element iccedileri i a a daki gibi bo olarak ta tan mlanabilir
ltELEMENT elementName (EMPTY)gt
Element iccedileri inde alt dallar-duuml uumlmler olu turulacaksa a a daki oumlrnekte oldu u gibi
DVD koumlk duuml uumlmuumlne le ayr larak s ras yla baslik format tarz element isimleri yaz l r
Belirlenen s ralama XML belgesi iccedilinde goumlruumlnecek s ralamay da olu turur
ltELEMENT DVD (baslik format tarz)gt
Parsed Character Data (PCDATA) veri tuumlruuml element iccedileri inin metinsel ifade olaca n
bildirir XML ayr t r c s bu metindeki karakter ve varl k referanslar n ccediloumlzuumlmler A a da
ltbaslikgt ltformatgt lttarzgt bildirimlerinin iccedilerik tuumlruuml PCDATA olarak tan mlan r
ltELEMENT baslik (PCDATA)gt
ltELEMENT format (PCDATA)gt
ltELEMENT tarz (PCDATA)gt
61
XML belgelerinde tan mlanan bir element herhangi bir veri kombinasyonunu iccedilerebilir
Bu durumda iccedilerik tuumlruuml ANY olarak tan mlan r En serbest iccedilerik tan m d r Oumlrnek kullan m
a a da goumlsterilmektedir
ltELEMENT KATALOG ANYgt
Elementlerin alabilecekleri nitelikler DTD iccedilerisinde tan mlan r Element iccedilerikleri
hakk nda daha detayl bilgiye ula lmas n sa lar Tablo 36 da kullan labilecek niteleyiciler
goumlsterilmektedir
Tablo 36 DTD karakterleri ve accedil klamalar
Karakter Accedil klama
Elemandan s f r veya daha ccedilok bulunabilir
Alt elemanlar s rayla belirler
| Bir grup element aras nda seccedilim yap lmas na izin verir
+ Elemandan bir veya daha ccedilok bulunabilir
Elemandan s f r veya 1 tane bulunabilir
Sembol olmamas o elementin bir kez goumlruumlnmesi gerekti ini bildirir
Oumlrnek goumlsterimde KULLANICI elementine ait alt element olan AD ouml esi birden fazla
de er alabilece ini goumlsterir TEL bildirimi ile kullan c ya ait di er bilgiler girilirken telefon
numaras
giri i eksik olarak kalabilece ini ve sonradan eklendi inde ise yeni kural
tan mlamas na gerek kalmadan etiket tan mlamas n n yap labilece ini bildirir
ltELEMENT KULLANICI (ADI+ TEL)gt
382234 DTD ccedilinde Nitelik Liste Bildirimleri
Nitelik bildirimleri element bildirimlerinden sonra goumlruumlnuumlr ve biraz daha karma k bir
yap ya sahiptir Bir elementin sahip oldu u oumlzellikler bir liste halinde belirtilebilir
Nitelik liste bildirimi a a daki yap yla goumlsterilir
ltATTLIST Element_adi Nitelik_adi Nitelik_tipi varsayilan_degergt
ltATTLIST DVD id CDATA REQUIREDgt
62
Kod parccedilas nda yaz lan varsayilan_deger niteli in gerekli olup olmad n belirtir
Nitelik tipleri Tablo 37 deki de erleri alabilir
Tablo 37 DTD ccedilindeki niteliklerin de er ve accedil klamalar
[73]
De er Accedil klamas
CDATA De er karakter verisi olmal
(en1|en2|) De er parantez iccedilindeki de erlerden birisi olmal
ID a unique identifier- benzersiz bir tan mlay c -kimlik
IDREF De er ba ka bir eleman n ID si olmal
IDREFS De er ba ka ID lerin listesi olmal
NMTOKEN De er geccedilerli XML ad olmal
NMTOKENS De er geccedilerli XML ad listesi olmal
ENTITY De er bir varl k olmal
ENTITIES De er bir varl k listesi olmal
NOTATION De er bir notasyon olmal
xml De er oumlnceden tan mlam bir XML de eri olmal
Varsay lan de er ise Tablo 38 deki de erleri alabilir
Tablo 38 Varsay lan de erler ve accedil klamalar
De er Accedil klama
deger Niteli in Default de eri
REQUIRED Nitelik de eri Eleman iccedilinde geccedilmek zorundad r
IMPLIED Nitelik de eri Eleman iccedilinde geccedilmek zorunda de ildir
FIXED value Nitelik de eri sabittir E er nitelik de eri belirtilirse default de eri
yazmak zorunludur
A a daki oumlrnekte URUN elementinin RENK niteli i seccedilimli olarak k rm z ye il ya da
mavi olas de erleri tan mlanm t r Varsay lan de eri ise k rm z olarak belirtilmi tir [73]
ltATTLIST URUN RENK (red|green|blue) redgt
63
382235 DTD ccedilinde Varl k (Entity) Bildirimleri
Varl k bildirimleri XML belgesinde kullan lan de i ik tuumlr ve biccedilimlerdeki verilerin
XML belgesine aktar lmas n sa lar Di er programlama dillerinde kullan lan moduumll ya da
makrolar gibi s kl kla kullan lan metin bloklar
varl k olarak tan mlanarak sayfan n istenilen
yerine kolayca eklenebilir Eklenen metin uumlzerindeki de i iklikler varl k bildirimiyle
duumlzenlenebilir [73]
Ayr ca d ar dan bir dosyay
varl k olarak tan mlayarak iccedilindeki veri XML belgesinde
kullan labilinir Bu veri metin olmak zorunda de ildir DTD bir varl k olarak tan mlamak iccedilin
a a daki sat r n kullan lmas
gerekmektedir [73]
ltENTITY varl k_ad varl k_degerigt
ltENTITY copyright Copyright 2009 Yayinevigt
Harici bir dosyadan al nacak bir varl k iccedilin soumlz dizimi ise a a daki gibidir
ltENTITY varl k_ad SYSTEM URIURLgt
ltENTITY tableOfContents SYSTEM entitiesdenemexmlgt
(Not URL = Uniform Resource Locator URI = Uniform Resource Identifier )
38224 XML emas
XML emas DTD lere benzer ekilde XML belgesinin yap s n ve bulundurabilece i
verilerin tuumlruumlnuuml tan mlamakta kullan l r XML emalar
xsd dosya uzant l d r ema XML
belgesinde kullan labilecek ouml eleri nitelikleri ve veri tuumlrlerinin yan s ra XML belgesinin soumlz
konusu XML emas iccedilin geccedilerli olmas n sa lamak amac yla uyulmas gereken yap y da
tan mlar [74]
XML emalar DTD yap lar na goumlre daha guumlccedilluuml bir yap ya sahiptir DTD iccedilerisinde
eleman iccedileri i string ve di er birkaccedil veri tipi ile s n rl d r XML ema integer floating point
say lar date time gibi daha geni bir veri tipi deste i sa lamaktad r XML ema ayr ca accedil k
iccedilerik modeli (open content model) ve isim uzay
(namespace integration) gibi ek oumlzellikler de
sunmaktad r XML ema belgeleri olu turulmas s ras nda XML soumlzdizimi kullan l r Bu DTD
lere goumlre ccedilok belirgin bir uumlstuumlnluumlk sa lar Ccediluumlnkuuml yeni bir soumlz dizimi ouml renilmesi yerine
XML in XML emaya oumlzel komutlar n n ouml renilmesi yeterli olur [75]
64
A a daki oumlrnek ema tan mlamas nda xs schema elementi ile ba layan bir koumlk ouml e
vard r
ltxml version=10 encoding=UTF-8gt
ltxsschema
xmlnsxs=httpwwww3org2001XMLSchemagt
ltxsschemagt
ema elementi iki tane oumlzelli e sahiptir
name
xmlns
ema iccedilin bir isim tan mlamas name oumlzelli i ile sa lan r xmlns oumlzelli inin ise oldukccedila
oumlnemli bir goumlrevi vard r Bu oumlzellik sayesinde oumlrne in Microsoft un schema belirtimlerini
kullanabilmesi iccedilin urnschemas-microsoft-comxml-data de erine ayarlanmas gerekir
A a daki oumlrnekte XML ema belgesi iccedilin name ve xmlns niteliklerinin basit kullan m
goumlsterilmektedir [66 75]
ltschema name=kutuphane xmlns= urnschemas-microsoft-comxml-datagt
lt - - ema iccedileri i buraya yaz l r- -gt
ltschemagt
Oumlrnek XML belgesi olu turma ba l alt nda verilen oumlrne in ema dosyas olan
denemexsd nin kodlar ve ekran goumlruumlntuumlsuuml ekil 323 deki gibidir
ltxml version=10 encoding=UTF-8gt ltxsschema xmlnsxs=httpwwww3org2001XMLSchemagt
ltxselement name=Kullanicilargt
ltxscomplexTypegt
ltxssequencegt
ltxselement ref=Kullanici minOccurs=0 maxOccurs=unboundedgt
ltxssequencegt
ltxscomplexTypegt
ltxselementgt
ltxselement name=Kullanicigt
ltxscomplexTypegt
ltxssequencegt
ltxselement name=adi type=xsstringgt
ltxselement name=soyadi type=xsstringgt
ltxselement name=eposta type=xsstringgt
ltxssequencegt
ltxsattribute name=id type=xsinteger use=requiredgt
65
ltxscomplexTypegt
ltxselementgt
ltxsschemagt
ekil 323 denemexsd nin ekran goumlruumlntuumlsuuml
3823 Belge Duuml uumlmleri
XML dokuumlman nlar ndaki belge duuml uumlmleri a a da incelenecektir
38231 Elementler
XML dokuumlmanlar ndan bahsederken etiket ve element terimleri kullan lmaktad r lk
ba ta birbirinin yerine kullan labilir gibi goumlruumlnse de asl nda farkl iki terimdir Element terimi
herhangi bir iccedilerikle birlikte etiketlerin accedil l p kapanmas olarak tan mlanabilir Etiket elementin
bir parccedilas d r Etiketler de kouml eli parantez accedil larak ba lan r ve sonunda kapat larak bitirilir
A a daki oumlrnek sat rda ltxyztgt etiketlerini iccedileren tam bir element goumlruumllmektedir
Accedil l etiketi Kapan etiketi
ltxyztgtXML de etiket ve element fark ltxyztgt
ccedilerik
Element
66
38232 Nitelikler
Her XML belgesi karakter verisi ve biccedilimlendirmeden olu ur Genellikle karakter verisi
ba lang ccedil ve biti etiketleri aras nda metinsel bilgi iccedilerir
XML etiketlerine bir ya da daha fazla nitelik tan mlanabilir
ccedilerik ya da
Nitelik ba ka etiketler
ltKullanici kullanici_id= 1 gt ltKullanicigt
Etiket sim De er
Accedil l etiketi Kapan etiketi
Element
38233 Metin
Accedil lan ve kapat lan tuumlm etiketlerin iccedileri ini olu turur CDATA gibi metin i aretlemesi
yap lmad kccedila tuumlm metin XML kural yap s na goumlre i lenecektir [66]
38234 CDATA Boumlluumlmuuml
CDATA XML yap s iccedilerisinde i lenmeyecek metinleri bloklar halinde i aretlemeye
yarar XML derleyici bu boumlluumlmde metin iccedilerisinde yer alan i aretleme ay raccedillar n ve etiketlerini
normal karakterler olarak alg lar CDATA yap s ltCDATA[ ile ba lar ve]] kouml eli parantezlerin
kapanmas yla sona erer
ltbaslikgtltCDATA[
]]ltbaslikgt
CDATA boumlluumlmleri Javascript gibi goumlmuumlluuml kodlar XML belgelerinde kullanabilir ve bu
boumlluumlmlere i leme ihtiyaccedil duyulmayan iccedilerik eklenebilir Oumlrne in bir uygulamada veritaban ndan
veri okumas ve i aretlemesi buumltuumln iccedileri in XML belgesine goumlmme bilgisini vermede
karakterler i lenirken accedil kccedila ayr lmas n n oumlnuumlne geccedilebilmek iccedilin CDATA boumlluumlmleri kullan l r
[66]
67
38235 Varl klar
Bir karakteri temsil eden sembol grubuna varl k denir Oumlrne in Ampersand i areti
yerine yani ve yerine kullan lan ampamp ya da bir karakterlik bo luk b rakmak iccedilin
nonbreaking space yerine ampnbsp semboluuml kullan l r
ltmatematikgt18 lt 36ltmatematikgt
Yukar daki kod sat r nda bu element i lenmeye ccedilal ld nda hata iletisi verecektir
Ccediluumlnkuuml 36 de erinin oumlnuumlndeki etiket accedilma i areti olarak alg lanacak ve kod sat r n n i leme
al nmas nda yanl l a neden olacakt r Bu hatay duumlzeltmek iccedilin kod sat r n n a a daki gibi
yaz lmas yeterli olacakt r
ltmatemetikgt18 amplt 36ltmatemetikgt
Tablo 39 da s k kullan lan karakterlerin varl k sembolleri goumlsterilmektedir
Tablo 39 XML Belgelerinde kullan lan varl k bildirimleri
Karakter Varl k
amp ampamp
ampapos
gt ampgt
lt amplt
ampquot
383 XML nin Soumlz Dizim Kurallar
XML iccedileri in i aretlenmesi iccedilin etiketleme dili kullan l r Bu etiketlemeler yap l rken
baz kurallar goumlz oumlnuumlnde bulundurulur imdi bu kurallar incelenecektir
1) XML dili buumlyuumlk kuumlccediluumlk harfe kar duyarl d r XML de kuumlccediluumlk harf kullan m esast r
Oumlrnek yaz m a a daki gibidir [76]
lttable WIDTH= 100 gt kullan m yanl t r
lttable width= 100 gt kullan m do rudur
68
2) Her etiket kapat lmal d r Oumlrne in ltkelimegt etiketini takip eden sat r sonuna ltkelimegt
etiketi de eklenmelidir
3) Dokuumlmanda buumltuumln elementleri iccedileren bir koumlk eleman olmas gerekir Oumlrnek yaz mda
oldu u gibi alt ouml eler duumlzenli bir yap da yaz lmal d r [76]
ltrootgt
ltchildgt lt childgt
ltsubchildgt lt subchildgt
lt rootgt
4) Etiketler belirlenirken bir element ba ka elementleri iccediline alacak ekilde tasarlanabilir
ccedilten d a do ru etiketlerin hepsi kapat lmal d r
ltbgtltigtBu metin koyu ve e ikltbgtltigt yanl kullan m
ltbgt ltigt Bu metin koyu ve e ik lt igt lt bgt do ru kullan m
5) XML elementleri oumlzel karakter verileri bo elementler CDATA ya da yorumlar
bar nd rabilir
6) Oumlznitelik de erleri t rnak iccediline al nm olmal d r Tek t rnak ya da ccedilift t rnak olabilir
lttable width=100gt kullan m yanl t r
lttable width= 100 gt kullan m do rudur
7) Element adlar harfler rakamlar tire alt ccedilizgi iki nokta i aretlerini ve noktalar
iccedilerebilir ki nokta i areti sadece namespace kullan m iccedilindir xml ile ba layan eleman
isimleri oumlnceden tan mlanm oumlzel isimlerdir [86]
ltkullanilabilirIsimlergt
ltisimgt
ltxslcopy-ofgt
ltUzun_bir_isimgt
ltNoktalarlaayrilmisbirisimgt
lth823323123-231-231gt
lt_23gt
ltkullanilabilirIsimlergt
8) Etiketleme yap l rken rakamla ba lamamas na dikkat edilmelidir Bo luk yer
almamal d r
69
384 XML Dokuumlmanlar n n leyi i ve Sunumu
XML i lemleri a accedil tabanl ve olay tabanl olmak uumlzere iki kategoriye ayr l r Verilerin
i lenmesinde XML parser yani ayr t r c kullan l r XML i lemciler genellikle XML ayr t r c
olarak da adland r l r A accedil tabanl ayr t r c lar DOM (Document Object Model) yakla m na
goumlre olay tabanl ayr t r c lar ise SAX (Simple API for XML) yakla m na goumlre veriyi ema
yap s ile birlikte XMLye oumlzguuml hiyerar ik yap da i ler lenen veriler uygulama ve
sorgulamalara haz r hale getirir [66 76]
Genellikle bir XML dokuumlman n XML formatl veri iccedilerik dosyas XSD (DTD yerine)
formatl ema dosyas ve XSL (CSS yerine) formatl stylesheet dosyas olmak uumlzere 3 dosyayla
tan mlanabilir Bu uumlccedil dosya tipi de XML destekli tuumlm sunucu ve veri tabanlar nda ccedilal t r labilir
Verinin yal n (native) olarak sakland veritaban youmlnetim sistemleri di er veritabanlar nda
kar la lan harici veri tipleri veya farkl format doumlnuuml uumlmlerine gerek duymad ndan sorgu
transfer ve entegrasyon i lemlerinin performanslar
oldukccedila yuumlksektir Ayr ca XML veritaban
youmlnetim sistemlerinde verinin yal n biccedilimde kendi iccedil format nda tutuluyor olmas n n bir
avantaj da eri imi kolayla t rmas d r Ba ka veritaban youmlnetim sistemi yakla mlar nda buna
benzer bir arama iccedilin karma k ccediloklu tablolar ara t r l r ve daha sonra XML verisine
doumlnuuml tuumlruumlluumlr Bu da i lem performans n n duuml mesine ve maliyet art r c ek uygulamalar
eklenmesine neden olur [66 76]
39 AJAX Prensipleri
AJAX yeni bir teknoloji olmas itibariyle henuumlz emekleme doumlnemindedir Bununla
birlikte birkaccedil Web tasar mc s bu yenili i ba a ccedil k lmas gereken bir sorun gibi alg lamaktad r
Bu sorun iyi bir AJAX Web uygulamas yapabilmek iccedilin s radan ya da koumltuuml bir uygulamaya
kar ne yap lmas gerekti i olarak tan mlanabilir Michael Mahemoff (wwwmahemoffcom)
bir yaz l m geli tirici ve kullan labilirlik uzman iyi Ajax uygulamalar iccedili birkaccedil temel ilke
belirlemi tir [37]
Minimal Trafik nternet trafi i internet uumlzerindeki veri ak d r Goumlnderilen ve al nan
mesajlar n miktar youmlnuuml web sitesine giren ziyaretccedililerin say s ziyaret ettikleri
sayfalar ccedilevrimiccedili trafi i olu turmaktad r AJAX uygulamalar nda amaccedil bu internet
trafi ini en alt seviyede tutmak iccedilin sunucudan muumlmkuumln olabildi i kadar az bilgi
goumlnderip almakt r Ayr ca bilgi ak nda gereksiz bilgilerin her seferinde goumlnderilip
al nmas n n oumlnuumlne geccedililmesiyle uygulamaya sa laml k kat l r
70
Kullan c etkile imli model Genellikle AJAX uygulamalar geleneksel Web
uygulamalar ndan farkl olarak de i ik kullan c etkile imli modeller sunar Web
standartlar ndaki t kla-bekle anlay na kar AJAX uygulamalar nda an nda suumlruumlkle
b rak ya da ccedilift t klamayla yak nla t rma gibi di er kullan c arayuumlz paradigmalar
vard r E er kullan c
etkile imli modeller seccedililirse kullan c
ne yapaca n bilir
Sade arayuumlz Yan p soumlnen sayfa boumlluumlmuuml ya da suumlrekli doumlnen animasyonlar gibi dikkat
da t c ve gereksiz sayfa elementlerinden kaccedil n l r Kullan c lar goumlze hitabeden
uyumlu ve sade sayfalar tercih etmektedir
Eri ilebilirlik nsanlar n ba lant h zlar ndan fiziksel engellerine ya ad uumllkenin
toplumsal yap s ndan ya l l a kadar birccedilok youmlnden eri ilebilirlik standartlar
incelenebilir Birincil ve ikincil kullan c lar n beklentilerine en uygun olacak AJAX
uygulamalar na eri im seccedilenekleri goumlz oumlnuumlnde bulundurulmal d r Oumlzel yaz l mlarla m
yoksa kullan lacak taray c oumlzellikleriyle mi adaptasyonun sa lanaca belirlenmelidir
Boumlylece yeni hedef kitleler de tamamen d ar da b rak lm olmayacakt r
Sayfan n tamam n indirilmesinden kaccedil nma Tetikleyici sayfa indirildikten sonra
tuumlm sunucu ileti imi AJAX motoru taraf ndan youmlnetilmektedir Boumlylece kuumlccediluumlk bilgi
al -veri leri iccedilin tuumlm sayfan n tekrar yuumlklenmesinin oumlnuumlne geccedililmi olur
lk kullan c AJAX uygulamalar nda tasar m kullan c lar n daha oumlnce
kar la mad klar bir biccedilimdedir Etkileyici efektler ve s k c olmayan bilgilendirici
reklamlarla genel kullan m durumlar n kolayca ba armaktad r
Buumltuumln bu ilkelerde bulunan ortak nokta kullan labilirliktir AJAX oumlncelikle kullan c lar
iccedilin web deneyimini geli tirmeye ccedilal rken arkas ndaki teknoloji sadece bunun iccedilin bir araccedilt r
Yukar daki ilkelere sad k kalarak AJAX uygulamalar oldukccedila faydal ve kullan l olacakt r
[37]
310 AJAX Kuumltuumlphaneleri ve Araccedillar
Kuumltuumlphaneler haz r fonksiyonlara kolayca eri im sa lar Ayr ca s k kullan lan var olan
kodlar tekrar yazarak zaman kaybedilmemesini sa lar A a da en ccedilok kullan lan AJAX
kuumltuumlphanelerine oumlrnekler verilmi tir
3101 Prototype
Prototype dinamik web uygulamalar yaratmak iccedilin kullanabilecek geli mi bir
kuumltuumlphanedir Accedil k kaynakl ve nesne tabanl kod kuumltuumlphanesidir Ajax iccedilin yaz lan
71
kuumltuumlphanelerin ilk oumlrneklerindendir ve di er haz r kuumltuumlphanelerin bir k sm prototypejs
kullanmaktad r [78]
3102 AJAX Gear Toolkit
AJAX olarak bilinen istemci tarafl tekni in buumltuumln avantajlar ndan faydalanmay
muumlmkuumln k lan bir araccedilt r XMLHttpRequest nesnelerini kullanarak internet taray c s n n
asenkron ccedila r yapmas n sa lar [78]
3103 AspNet Ajax
ASPNET AJAX ASPNET ile yap lan ve tuumlm nternet taray c lar nda ccedilal abilen
uygulamalar iccedilin Microsoft taraf ndan geli tirilen bir kuumltuumlphanedir Oumlnce Atlas daha sonra
ASPNET Ajax ad n alm t r ASPNET 20 ile kolay entegrasyon ASPNET 35 ile tam
entegrasyon sa lar Yeni nesil etkile imli arayuumlzler olu turmak iccedilin kullan l r [78]
3104 Dojo Toolkit
Accedil k kaynak kodlu bir javascript toolkit olup dhtml sorunlar n buumlyuumlk oumllccediluumlde ccediloumlzmuuml tuumlr
Arayuumlz programlama karma k kodlar n basite indirgenmesi toolkitin sa lad avantajlard r
Ayr ca dinamik web sitesi ya da ba ka ortamlar haz rlamay kolayla t ran ve sitenin daha
kullan l olmas n sa layan iccedilerikler sunar [78]
3105 MochiKit
Dreamweaver web uygulamalar iccedilin kullan lan ajax kuumltuumlphanelerinden birisidir E
zamanl olmayan davran lar iccedilin erteleme uygulamas n kulland ndan sunucuyla etkile im
halinde olan web sayfalar n n geli tirilmesinde tercih edilir [78]
3106 PHPLiveX
PHP ile yap lan uygulamalar iccedilin kullan lan bir kuumltuumlphanedir Versiyon 25 ile gelen
yenilikler ve optimizasyonlar kuumltuumlphanenin potansiyelini ciddi biccedilimde artt rm t r Di er php
tabanl kuumltuumlphaneler gibi php fonksiyonlar n javascript koduyla ccedila r r fakat di erlerine goumlre
daha az kodla kullan m sa lar [78]
72
3107 Sardalya (Sarmal Dinamik Altyap s )
Sardalya Dinamik AJAX Kuumltuumlphanesi DOM deste i olan tuumlm guumlncel taray c larda
ccedilal mak iccedilin tasarlanm bir AJAX Kuumltuumlphanesi dir Linux windows freebsd osx sun gibi
platformlarda ccedilal abilir Tuumlm taray c lardan ba ms z olarak ccedilal r ve kullan m s ras nda az
yer kaplar [78]
3108 Sajax
Sajax n accedil l m Simple Ajax Toolkit tir ASP ve PHP tabanl programlarda AJAX
uygulamalar geli tirmek iccedilin kullan lan bir kuumltuumlphanedir Buumltuumln sunucu tarafl platformlara
ccedila r goumlnderebilme yetene ine sahiptir [78]
3109 Solvent
AJAX uygulamalar n moduumller bir yap da gerccedilekle tiren farkl bir kuumltuumlphanedir
JavaScript ile yaz lm t r ve tuumlm taray c lardan ba ms z olarak ccedilal an bir AJAX uygulamas d r
Web uygulamalar n kuvvetlendirmek ve uygulamalar n geli tirme suumlrecini h zland rmak iccedilin
kullan l r [78]
31010 AjaxAC
AjaxAC accedil k kaynak kodlu php tabanl bir kuumltuumlphanedir AjaxAC ile varolan PHP
s n flar na ve MySQL veritaban na ek istek verilerini doumlnduumlrmek iccedilin geccedili oldukccedila kolayd r
[78]
31011 Xajax
Xajax Php JavaScript HTML XMLHttp ve XML kullanarak taray c ve sunucu
aras ndaki al veri i ve verileri goumlstermeyi gerccedilekle tirir Xajax ile geli tirilmi
uygulamalar sunucudaki php fonksiyonlar n ccedila rabilir ve sayfay yeniden yuumlklemeden
iccedileri ini guumlncelle tirebilir [78]
73
31012 Scriptaculous
Prototype tabanl bir js framework tuumlr Yap lan AJAX i lemleri prototype iccedilerisinde
bulunan nesneler ve fonksiyonlar ile yap l r [78]
311 AJAX Uygulamalar nda Kullan lan Di er Teknolojiler
AJAX istemci ile sunucu aras nda e zamanl olmayan ileti im sa layan bir teknolojiler
buumltuumlnuumlduumlr
3111 HTMLXHTML
stemci tarafl (client side) bir metin i aretleme dili olan XHTML (Extensible
HyperText Markup Language- Geli tirilebilir Metin aretleme Dili) dili XML soumlz dizimi ile
olu turulmu tur XHTML standart etiket ayarlar n tan mlarken spesifik bir yol kullan lmal d r
World Wide Web Consortium (W3C) duumlnyadaki Web geli tiriciler iccedilin olu turulmu ayn
standartla t r lm yakla m benimserler [66]
3112 CSS
XHTML de stil biccedilimlendirmesini sa lar Yuumlzlerce sayfan n tek merkezden
youmlnetilmesini sa lar Geleneksel youmlntemlerde her sayfan n biccedilimlendirme ayarlar birccedilok kod
sat r aras ndan stillerle ilgili olanlar n seccedililip duumlzeltilmesiyle yap l r CSS kullan lan
youmlntemlerde a a daki gibi bir kod parccedilas
tuumlm sayfalardaki stil ayarlar n n yap lmas n tek
merkeze ba lam t r
kabuk
width760px
background-colorEE7700
spot
colorEE7700
font-familyVerdana Comic Sans MS Helvetica sans-serif
74
AJAX ve CSS birlikte kullan larak masauumlstuuml ccedilal t r labilir EXE yaz l mlar ile ayn
h zda ve performansta ccedilal an web uygulamalar geli tirmek muumlmkuumln hale gelmi tir Google
belgelerinde Gmail bunun en buumlyuumlk oumlrne idir
Web sayfalar ndaki tuumlm iccedilerik biccedilimlendirmeler resimler vb istemciye
HTMLXHTML kodlar halinde goumlnderilir Bu kodlar sade ve basittir Bu da oldukccedila fazla
kullan c ya hitap edebilen web siteleri iccedilin oumlnemlidir Ccediluumlnkuuml internete ba land nda k s tl bir
bant geni li ine sahip kullan c lar daha az say da karakter iccedileren sayfalar daha k sa suumlrede
indirebilecektir Boumlylece kullan c lar toplam suumlrede daha fazla sayfa ziyaret edecektir
Sayfalar n h zl yuumlklenmesi kullan c lar n o siteler hakk ndaki memnuniyetini art racakt r
Ayr ca bu durum yaz c dostu sayfalar n olu turulmas nda etkilidir [79]
3113 XSLT
XSLT (Extensible Stylesheet Language Transformations Geni letilebilir
Biccedilimlendirme Dili Doumlnuuml uumlmleri) XML tabanl doumlkuumlmanlar n orijinal halini de i tirmeden
yeni bir dokuumlman olu turmak iccedilin kullan lan bir dildir [80] Oumlrne in bir XML doumlkuumlman n
XHTML ye doumlnuuml tuumlrmek iccedilin XSL doumlnuuml uumlmuuml (transformation) kullan labilir XMLnin iccedilindeki
hangi data nas l doumlnuuml tuumlruumllecek sorular ndan hangi sorusunun cevab XPath ile belirtilirken
nas l sorusunun cevab ise yine XML ile belirtilir [81]
75
4 FLEX
Flex MXML ActionScript 30 ve Flex s n f kuumltuumlphanelerinin birle iminden olu an
sunucu-istemci tabanl yeni bir teknolojidir Ayr ca Flex Flash uygulamalar ile derlenebilen
XML tabanl bir dil olarakta tan mlanabilir [84] Flex in ccedilal ma sistemati inin i lem ak
emas ekil 41 de goumlsterilmektedir
ekil 41 Flex uygulamalar n n i lem ak emas
ekil 41 de sol alt kouml eden sa uumlst kouml eye do ru i lem ak emas takip edildi inde
Flex Builder 3 ile geli tirlen appmxml uygulamas MXML derleyicide ccedilal t r ld nda bir swf
dosyas uumlretmektedir Ayr ca uumlretilen swf dosyas n n sunucu uumlzerinde test edilebilmesi iccedilin
birde html uzant l dosya olu turulur Flex in en oumlnemli oumlzelli i uumlretilen son uumlruumlnuumln swf
format nda olmas d r Ayr ca olay tutucu komut dizelerinin kolay kullan m
yaz l m n
olu turulmas nda Flex program n tercih nedeni olmas n sa lam t r
Adobereg Flexreg 3 yayg n olarak kullan lan taray c lar masauumlstleri ve i letim
sistemlerinde kolayl kla etkileyici web uygulamalar olu turmaya ve bak mlar n yapmaya
youmlnelik verimlili i yuumlksek bir programd r Accedil k kaynak (open source) altyap s na sahiptir
Eclipse tabanl bir plugin kuumlmesidir
Adobe firmas taraf ndan Flex Builder 3 Pro lisans
herhangi bir e itim kurumuna
ouml renci e itmen ya da ccedilal an olarak ba l olduklar n belgeleyenlere tamamen uumlcretsiz olarak
verilmektedir Kurulum tamamland ktan sonra ilk accedil l ekran ekil 42 de goumlsterildi i gibidir
[83]
76
ekil 42 Flex arayuumlzuuml
41 Adobereg Flexreg 3 Kurulumu ccedilin Gereken Minimum Sistem Gereksinimleri
Uygulama gerccedilekle tirmek iccedilin farkl i letim sistemleri iccedilin gerekli sistem
gereksinimleri a a da belirtilmi tir
411 Windows ccedilin Flex Builder 3 (Standart ve Profesyonel)
Flex in Windows kurulumu iccedilin gerekli minimum sistem gereksinimleri a a da
goumlsterilmektedir [83]
Intelreg Pentiumreg 4 i lemci
Microsoftreg Windowsreg XP Service Pack 2 veya Windows Vistareg Home (Premium
veya Basic) Business veya Ultimate
1 GB RAM (2 GB oumlnerilir)
500 MB kullan labilir sabit disk alan (eklenti yap land rmas iccedilin ek 500 MB gerekir)
Java Virtual Machine Sun JRE 142 Sun JRE 15 (dacirchildir) IBMreg JRE 15 veya
Sun JRE 16
Eklenti yap land rmas iccedilin Eclipse 322 33 ve 34 (Eclipse 33 Windows Vista iccedilin
oumlnerilir)
Adobe Flashreg Player 9 yaz l m
BEA Workshop 101
77
IBM Rational Software Architect 7003 (Yaln zca Eclipse 33 eklenti yap land rmas )
412 Macintosh ccedilin Flex Bu lder 3 (Standart ve Profesyonel)
Macintosh bilgisayarlar iccedilin gerekli minimum sistem gereksinimleridir [83]
PowerPCreg G4 125 GHz veya Intel i lemci
Mac OS X v1047 10410 veya 105
1 GB RAM (2 GB oumlnerilir)
500 MB kullan labilir sabit disk alan
Java Virtual Machine Appledan JRE 15 veya JRE 16
Eclipse 322 33 ve 34 (eklenti yap land rmas iccedilin)
Adobe Flash Player 9 yaz l m
78
5 CcedilEVR M Ccedil KATALOG TASARIMI F rat Uumlniversitesi Oumlrne i
AJAX teknolojisi AdobeMacromedia firmas n n geli tirdi i Flex program
ve
bile enleri kullan larak F rat Uumlniversitesinin 2009 ccedilevrimiccedili katalog ccedilal mas
herhangi bir
teknik bilgi gerektirmeden guumlncellenebilen alt yap s yla gerccedilekle tirilmi tir Kullan c arayuumlzuuml
olu turulurken XML tabanl bir gramer yap s
ve Flex program
kullan lm t r Bu tez
ccedilal mas nda sunucu olarak WampServer 20 kullan lm t r Katalog uygulamas n n kaynak
kodlar na ek boumlluumlmuumlnden bak labilir
AJAX teknolojisiyle ortaya ccedil kmaya ba layan ccedilevrimiccedili bro uumlrler ve kataloglar
internetteki Web uygulamalar uumlzerinde ccedilevrimiccedili hedeflerin oumlnemli bir boumlluumlmuumlne hacirckim
olmaktad r [37] Bu tez ccedilal mas da buna oumlrnek te kil etmektedir
Ccedilal man n olu um haritas na literatuumlr taramas yla ba lanm t r Bir sonraki ad mda
haz rlanacak olan program n oumlzellikleri belirlendi Bu a amadan sonra yaz l m iccedilin kullan lacak
program n seccedilimi yap ld Yaz l m algoritmas planlan p ekil 51 deki kodlama algoritmas
olu turulmu tur Yaz l m test edildi inde olu an hatalar giderilmi tir Ccedilal man n sayfa tasar m
yap larak son ekli verilmi tir
79
ekil 51 Kodlama algoritmas
Ba la
Harici verilerin XML dosyas ndan okunmas iccedilin HttpService s n f tan mland
De i ken tan mlamalar
Flex s n flar eklendi
Uygulamada kullan lacak resim boyutland rmas iccedilin maskeleme yap ld
Sunucu ile taray c ileti iminde AJAX scriptler kullan ld
Tuumlm sayfalar ekran goumlruumlntuumlsuuml iccedilin uygulama boyutland rmas yap ld
Zoom oumlzelli i iccedilin etiket tan mlamas ve buumlyuumltuumllmuuml sayfa goumlruumlntuumlsuuml iccedilin goumlruumlnuumlm
ayarlar fonksiyonu yaz ld
Navigasyon duuml meleri olu turuldu
XML format na uygun duuml uumlmler olu turuldu
Sayfa tasar m yap ld
Dur
A a daki kod sat rlar yla katalog ccedilal mas n n uygulama dosyas olan catamxml
dosyas na Flex iccedilinde ccedilal ma youmlntemlerini belirleyen faydal
s n flar dacirchil edilmi tir
lt[CDATA[
import mxutilsStringUtil
import mxrpcsoapLoadEvent
import mxcontrolsAlert
import mxrpceventsFaultEvent
import qscontrolsFlexBook
import qscontrolsflexBookClassesFlexBookPage
import qscontrolsflexBookClassesFlexBookEvent
import qscontrolsflexBookClassesWBookPageImpl
import qscachingContentCache
import mxrpceventsResultEvent
import mxrpchttpHTTPService
import mxcoreUIComponent
import mxmanagersPopUpManager
import compResimSec
import Kullan
import mxcoreScrollPolicy
import mxcollectionsArrayCollection
XML tan mlamalar diziler sunucu ba lant lar ve zoom i lemleri iccedilin gerekli de i ken
tan mlamalar a a daki kod sat rlar yla yap lm t r
private var aXML
[Bindable]
private var resimlerArrayCollection
private var dataSetHTTPService
private var resimdiziArray=new Array()
private var zoomYapBoolean=false
Katalo un local sunucu uumlzerinde ccedilal t r labilmesi iccedilin kaynak dosyas
Wamp kurulumu
sonras nda olu an www klasoumlruuml iccediline yerle tirilir E-katalog resimleri dinamik olarak data
dizinindeki imagesxml dosyas nda ccedilekilmektedir Katalog resimlerini de i tirmek iccedilin bu
dosyadaki xml duuml uumlmlerinin de i tirilmesi yeterlidir De i iklik yap lacak duuml uumlm oumlrne i
a a da goumlsterilmektedir
81
ltimage source=images2jpg thumb=images2jpg zoom=images2jpggt
Yukardaki sat rdaki duuml uumlmleri accedil klamak gerekirse source duuml uumlmuumlnde katalogda
goumlruumlnecek resim thumb duuml uumlmuumlnde e er as l resim (source) resmi yuumlklenene kadar ba ka bir
resim goumlruumlnmesi isteniyorsa o resmin kayna goumlsterilir Zoom duuml uumlmuuml ise sayfaya zoom
yap lmas esnas nda goumlruumlnecek resmin kayna n goumlsterir
Yukardaki 3 duuml uumlmden thumb duuml uumlmuuml iste e ba l olarak kullan l r Zoom
duuml uumlmuumlndeki resim as l resmin 100 buumlyuumlk hali olmal d r
ekil 52 Katalo un ilk sayfas n n ekran goumlruumlntuumlsuuml
E-katalog sayfalar n boyutunu kataloghtmlde tan ml olan object nesnesinin geni lik ve
yuumlkseklik oumlzelliklerinden almaktad r ekil 52 nin kaynak kodu a a da verilmi tir
ltscript src=ScriptsAC_RunActiveContentjs type=textjavascriptgtltscriptgt
ltscript type=textjavascriptgt
AC_FL_RunContent( idkatalogwidth894height653codebasehttpfpdownloadm
acromediacomgetflashplayercurrentswflashcabmoviekatalogqualityhighbgcolor
000000allowscriptaccesssameDomain ) end AC code
ltscriptgtltnoscriptgtltobject classid=clsidD27CDB6E-AE6D-11cf-96B8-444553540000
id=katalog width=894 height=653
82
codebase=httpfpdownloadmacromediacomgetflashplayercurrentswflashcabgt
ltparam name=movie value=katalogswf gt
ltparam name=quality value=high gt
ltparam name=bgcolor value=000000 gt
ltparam name=allowScriptAccess value=sameDomain gt
ltembed src=katalogswf quality=high bgcolor=000000
width=984 height=653 name=katalog align=middle
play=true
loop=false
quality=high
allowScriptAccess=sameDomain
type=applicationx-shockwave-flash
pluginspage=httpwwwadobecomgogetflashplayergt
ltembedgt
ltobjectgtltnoscriptgt
ekil 53 Katalo un 23 sayfa goumlruumlntuumlsuuml
Oumlrne in ekil 53 te kullan lan resimlerin width=447 height=613 boyutunda ise
resimlerin sayfada goumlruumlnmesi iccedilin html etiketindeki width oumlzelli ini 447x2=984 ve height
83
oumlzelli ini 613+40=653 eklinde duumlzenlenmesi gereklidir Yani width=resim geni li i X 2 ve
height=resim yuumlksekli i + 40 olmal d r
ekil 54 Katalo un sayfa ccedilevirme efektli goumlruumlntuumlsuuml
ekil 54 te goumlruumllen e-katalogun sayfay ccedilevirme oumlzelli i ile h z gibi i lemleri stylecss
dosyas nda tutulmaktad r Gerekli olmad kccedila bu dosya uumlzerinde de i iklik yap lmamas tavsiye
edilir Olu turulan stylecss dosyas n n kodlar a a da goumlsterilmi tir
FlexBook
color 000000
textRollOverColor 000000
border-thickness 0
border-style none
page-slope06
active-grab-area page
page-shadow-strength 1
curve-shadow-strength 1
auto-turn-duration 1500
Application
color F1F1CC
textRollOverColor FFFFFF
84
backgroundGradientColors FFFFFF FFFFFF
backgroundColor FFFFFF
SuperImage
border-thickness 0
border-style none
ekil 55 de goumlruumllen navigasyon ccedilubu unda 1 numara ile goumlsterilen alan istenilen
sayfaya konumland rma yap labilmesi iccedilin sayfa numaras n n girildi i kutudur 2 numara ile
goumlsterilen alan Sayfaya Git duuml mesine t kland nda istenilen sayfan n accedil lmas n sa layan
duuml medir 3 ve 4 numara ile goumlsterilen duuml meler Geri leri duuml meleridir Fare kontroluuml
olmadan da sayfalar aras nda gezinti yap labilmesini sa lar 5 numara ile goumlsterilen alan Tuumlm
Sayfalar duuml mesidir
ekil 55 Katalo un navigasyon ccedilubu u
Tuumlm sayfalar n accedil l r pencere iccedilerisinde goumlruumlntuumllenmesini sa layan fonksiyon a a daki
gibidir Kullanmxml sayfas nda ccedilekilen resimler pencerede goumlster komutuyla geni lik ve
yuumlksekli i ayarlan r Seccedililen nesneler customMoveend() komutuyla ekrana ta n r
private function tumsayfalar()void
Kullanshow_window(thisfalseapplicationwidth-10(applicationheight-60)2)
customMoveend()
customMoveplay()
ekil 56 da goumlruumllduuml uuml uumlzere ccedilevrimiccedili katalogdaki yuumlkluuml olan tuumlm sayfalar yukar dan
accedil lan bir pencere yard m yla goumlsterilir Tuumlm sayfalar
goumlster duuml mesi t kland nda goumlruumlnecek
resimler ile ilgi ayarlar ise data klasoumlruumlndeki onizlexml dosyas ndan ayarlanabilir Xml nin
esnek etiketleme yap s sayesinde onizlexml dosyas nda olu turulan ltsayfalargt etiketi aras na
a a daki kod sat rlar ccedilo alt larak olu turulmu tur
85
ltsayfagt
ltresim1gtimages2jpgltresim1gt
ltresim2gtimages3jpgltresim2gt
ltgitgt2ltgitgt
ltpagesgt23ltpagesgt
ltsayfagt
ekil 56 Tuumlm Sayfalar duuml mesi t kland ndaki ekran goumlruumlntuumlsuuml
Son olarak 6 numaral duuml me t kland nda + ve - konumlar n alarak buumlyuumlteccedil
oumlzelli i kullan l r ekil 57 de goumlsterildi i gibi imleccedil sayfa uumlzerinde gezdirilirken bu alan
uumlzerinde zoom yap larak yan sayfada buumlyuumltuumllmuuml goumlruumlntuuml sa lan r
86
ekil 57 Zoom oumlzelli i
Zoom oumlzelli inde resimler uumlzerindeki geni lik ve yuumlkseklik de erleri iccedilin if else blok
yap s kullan larak maskeleme fonksiyonu yaz lm t r Maskeleme fonksiyonu a a daki kod
sat rlar nda goumlsterilmektedir Fare nin x-y koordinatlar nda alaca de erlere goumlre fare nin
buumlyuumltuumllecek alan uumlzerinde gezinmesiyle yan sayfada buumlyuumltuumllmuuml goumlruumlntuuml elde edilmi tir
private function maskele(eMouseEvent)void if(zoomYap) if((mouseXgt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) )
maskex=0
img2visible=false img1visible=true img1x=(applicationwidth2)-mouseX img1y=-1mouseY else if((mouseXlt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) ) maskex=applicationwidth2 img1visible=false img2visible=true img2x=-1mouseX img2y=-1mouseY
Sayfa goumlruumlntuumllerinin maskelenmesinden sonra resimlerin kaynak dosyadan ccedilekilerek
ekrana buumlyuumltuumllmuuml hallerinin yans t lmas iccedilin a a daki fonksiyon olu turulmu tur
87
private function zoom()void
if(zoomerlabel==+) zoomerlabel=- if(img2source=aimage[bookcurrentPageIndex2]zoom) yuklemevisible=true
img2addEventListener(EventCOMPLETEbuyuk2_yuklendi) img2source=aimage[bookcurrentPageIndex2]zoom
if(aimagelength()gtbookcurrentPageIndex2+1) img1addEventListener(EventCOMPLETEbuyuk1_yuklendi)
img1source=aimage[bookcurrentPageIndex2+1]zoom
zoomYap=true else if(zoomerlabel==-)
zoomerlabel=+
setGorunum()
private function setGorunum()void zoomYap=false zoomerlabel=+ img1visible=false img2visible=false
88
6 SONUCcedil
Web 20 ak m ve zengin internet uygulamalar guumlnuumlmuumlz popuumller konular ndand r Bu
nedenle tez ccedilal mas
bu amaca youmlnelik olarak son teknolojiler kullan larak geli tirilmi tir
AJAX teknolojisi kullan larak kullan c n n istekleriyle sayfan n tamamen yenilenmeden
ilgili i lemin yuumlruumltuumllebilmesi sa lanmaktad r Geli tirilen sistem ccedilapraz taray c deste ine sahip
esnek ve kolay kullan labilir bir yap ya sahip oldu undan herhangi bir programlama bilgisine
sahip olmadan ki ilerin istenilen de i iklikleri yap labilece i bir alt yap ya sahiptir Bu ccedilal ma
nda en yenilikccedili internet yaz l mlar konusunda uygulama yapmak isteyen yaz l m
uzmanlar na kaynak te kil edecek bir ccedilal ma gerccedilekle tirilmi tir Yaz l m geli tiricileri ve
yaz l m mimarlar AJAX Flash Flex Appletler ve di er teknolojileri uygulamalar na kolayca
entegre edebilirler
Bu tez ccedilal mas kapsam nda Web de Ajax Tekni inin Bant Geni lik Optimizasyonuna
Etkisi ba l kl bir makale haz rlanm t r [85] Bu makalede Web Performance Suite 355941
program yla AJAX n performans testi yap lm t r Bu oumllccediluumlmler sonucunda elde edilen de erler
goumlstermi tir ki bir ebeke uumlzerinden goumlnderilecek sinyalin en duuml uumlk ve en yuumlksek frekanslar
aras nda gereksiz yere kullan lan aral n optime edilmesinde AJAX etkili bir youmlntemdir
AJAX n ccedilal ma prensibi sayesinde uygulamalar en iyi performansla gerccedilekle tirilir
AJAX teknolojisinin hala geli imi devam etmekte oldu undan baz eksik yanlar da
bulunmaktad r Oumlrne in taray c
uumlzerindeki Geri
fonksiyonu bazen beklendi i gibi
ccedilal mayabilir Dinamik olarak olu turulan sayfalar taray c n n oumlnceden i ledi i sayfalar
youmlneten mekanizmalar na kendini otomatik olarak kaydetmez bu yuumlzden taray c n n Geri
tu una bas ld nda istenen sayfa elde edilemeyebilir [86] Ba ka bir dezavantaj ise AJAX ile
olu turulan iccedileri in kodlar kaynak kodlar k sm nda goumlruumllememektedir Ayn zamanda Google
ve Yahoo gibi arama motorlar n n Web sayfalar na goumlnderdi i robot yaz l mlar da bu kodlar
goumlrememektedir Dolay s yla tamamen AJAX ile olu turulan iccedilerik arama motorlar n n sonuccedil
sayfalar nda listelenmezler Guumlnuumlmuumlzde yap lan Web sayfas n n arama motorlar nda
goumlruumlntuumllenmesi oldukccedila oumlnemlidir Fakat bir Web uygulamas ziyaretccedililer hakk nda oumlnemli
ki isel bilgilere sahipse bu bilgilerin arama motorlar nda herkes taraf ndan goumlruumlntuumllenmesini
sa lamas bir avantaja doumlnuuml uumlr [87] AJAX yerinde ve do ru bir ekilde kullan ld nda
uygulamalarda performans art n sa lar
Bu tez ccedilal mas nda Web 20 ak m n n ortaya ccedil k nedenleri ve RIA konseptine
duyulan ihtiyac n temeli irdelenmi tir Web 20 ak m nda oumlne ccedil kan uygulamalar ve ccedilal ma
sistematikleri incelenmi tir Oumlne ccedil kan bu uygulamalar n site tasar m nda dikkat ccedileken
89
oumlzelliklerine de inilmi tir AJAX teknolojisini olu turan bile enler incelenmi tir Bu inceleme
ve ara t rma sonucunda zengin internet uygulamalar na oumlrnek te kil edecek Web 20 ak m n n
ccedilekirde i olan AJAX teknolojisi kullan larak F rat Uumlniversitesi iccedilin ccedilevrimiccedili bir katalog
tasarlanm t r Bu tasar mda flexBook flexbookpage landscape wrapper zoomer gibi ek
bile enler kullan lm t r Navigasyon paneli tasarlanm t r Olu turulan tasar mda yerli ve
yabanc literatuumlr taramas yap larak emsallerindeki kullan l oumlzellikler projeye dahil edilmi tir
Projenin geli tirilmesi s ras nda izlenen ad mlar resimlenerek ortaya bir yol haritas ccedil kar lm t r
61 Oumlneriler
Bu tez ccedilal mas esas al narak ileride bu uygulamalar mobil cihazlar arac l yla
kullan labilirli i uumlzerine ara t rmalar suumlrduumlruumllebilir AJAX n uumlstuumln oumlzellikleri sayesinde Web
uumlzerinden yay nc l k ve mobil ileti im alanlar farkl bir boyut kazanm t r Birccedilok irket art k
ta nabilir cihazlar iccedilin Web 20 uygulamalar n AJAX la optimize etmeye ba lam t r Yeni bir
teknoloji olan AJAX la ta nabilir cihazlardaki performans bellek youmlnetimi s n rl tu giri i
gibi sorunlar n uumlstesinden gelinmesi hedeflenmelidir
AJAX kullan larak IDE (Integrated Development Environment) entegrasyonu Eclipse
iccedilin ba lant lar yaz labilir veya yap m servisi arac l yla do rudan IDE den yap m paketleri
geli tirilebilir Guumlnuumlmuumlzde oldukccedila popuumller olan accedil k kaynak kodlu yaz l m geli tirme
ortamlar nda entegre uygulamalar geli tirilebilir
Kullan c Arabirimi aretleme Beti i (User Interface Markup Language) s n f na dacirchil
edilecek gelece in en popuumller web tabanl teknolojilerinden biridir Flex geli tiricileri Adobe
Flex Builder - IDE ortam nda LiveCycle Data Services Java Coldfusion ASPNET JSP PHP
gibi popuumller web programlama dilleri yard m yla etkile imli ve guumlvenli web tabanl projeler
geli tirilebilir [82]
90
KAYNAKLAR
1 nternet Web 20 httptrwikipediaorgwikiWeb_20 Eri im tarihi 03092008
2 Oumlzer Z Web Teknolojileri ve AJAX Seminer Ccedilal mas Fen Bilimleri Enstituumlsuuml sf2
2007
3 nternet Web 20 Nedir wwworeillynetcompubaoreillytimnews20050930what-is-
web-20html Eri im tarihi 04102008
4 nternet httpravenyoungspaceslivecomblogcns17376F4C11A91E0E3717entry
Eri im tarihi 03092008
5 Mcluhan M Povers B R Ccedileviren Bahar Oumlcal Duumlzgoumlren Global Koumly 21 Yuumlzy lda
Yeryuumlzuuml Ya am nda ve Medyada Meydana Gelecek Doumlnuuml uumlmler Scala Yay nc l k 2001
6 nternet RIA konsepti httpwwwademaktepecomGunlukDetayaspxId=122 Eri im
Tarihi 26062008
7 Onat F A man Ouml K l ccedil A Sosyal A Sitelerinin Reklam Ve Halkla li kiler Ortamlar
Olarak De erlendirilmesi Sayfalar 3-6 2008
8 nternet httpi8tinypiccom6kymb0kgif Eri im tarihi 11072008
9 nternet DFA httpwwwdoubleclickcomproductsdfaindexaspx Eri im tarihi
14022009
10 nternet Adsensecom
httpswwwgooglecomadsensesupportbinanswerpyanswer=9712amptopic=13488 Eri im
tarihi 15112008
11 nternet DoubleClickcom wwwdoubleclickcom Eri im 13102008
12 nternet Adsense ho geldiniz wwwgooglecomadsense Eri im 18112008
13 nternet Flicker Tan m httptrwikipediaorgwikiFlickr Eri im tarihi 09032009
14 nternet Flicker Foto raf Payla m Sitesi httpwwwflickrcom Eri im 18022009
15 nternet BitTorent httptrwikipediaorgwikiBitTorrent Eri im tarihi 05012009
16 nternet Bittorent kulan m rehberi httpwwwbittorrentcombtusersguidesbeginners-
guide Eri im tarihi 05012009
17 nternet Bittorent kullan m k lavuzu httpwwwshukkocombittorrent_kilavuzu Eri im
tarihi 05012009
18 nternet Bittorent ccedilal ma mant httpwwwforumelbizbittorent-nedirgne-ise-
yarargresimli-detayli-super-anlatim-
t12836htmls=17f7b3147d97799d31c32b09e87d43e4ampamp Eri im tarihi 05012009
19 nternet Soumlzluumlk
91
httpwwwparliamentvicgovauSARCE-DemocracyFinal_ReportGlossaryhtm Eri im
tarihi 05012009
20 FU F LIU L WANG L Empirical Analysis of Online Social Networks in the Age of
Web 20 2007 Physica A Statistical Mechanics and its Applications Volume 387 Issues 2-3
Sayfalar 675-684
21 nternet Facebook httptrwikipediaorgwikiFacebook Eri im tarihi 06012009
22 nternet Facebook makale httpturkinternetcomhaberyazigosterphp3yaziid=22787
Eri im tarihi 06012009
23 nternet Facebook istatistiksel bilgiler
httpwwwinsidefacebookcom20090107facebook-growth-continuing-surpasses-150-
million-monthly-active-users Eri im tarihi 06012009
24 nternet Peter Thiel Facebook haberleri
httpwwwbusinessweekcomtechnologycontentmar2009tc2009031_743025htm Eri im
tarihi 06012009
25 nternet Blog httptrwikipediaorgwikiBlog Eri im tarihi 13022009
26 nternet Technorati httptechnoratimediacom Eri im tarihi 13022009
27 nternet Blog ara t rmas httpwwwmmistanbulcommakaletitlebloglarin-satin-alma-
kararlarina-etkisi-uzerine-bir-arastirma Eri im tarihi 13022009
28 nternet Wiki nedir httpyunushacettepeedutr~b0343579baglantilerwikinedirhtm
Eri im tarihi 13022009
29 nternet nternette wikinin yeri
httpogrencihacettepeedutr~besstindexphp20080603internette-wikinin-yeri Eri im
tarihi 14022009
30 Bergstedt S Wiegreffe S Wittmann J Moller D Content Management Systems and e-
Learning-Systems
A Symbiosis Proceedings of the The 3rd IEEE International Conference
on Advanced Learning Technologies (ICALT 03)
31 nternet ccedilerik Youmlnetim Sistemleri
httptrwikipediaorgwikiC4B0C3A7erik_yC3B6netim_sistemi Eri im tarihi
17022009
32 nternet ccedilerik Youmlnetim Sistemleri httpwwwmsxlabsorgforuminternet-bilgisayar-
dunyasi22262-icerik-yonetim-sistemi-cms-content-management-systemhtml Eri im tarihi
17022009
33 nternet Web 20 Tasar m Araccedillar httpwwweburhancomhazir-web-20-tasarim-
araclari Eri im tarihi 06022009
92
34 nternet Tasar m rehberi httpwwwhasanyalcincomweb-20-tasarim-rehberi-yansima-
ikon-ve-flaslarref=GuzelsTV Eri im tarihi 06022009
35 nternet AJAX kaynak makalesi
httpadaptivepathcompublicationsessaysarchives000385php Eri im tarihi 06022009
36 Keith J Bulletproof Ajax New Riders yay nc l k Sayfa 3 2007
37 Zakas N C McPeak J Fawcett J Professional Ajax 2nd Edition Wiley Publishing Inc
Sayfalar 5-18 2007
38 Gehtland J Galbraith B Almaer D Pragmatic Ajax A Web 20 Primer The Pragmatic
Programmers LLC sf1 2005
39 Babin L Beginning Ajax with PHP From Novice to Professional Apress Yay nc l k
Sayfa 6 2007
40 Crane D B beault B Sonneveld J Goddard T Gray C Venkataraman R Ve Walker J
Ajax in Practice Manning Publications Co Sayfalar 56 2007
41 Eichorn J Understanding AJAX Using JavaScript to Create Rich Internet Applications
August 11 2006 Sayfalar5-50
42 Ballard P SAMS Teach Yourself Ajax in 10 Minutes Sayfalar 6-78 28 Nisan 2006
43 nternet httpwwwipucuwebtraspders17php Eri im tarihi
44 Ullman C Dykes L Beginnig AJAX Wiley Publishing Inc Sayfa 44-100 2007
45 Zakas N C McPeak J Fawcett J Professional Ajax Wrox Press Chapter 2 Ajax
Basics Ajax Communication Techniques 2006
46 nternet Cross-Browser (Ccedilapraz Taray c Deste i) httpblogceyhunaksancomcross-
browser-capraz-tarayici-destegi Eri im 11032009
47 nternet
httpwwwyazgelistirnetviewtopicphpp=160ampsid=a49d3c26dd8e14e02e65bb222d6bcc39
Eri im 31032009
48 Jacobi J Fallows J R Pro JSF and Ajax Building Rich Internet Components Apress
Sayfa 175 2006
49 Schutta N T Asleson R Pro Ajax and Java Apress Sayfa 10 2006
50 Lauriat S M Ajax Architecture and Best Practices Pearson Education Inc Sayfa 25
2008
51 Powers S Adding Ajax OReilly yay nc l k June 01 2007
52 nternet Asenkron ve Senkron Meselesi httpAJAX-trcomasenkron-ve-senkron-meselesi
Eri im tarihi 02112008
53 Holzner S Ajax For Dummies Wiley Publishing Inc sf 40 2006
93
54 nternet httpwwwecma-internationalorgpublicationsfilesECMA-STEcma-262pdf
Eri im tarihi 06032009
55 Darie C Brinzarea B Chereche -To a F Bucica M AJAX and PHP Building
Responsive Web Applications Packt Publishing Sayfa42 2006
56 Olson S D Ajax on Java OReilly Yay nc l k Chapter 2 February 23 2007
57 nternet httpiibferciyesedutrggwebjavascriptpdf Eri im tarihi 06032009
58 nternet httpwwwmutasyonnetkitaplarasp hakk oumlcal javascript ders notu sf8 Eri im
tarihi 06032009
59 nternet httpwwwbilgisayarogrencomjava5doc Eri im tarihi 06032009
60 Asleson R Schutta N T Foundations of Ajax 2006 sf29
61 Wells C Securing Ajax Applications O Reilly Media Inc sf86 July 2006
62 nternet httpwwww3schoolscomdomdom_introasp Eri im tarihi 19032009
63 nternet httpwwww3orgTRREC-DOM-Level-1introductionhtml Eri im tarihi
19032009
64 nternet httpwwwberkerpeksagcomblogdom-document-object-model-belge-nesne-
modeli Eri im tarihi 19032009
65 nternet httpwwwrssnedircomxml_nedirphp Eri im tarihi 19032009
66 Jacobs S Beginning XML with DOM and Ajax From Novice to Professional Apress
Yay nc l k sf2631 2006
67 nternet
httpwwwcclubmetuedutrnenedirXML+(Extensible+Markup+Language)+Nedir3F
Eri im tarihi 20032009
68 nternet httpbelgelerorgelkitabixmldoc-howto_structhtml Eri im tarihi 20032009
69 nternet httpwwwverivizyoncomdetailaspcid=149 Eri im tarihi 20032009
70 nternet httpwwwbilgisayardershanesicomxml1htm Eri im tarihi 21032009
71 Johnson D White A Charland A ENTERPRISE AJAX Strategies for Building High
Performance Web Applications Prentice Hall Yay nc l k Sayfa 108 2008
72 nternet httpwwww3orgTRxhtml1dtds Eri im tarihi 01042009
73 nternet httpwwwcsharpnedircommakalegosteraspMId=51 52 Eri im tarihi
01042009
74 nternet httpofficemicrosoftcomtr-trinfopathHP010967301055aspx Eri im tarihi
01042009
75 nternet
httpwwwkodpaylascomviewtopicphpt=959ampsid=e5167bdea935943ed9bbdc91ee218c53
Eri im tarihi 01042009
94
76 nternet httpwwww3schoolscomXhtml Eri im tarihi 02042009
77 nternet httpwwwzvonorgxxlXMLTutorialOutput_turexample6html Eri im tarihi
02042009
78 nternet httpwwwbidbituedutrd=837 Eri im tarihi 03042009
79 nternet httpwwwcssnedircom Eri im tarihi 03042009
80 nternet httptrwikipediaorgwikiXSLT Eri im tarihi 03042009
81 nternet httpwwwbilisim-kulubucomsozluksozlukphpe=XSLT Eri im tarihi
08042009
82 nternet httpwwwsanalkursnetadobe-flex-nedir--1081html Eri im tarihi 10042009
83 nternet httpwwwadobecomtrproductsflex Eri im tarihi 11042009
84 nternet httpwwwtrflexcomp=4 Eri im tarihi 11042009
85 Oumlzer Z Varol A Web de Ajax Tekni inin Bant Geni lik Optimizasyonuna Etkisi
Bilimde Modern Youmlntemler Sempozyumu 2008
86 nternet httptrwikipediaorgwikiAJAX(programlama) Eri im tarihi 01062009
87 nternet httpajax-trcomajaxi-anlamak Eri im tarihi 01062009
95
OumlZGECcedilM
Zeynep OumlZER AYDO MU
zeynep_ozermsncom
F rat Uumlniversitesi Teknik E itim Fakuumlltesi
Elektronik Bilgisayar E itimi Boumlluumlmuuml
ELAZI
1983 y l nda Elaz da do du lk orta ve lise ouml renimini Elaz da tamamlad ktan
sonra 2002 y l nda F rat Uumlniversitesi Teknik E itim Fakuumlltesi Elektronik Bilgisayar E itimi
Bilgisayar Ouml retmenli i Boumlluumlmuuml nuuml kazand 2006 y l nda bu boumlluumlmden mezun oldu 2006
y l nda F rat Uumlniversitesi Fen Bilimleri Enstituumlsuuml Elektronik Bilgisayar E itimi Ana Bilim Dal
Bilgisayar Sistemleri Bilim Dal nda yuumlksek lisans e itimine ba lad 2007 y l ubat ay nda
Elaz n Karakoccedilan ilccedilesinin Yenice koumlyuumlnde h J Kd Uumlt m Mahir Oumlzdemir lkouml retim
Okulu nda Bilgisayar Ouml retmeni olarak goumlreve ba lad uan Elaz Korgeneral Hulusi Say n
Lisesi nde Bilgisayar Ouml retmeni olarak goumlrevini suumlrduumlrmektedir Yabanc dili ngilizce dir
Fatih AYDO MU ile evlidir
96
EK
Katalog ccedilal mas n n uygulama dosyas olan catamxml kullanmxml ve
imagepagemxml dosyalar n n kaynak kodlar a a daki gibidir
Catamxml
ltxml version=10 encoding=utf-8gt
ltmxApplication xmlnsmx=httpwwwadobecom2006mxml
layout=absolute
xmlnscontrols=qscontrols
backgroundColor=FFFFFF
creationComplete=init() color=FFFFFF xmlnslocal= xmlnscomp=comp
horizontalScrollPolicy=off verticalScrollPolicy=off borderColor=050505 borderStyle=solid
borderThickness=2gt
ltmxStyle source=stylecss gt
ltmxScriptgt
lt[CDATA[
import mxutilsStringUtil
import mxrpcsoapLoadEvent
import mxcontrolsAlert
import mxrpceventsFaultEvent
import qscontrolsFlexBook
import qscontrolsflexBookClassesFlexBookPage
import qscontrolsflexBookClassesFlexBookEvent
import qscontrolsflexBookClassesWBookPageImpl
import qscachingContentCache
import mxrpceventsResultEvent
import mxrpchttpHTTPService
import mxcoreUIComponent
import mxmanagersPopUpManager
import compResimSec
import Kullan
import mxcoreScrollPolicy
import mxcollectionsArrayCollection
private var aXML
[Bindable]
private var resimlerArrayCollectioncomboresim
97
private var dataSetHTTPService
private var resimdiziArray=new Array()
private var zoomYapBoolean=false
private function init()void
maskex=0
maskey=0
maskewidth=applicationwidth2
maskeheight=applicationheight-40
addEventListener(MouseEventMOUSE_MOVEmaskele)
addEventListener(tamam sayfa_secildi)
dataSet = new HTTPService()
dataSeturl = (dataimagesxml)
dataSetresultFormat = e4x
dataSetsend()
dataSetaddEventListener(FaultEventFAULT onFault)
dataSetaddEventListener(ResultEventRESULT onResult)
var wNumber=new Number
var hNumber=new Number
w=Applicationapplicationwidth
h=Applicationapplicationheight
bookwidth=w
bookheight=h-40
yuklemevisible=false
yuklemesource=assetsloadinggif
yuklemeaddEventListener(EventCOMPLETEyukleme_yuklendi)
private function yukleme_yuklendi(eventEvent)void
yuklemex=(applicationwidth2)-100
yuklemey=(applicationheight-40)2
private function maskele(eMouseEvent)void
if(zoomYap)
98
if((mouseXgt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) )
maskex=0
img2visible=false
img1visible=true
img1x=(applicationwidth2)-mouseX
img1y=-1mouseY
else if((mouseXlt(applicationwidth2)) ampamp (mouseYltapplicationheight-40) )
maskex=applicationwidth2
img1visible=false
img2visible=true
img2x=-1mouseX
img2y=-1mouseY
maskex=mouseX
maskey=mouseY
private function onFault(eEvent)void
trace(e)
private function onResult(eResultEvent)void
a=new XML(eresult)
bookcontent = dataSetlastResultimage
bookaddEventListener(FlexBookEventTURN_STARTloadContent)
bookaddEventListener(FlexBookEventTURN_ENDloadContent)
private function sayfa_secildi(eventResimSec)void
99
sayfatext=eventyeniResim
git()
mxcontrolsAlertshow(sseventyeniResim)
private function loadContent(eventFlexBookEvent)void
setGorunum()
var pageImagePage = ImagePage(eventrenderer)
pageload()
sayfatext=(bookcurrentPageIndex2)toString()
resimdizi[bookcurrentPageIndex]=pagethumbsource
mxcontrolsAlertshow(bookcurrentPageIndextoString())
private function buyuk1_yuklendi(eventEvent)void
yuklemevisible=false
img1width=applicationwidth
img1height=(applicationheight-40)2
img1x=0
img1y=0
private function buyuk2_yuklendi(eventEvent)void
yuklemevisible=false
img2width=applicationwidth
img2height=(applicationheight-40)2
img2x=0
img2y=0
private function tumsayfalar()void
Kullanshow_window(thisfalseapplicationwidth-10(applicationheight-60)2)
customMoveend()
customMoveplay()
private function zoom()void
if(zoomerlabel==+)
zoomerlabel=-
if(img2source=aimage[bookcurrentPageIndex2]zoom)
yuklemevisible=true
img2addEventListener(EventCOMPLETEbuyuk2_yuklendi)
100
img2source=aimage[bookcurrentPageIndex2]zoom
if(aimagelength()gtbookcurrentPageIndex2+1)
img1addEventListener(EventCOMPLETEbuyuk1_yuklendi)
img1source=aimage[bookcurrentPageIndex2+1]zoom
zoomYap=true
else if(zoomerlabel==-)
zoomerlabel=+
setGorunum()
private function setGorunum()void
zoomYap=false
zoomerlabel=+
img1visible=false
img2visible=false
private function next()void
mxcontrolsAlertshow(bookcurrentPageIndextoString() bookpageCounttoString())
if(bookcurrentPageIndex+1 lt bookpageCount)
mxcontrolsAlertshow(--resimdizi[bookcurrentPageIndex])
setGorunum()
bookturnToPage(bookcurrentPageIndex + 1)
private function previous()void
if(bookcurrentPageIndex gt 0)
setGorunum()
bookturnToPage(bookcurrentPageIndex -1)
private function git()void
var s_nouint = new uint
s_no=Mathfloor(uint(sayfatext)2)
101
if(s_nogt0 ampamp s_noltbookpageCount)
bookturnToPage(s_no)
setGorunum()
]]gt
ltmxScriptgt
lt-- 614x453 --gt
ltmxParallel id=customMove target=Kullangt
ltmxMove duration=2000 xTo=(100) 2 yTo=(200) 2 gt
ltmxWipeRight duration=2000 gt
ltmxParallelgt
ltmxVBoxgt
ltmxHBoxgt
ltcontrolsFlexBook id=book width=100 height=100 x=0 y=0 horizontalCenter=0
verticalCenter=0
animateCurrentPageIndex=true
showCornerTease=false
edgeAndCornerSize=150
itemRenderer=ImagePage
animatePagesOnTurn=true
itemSize=halfPage cornerRadius=0 themeColor=1D99E8
backgroundAlpha=10 alpha=10gt
ltcontrolsFlexBookgt
ltmxHBoxgt
ltmxHBox height=30 width=100 verticalAlign=middle
horizontalAlign=center color=B65F5F backgroundColor=121313gt
ltmxSpacer width=10gt
ltmxSpacergt
ltmxTextInput borderColor=FFFFFF width=34 height=24 id=sayfa
color=FFFFFF fontSize=11 text=0 alpha=001gt
ltmxButton click=git() color=ffffff fontWeight=bold fontSize=11
width=114 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label=Sayfaya Git themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxSpacer width=60gt
102
ltmxSpacergt
ltmxButton click=previous() color=ffffff fontWeight=bold fontSize=11
width=70 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label=Geri themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxButton click=next() color=ffffff fontWeight=bold fontSize=11
width=70 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label= leri themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxButton click=tumsayfalar() color=ffffff fontWeight=bold fontSize=11
width=134 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00 00]
label=Tuumlm Sayfalar themeColor=EDF2F5 textRollOverColor=EDD617gt
ltmxButton id=zoomer click=zoom() color=ffffff fontWeight=bold
fontSize=14 width=44 height=24 borderColor=000000 alpha=064 fillAlphas=[00 00 00
00] label=+ themeColor=EDF2F5 textRollOverColor=EDD617 fontFamily=Arialgt
ltmxSpacer width=5gt
ltmxHBoxgt
ltmxSpacer height=10gt
ltmxVBoxgt
ltmxCanvas id=maske x=224 y=168 width=200 height=168
verticalScrollPolicy=off horizontalScrollPolicy=off borderThickness=0 borderColor=000000
borderStyle=solidgt
ltmxImage id=img1 x=0 y=0gt
ltmxImage id=img2 x=40 y=0gt
ltmxCanvasgt
ltmxImage x=10 y=144 id=yuklemegt
ltmxApplicationgt
103
Kullanmxml
ltxml version=10 encoding=utf-8gt
ltmxTitleWindow xmlns= xmlnsmx=httpwwwadobecom2006mxml
creationComplete=on_creation_complete()
styleName=popupWindow showCloseButton=true
paddingBottom=0 paddingTop=0 paddingLeft=0 paddingRight=0
height=200 width=100 alpha=09 borderAlpha=1gt
ltmxScriptgt
lt[CDATA[
import mxcontrolsAlert
import mxcollectionsArrayCollection
import mxrpceventsResultEvent
[Bindable]
private var sayfalarArrayCollection
[Bindable]
private var introString =
import mxeventsCloseEvent
import mxmanagersPopUpManager
import mxcoreApplication
import mxeventsDragEvent
import mxmanagersDragManager
import mxcoreDragSource
import compResimSec
import koraxcontrolsColorPickerResimSecEvent
private var m_parentDisplayObject = null
private function myResult(eventResultEvent)void
sayfalar = eventresultsayfalarsayfa
private function sayfaac(eventEvent)void
wndwith_last_preved()
mxcontrolsAlertshow(myTileselectedItemgittoString())
uyeler = eventresultsayfalarsayfa
104
private function on_creation_complete()void
myHTTPsend()
private static var wndKullan = null
public static function show_window(parentDisplayObject
modalBooleanwNumberhNumber)void
if (wnd == null)
wnd = new Kullan()
wndaddEventListener(mxeventsCloseEventCLOSE on_close_event)
wndm_parent = parent
if (wndisPopUp)
PopUpManageraddPopUp(wnd DisplayObject(Applicationapplication) modal)
PopUpManagercenterPopUp(wnd)
else
PopUpManagerbringToFront(wnd)
wndstart_init()
wndx=0
wndy=0
wndwidth=w
wndheight=h
wndmyTilewidth=w-20
wndmyTileheight=h-40
private function with_last_preved()void
if (m_parent = null) m_parentdispatchEvent(new ResimSec(tamam
myTileselectedItemgit))
private static function on_close_event(eventCloseEvent)void
if (wnd == null) return
PopUpManagerremovePopUp(wnd)
wnd = null
105
private function yardim()void
Kullanshow_window(thisfalse)
]]gt
ltmxScriptgt
ltmxHTTPService id=myHTTP url=dataonizlexml
result=myResult(event) showBusyCursor=truegt
ltmxTileList id=myTile dataProvider=sayfalar change=sayfaac(event)
itemRenderer=compUyeSayfasi width=100 height=147 rowHeight=110 columnWidth=120
rowCount=2gt
ltmxTitleWindowgt
106
ImagePagemxml
ltxml version=10 encoding=utf-8gt
ltmxCanvas xmlnsmx=httpwwwadobecom2006mxml width=600 height=400
xmlnscontrols=qscontrols
backgroundColor=FFFFFF horizontalScrollPolicy=off verticalScrollPolicy=offgt
ltmxstatesgt
ltmxState name=loadingStategt
ltmxAddChild position=lastChildgt
ltmxImage id=loadingContent horizontalCenter=0 verticalCenter=-6
source=assetsloadinggif gt
ltmxAddChildgt
ltmxStategt
ltmxstatesgt
ltmxtransitionsgt
ltmxTransition fromState= toState=loadingStategt
ltmxFade alphaTo=1 target=loadingContent duration=1000gt
ltmxTransitiongt
ltmxTransition toState= fromState=loadingStategt
ltmxSequencegt
ltmxFade alphaTo=0 target=loadingContent duration=1000gt
ltmxRemoveChildAction target=loadingContent gt
ltmxSequencegt
ltmxTransitiongt
ltmxtransitionsgt
ltmxScriptgt
lt[CDATA[
import mxcontrolsAlert
private var _loadedBoolean = false
public function load()void
if(_loaded)
return
_loaded = true
fullsource = datasourcetoString()
mxcontrolsAlertshow (fullsource)
107
currentState = loadingState
]]gt
ltmxScriptgt
ltcontrolsSuperImage left=0 right=0 top=0 bottom=0 id=thumb
source=datathumbtoString() gt
ltcontrolsSuperImage left=0 right=0 top=0 bottom=0 id=full complete=currentState = gt
ltmxCanvasgt
This document was created with Win2PDF available at httpwwwwin2pdfcomThe unregistered version of Win2PDF is for evaluation or non-commercial use onlyThis page will not be added after purchasing Win2PDF