{"id":38,"date":"2008-12-26T06:59:00","date_gmt":"1970-01-01T00:00:00","guid":{"rendered":"http:\/\/www.yazilimmutfagi.com\/?p=38"},"modified":"2008-12-26T06:59:00","modified_gmt":"1970-01-01T00:00:00","slug":"ajax-nedir","status":"publish","type":"post","link":"https:\/\/www.yazilimmutfagi.com\/index.php\/2008\/12\/26\/ajax-nedir\/","title":{"rendered":"Ajax Nedir?"},"content":{"rendered":"<p style=\"margin: 0cm 0cm 0pt; padding-left: 30px;\" class=\"MsoNormal\"><strong style=\"\"><span style=\"font-size: 11pt; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;\">Ajax Nedir?<\/span><\/strong><\/p>\n<p style=\"margin: 0cm 0cm 0pt; text-indent: 35.4pt;\" class=\"MsoNormal\"><span style=\"font-size: 11pt; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;\">Internette ajax ile ilgili y&uuml;zlerce makale bulunuyor, fakat bir tool yada karsilasilan bir hata ile ilgili arama yaptigimizda y&uuml;zlerce baslik arasinda kayboluyoruz &ccedil;ogu zaman. Bu y&uuml;zden Ajax ile en basitten baslayip t&uuml;m i&ccedil;erigi kapsayacak seriler halinde makaleler yazmayi, ve bu makalelerde de karsilasilan hatalari, kullanilan &ouml;rnekleri, .. vs. derleyip tek kaynaktan kolay erisim imkani sunmayi ama&ccedil;liyoruz. Bu ilk Makalede adettendir deyip ajax nedir ile basliyoruz.<\/span><\/p>\n<p style=\"margin: 0cm 0cm 0pt; text-indent: 35.4pt;\" class=\"MsoNormal\"><a href='www.yazilimmutfagi.com'>.<\/a><\/p>\n<p style=\"margin: 0cm 0cm 0pt;\" class=\"MsoNormal\"><span style=\"font-size: 11pt; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;\">Ajax etkili ve<span style=\"\">&nbsp; <\/span>interaktif web projelerini &ccedil;abucak<span style=\"\">&nbsp; <\/span>yapmanizi saglayacak, t&uuml;m pop&uuml;ler web browserlarda &ccedil;alisan &uuml;cretsiz bir frameworkt&uuml;r. Asynchronous <strong><span style=\"font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;\">J<\/span><\/strong>avaScript <strong><span style=\"font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;\">A<\/span><\/strong>nd <strong><span style=\"font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;\">X<\/span><\/strong>ML kelimelerinin kisaltmasidir. Aslinda ajax <strong><span style=\"font-weight: normal; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;\">HTML \/ CSS\/<\/span><\/strong><strong> <\/strong><strong><span style=\"font-weight: normal; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;\">DOM \/ JavaScript<\/span><\/strong><strong> <\/strong><strong><span style=\"font-weight: normal; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;\">XML \/ XML\/HttpRequest gibi bir&ccedil;ok bilesenin birlestirlmesiyle gelistirilmis bir teknolojidir<\/span><\/strong>. Bu d&uuml;s&uuml;nce &ouml;nce JSP gelistiricileri tarafindan ortaya atilmis daha sonra da Microsoft tarafindan desteklenmistir. Microsoft ilk &ouml;nce bunu <strong><span style=\"font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;\">ATLAS<\/span><\/strong> olarak gelistirmis daha sonra da <strong><span style=\"font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;\">ASP.NET AJAX<\/span><\/strong> olarak destegini s&uuml;rd&uuml;rm&uuml;st&uuml;r. Yani <span style=\"\">&ldquo;Ajax; ne Bir Dil, ne de Bir K&uuml;t&uuml;phane Degildir. Ajax Sadece Bir Y&ouml;ntemdir&rdquo;.<\/span><\/span><\/p>\n<p style=\"margin: 0cm 0cm 0pt;\" class=\"MsoNormal\"><span style=\"font-size: 11pt; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;\">Ajaxda, daha<\/span><span style=\"font-size: 11pt; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;\"> &ouml;nceden var olan JavaScript ve XML dillerini, web tarayicisinda bulunan XmlHttpRequest nesnesi ile birlikte kullanir. Peki, bu bize ne saglar? Istekler XmlHttpRequest ile g&ouml;nderilince sunucu ve istemci arasinda tasinan veriler sikistirilmis olur ve aradaki bant genisligi bos yere isgal edilmemis olacagi i&ccedil;in ayni anda yapilan bir&ccedil;ok islemde daha fazla perfonmans kazancimiz olur.<\/span><\/p>\n<p style=\"margin: 0cm 0cm 0pt;\" class=\"MsoNormal\"><strong><span style=\"font-size: 11pt; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;\">&nbsp;<\/span><\/strong><\/p>\n<p style=\"margin: 0cm 0cm 0pt; padding-left: 30px;\" class=\"MsoNormal\"><strong><span style=\"font-size: 11pt; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;\">Peki, avantajlari nelerdir?<\/span><\/strong><\/p>\n<p style=\"margin: 0cm 0cm 0pt; text-indent: 35.4pt;\" class=\"MsoNormal\"><span style=\"font-size: 11pt; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;\">Ajaxin sundugu belki de en &ouml;nemli avantaj, g&uuml;ncellemelerde sayfanin degil istenilen kisimlarin sunucuya gidip gelmesidir. Mesela se&ccedil;ilen ile g&ouml;re il&ccedil;elerin DropDrownList&rsquo;e gelmesi gerektigini d&uuml;s&uuml;nelim. Eger Ajax olmazsa, sayfadaki t&uuml;m islemlerle birlikte ile bagli il&ccedil;e istegide sunucuya gidecek, cevap alinip sayfa tekrar g&uuml;ncellenecek. Bu sirada eger sayfanin postback(g&uuml;ncellenme) olayi kontrol etmeden pageLoad() kismina bir kod yazmissak bunlarda g&uuml;ncellenecegi i&ccedil;in hem extra zaman kaybi hem belki yapilan islemlerin kaybina sebeb olacak. Ama ajax kullanirsak sunucuya sadece ile bagli il&ccedil;elerin istegi gidip cevap d&ouml;necek ve sadece gerekli DropDrownlist g&uuml;ncellenecek. B&ouml;ylece hem zaman kazanmis hemde ag trafigini hafifletmis olacagiz. Ayrica ekrandaki g&uuml;ncelleme daha hizli oldugu i&ccedil;in kullanicilar i&ccedil;in can sikan beklemelerin &ouml;n&uuml;ne ge&ccedil;mis oluruz.<\/span><\/p>\n<p style=\"margin: 0cm 0cm 0pt; text-indent: 35.4pt;\" class=\"MsoNormal\"><span style=\"font-size: 11pt; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;\">Aslinda bu isleri yapmak i&ccedil;in<\/span><span style=\"font-size: 11pt; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;\"> javascript da kullanabiliriz. &Ouml;yleyse neden ajax? Muhakkakki islemler sirasinda baska bir sayfaya veri veya istek g&ouml;nderilmeden yapilmiyorsa javascript en hizli kontrol y&ouml;ntemidir. Ama veritabani sorgusu gibi bir islem yapilacaksa ajax bir adim &ouml;ne ge&ccedil;iyor. Bu da bizim javascripti her alanda kullanamamamiza neden oluyor. Ve tabi yazinin basinda da belirttigim gibi, javascrip&rsquo;in farkli browserlarda &ccedil;ikardigi sorunlar ajax da yok &ccedil;&uuml;nk&uuml; ajax kendi i&ccedil;inde &ldquo;<strong><span style=\"font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;\">Browser Compatibility<\/span><\/strong>&rdquo; denen bir k&uuml;t&uuml;phaneyi dahil ederek bu sorunu asmayi hedefliyor.<\/span><\/p>\n<p style=\"margin: 0cm 0cm 0pt; text-indent: 35.4pt;\" class=\"MsoNormal\"><span style=\"font-size: 11pt; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;\">Ayrica html, asp.net, php vs.. gibi bir&ccedil;ok dil varken, yeni bir dil sunmayip,bu diller ile<span style=\"\">&nbsp; <\/span>entegre &ccedil;alisarak bizi dil &ouml;grenmek i&ccedil;in zaman kaybetmekten ve bunun &ccedil;etrefillerinden kurtariyor. Bu zamanda kullanimini &ouml;grenerek ve denemeler yaparak bir adim &ouml;ne ge&ccedil;mek m&uuml;mk&uuml;n. Belkide ajax&rsquo;in kisa s&uuml;rede bu kadar yayginlasmasinin nedeni, bir&ccedil;ok dil ile entegre olup sanki yeni bir tool eklenmek kadar kolay ve kisa s&uuml;rede &ouml;grenilebilmesidir.<\/span><\/p>\n<p style=\"margin: 0cm 0cm 0pt; text-indent: 35.4pt;\" class=\"MsoNormal\"><a href='www.yazilimmutfagi.com'>.<\/a><\/p>\n<p style=\"margin: 0cm 0cm 0pt; text-indent: 35.4pt;\" class=\"MsoNormal\">&nbsp;<\/p>\n<p style=\"margin: 0cm 0cm 0pt; text-indent: 35.4pt;\" class=\"MsoNormal\"><strong><span style=\"font-size: 11pt; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;\">Dezavantajlari?<\/span><\/strong><\/p>\n<p style=\"margin: 0cm 0cm 0pt; text-indent: 35.4pt;\" class=\"MsoNormal\"><span style=\"font-size: 11pt; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;\">Elbette &ouml;zellikle gelistirilmekte olan ve &ldquo;gelismis&rdquo; denen t&uuml;m yazilimlarda hatalar ve buglar mevcuttur. <span style=\"\">&nbsp;<\/span>Ajax&rsquo;da da bazi sorunlar ve dezavantajla hatta bazen avantaja d&ouml;n&uuml;sen dezavantajlar vardir.<\/span><\/p>\n<p style=\"margin: 0cm 0cm 0pt; text-indent: 35.4pt;\" class=\"MsoNormal\"><span style=\"font-size: 11pt; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;\">Ilk olarak herkesin en &ccedil;ok bahsettigi ileri-geri butonu sorunu. Sayfalar dinamik olarak olusturuldu i&ccedil;in geri tusuna basildiginda sayfamizin yapisina g&ouml;re bazen sorunlar &ccedil;ikmakta &ccedil;&uuml;nk&uuml; tarayici dinamik sayfalari hafizasinda tutmuyor. Bu sorunu asmak i&ccedil;in bazi &ccedil;alismala yapilabilir, ek kodlar, ileri geri butonlarinin pasif yapilmasi vs. ama tabi bu bizim i&ccedil;in ek &ccedil;alisma, ek zaman ve ek bant genisligi demek.<\/span><\/p>\n<p style=\"margin: 0cm 0cm 0pt; text-indent: 35.4pt;\" class=\"MsoNormal\"><span style=\"font-size: 11pt; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;\">Diger bir dezavantaj da arama motorlarinda indexlenememesidir. S&ouml;yleki ajax i&ccedil;erisinde y&uuml;klenen verileri sayfanin kaynak kodlarinda g&ouml;remezsiniz ve arama motorlari da bunu g&ouml;remeyecegi i&ccedil;in indexleyemez. &Ouml;zellikle ziyaretci sayisinin &ouml;nemli oldugu ve bunun maddi tarafindan yararlanan siteler i&ccedil;in bu ger&ccedil;ekte b&uuml;y&uuml;k bir dezavantajdir. Ayni durumun dinamik olusturululan t&uuml;m sayfalar i&ccedil;inde ge&ccedil;erli oldugu ve bunun tag vs. gibi y&ouml;ntemlerle asilabilecegini de unutmamak gerekir. Tabi bu durum bazen avantaja da d&ouml;n&uuml;sebilir. Mesela kisilere &ouml;zel bilgilerin oldugu sayfalarin arama motorlarinda &ccedil;ikmasini istemeyiz, ya da resmi bir kurum i&ccedil;in yapilan web uygulamalarinda i&ccedil;erik gizli olmalidir muhakkak. Bu durumlarda ajax avantaja d&ouml;n&uuml;smektedir.<\/span><\/p>\n<p style=\"margin: 0cm 0cm 0pt; text-indent: 35.4pt;\" class=\"MsoNormal\"><span style=\"font-size: 11pt; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;\">Ajaxin javascripten kaynaklanan dezavantajlarini da unutmamak lazim, mesela javascript kullanmak bilgisayari bir par&ccedil;a yavaslatir &ccedil;&uuml;nk&uuml; javascript kullanicinin bilgisayarinda yorumlanan bir dildir ve yavas bilgisayarlari daha da yavaslatir.<\/span><\/p>\n<p style=\"margin: 0cm 0cm 0pt;\" class=\"MsoNormal\"><span style=\"font-size: 11pt; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;\">Ajaxin kullandigi <\/span><span style=\"font-size: 11pt; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;\">XMLHTTPREQUEST bir ActiveX nesnesidir. Bazi bilgisayarlarda ActiveX otomatik engellendigi i&ccedil;in ajax &ccedil;alismayabiliyor. Bunun i&ccedil;in &ccedil;&ouml;z&uuml;mler var elbette ama bu hala eski s&uuml;r&uuml;m explorerlar i&ccedil;in bir problem<\/span><\/p>\n<p style=\"margin: 0cm 0cm 0pt; text-indent: 35.4pt;\" class=\"MsoNormal\"><span style=\"font-size: 11pt; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;\">Ajax ile ilgili daha pek &ccedil;ok avantaj ve dezavantaj bulunmakta. Pek &ccedil;ok insan ajaxi kullanmaya &ccedil;oktan baslamisken, bazilari ise karsi &ccedil;ikiyor. <span style=\"\">&nbsp;<\/span>Fakat &ouml;zellikle g&uuml;ncellemelerin gerektigi islemlerde, mesela kosula bagli doldurulacak alanlarda, ajax bize bir&ccedil;ok kolaylik saglamakta ve bizde bu teknolojiyi daha yakindan incelemek ve anlatmak i&ccedil;in ajax konusundaki makelelerimize devam edecegiz.<\/span><\/p>","protected":false},"excerpt":{"rendered":"<p>Internette ajax ile ilgili y&#252;zlerce makale bulunuyor, fakat bir tool yada karsilasilan bir hata ile ilgili arama yaptigimizda y&#252;zlerce baslik arasinda kayboluyoruz &#231;ogu zaman. Bu y&#252;zden Ajax ile en basitten baslayip t&#252;m i&#231;erigi kapsayacak seriler halinde makaleler yazmayi, ve bu makalelerde de &#8230;<\/p>\n","protected":false},"author":525,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[409],"tags":[4251,6002,5806,6122,6222,5606,4994,4525,5268],"_links":{"self":[{"href":"https:\/\/www.yazilimmutfagi.com\/index.php\/wp-json\/wp\/v2\/posts\/38"}],"collection":[{"href":"https:\/\/www.yazilimmutfagi.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.yazilimmutfagi.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.yazilimmutfagi.com\/index.php\/wp-json\/wp\/v2\/users\/525"}],"replies":[{"embeddable":true,"href":"https:\/\/www.yazilimmutfagi.com\/index.php\/wp-json\/wp\/v2\/comments?post=38"}],"version-history":[{"count":0,"href":"https:\/\/www.yazilimmutfagi.com\/index.php\/wp-json\/wp\/v2\/posts\/38\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.yazilimmutfagi.com\/index.php\/wp-json\/wp\/v2\/media?parent=38"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.yazilimmutfagi.com\/index.php\/wp-json\/wp\/v2\/categories?post=38"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.yazilimmutfagi.com\/index.php\/wp-json\/wp\/v2\/tags?post=38"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}