ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi · 2020. 8. 4. · t.c. firat Ünverstes fen...

123
T.C. FIRAT ÜN VERS TES FEN B L MLER ENST TÜSÜ AJAX TEKNOLOJ S KULLANARAK ÇEVR M Ç KATALOG TASARIMI Zeynep ÖZER AYDO MU Tez Yöneticisi: Prof. Dr. Asaf VAROL YÜKSEK L SANS TEZ ELEKTRON K VE B LG SAYAR E T M ANAB L M DALI ELAZI , 2009

Upload: others

Post on 21-Jan-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer

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

Page 2: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer

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

Page 3: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer

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

Page 4: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer

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

Page 5: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer

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

Page 6: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer

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

Page 7: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer

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

Page 8: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer

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

Page 9: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer

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

Page 10: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer

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

Page 11: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer

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

Page 12: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 13: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 14: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 15: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 16: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 17: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 18: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 19: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 20: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 21: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 22: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 23: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 24: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 25: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 26: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 27: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 28: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 29: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 30: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 31: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 32: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 33: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 34: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 35: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 36: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 37: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 38: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 39: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 40: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 41: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 42: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 43: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 44: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 45: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 46: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 47: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 48: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 49: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 50: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 51: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 52: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 53: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 54: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 55: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 56: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 57: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 58: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 59: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 60: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 61: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 62: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 63: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 64: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 65: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 66: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 67: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 68: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 69: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 70: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 71: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 72: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 73: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 74: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 75: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 76: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 77: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 78: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 79: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 80: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 81: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 82: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 83: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 84: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 85: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 86: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 87: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 88: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 89: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 90: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 91: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 92: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 93: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 94: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 95: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 96: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 97: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 98: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 99: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 100: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 101: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 102: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 103: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 104: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 105: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 106: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 107: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 108: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 109: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 110: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 111: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 112: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 113: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 114: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 115: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 116: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 117: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 118: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 119: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 120: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 121: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer
Page 122: AJAX TEKNOLOJS KULLANARAK ÇEVRMÇ KATALOG TASARIMI · 2020. 8. 4. · t.c. firat Ünverstes fen blmler ensttÜsÜ ajax teknolojs kullanarak ÇevrmÇ katalog tasarimi zeynep Özer