İpucu


jQuery.comÖzellikle JQuery kullanımın yaygınlaşmasıyla, daha da hissedilebilir boyuta gelen sayfa açılışlarının daki ( siteyi ilk ziyaretinizde ve ilk sayfayı açmak istediğinizde) yavaşlama, tüm dünyada yaygın olarak kullanılan CDN (Content Delivery/Distribution Network) kavramının ülkemizde pek bilinmemesinden kaynaklanmaktadır.

Peki biz niye JQuery kullanırız? Başlıca sebebi javascript’in performansından yararlanmak içindir. (Sonra javascript bilmeden, javascript kodlayabilmek içindir :) ) Peki ilk açlıştaki yavaşlama bir performans kaybı değil midir?Açılıştaki yavaşlığı gidermek için çok çok yapılan uygulama, ilgili javascript kütüphanelerin sayfanın üstlerine değilde body etiketinin bittiği yerlere yakın eklemek olmaktan öteye gitmememektedir. Fakat böyle oluncada, site tasarımı gelse de işlevselliğin gelmesi için ilgili kütüphanelerin istemci (siz) bilgisayarına tamamen indirilmesi gerekmektedir.

no - content-distribution-networkHalbuki tüm dünyada sayısız sitede kullanılan bu kütüphanelerin, her farklı site ziyaretinde istemciye indirilmesi yanlış değil midir? Her ne kadar siz veriyi önbelleklemiş (Cache) olsanızda, her ne kadar istemcinin kullandığı tarayıcı istemsiz bir şekilde bu veriyi istemci lokalinde önbelleklenmiş olsa da bu durum hatalı bir yaklaşımdır. Hem siz gereksiz yere sunucunuzun kaynaklarını kullanmış, sunucunuz üzerinde gereksiz bir upload trafiği oluşturmuş hem de istemcide zaten muhtemelen var olan bir dosyanın tekrar tekrar indirilmesine (download) yol açmış olursunuz.

Sunucu kaynaklarınızı verimli kullanmak, gereksiz yere sunucunuzdaki paralel bağlantı limitini doldurmamak, daha iyi bir önbellekleme (cache) ile kullanıcıların gereksiz yere download yapmasını önleyip, bu sayede veriyi daha çabuk kullanabilmesine olanak sağlamak için CDN‘leri kullanmalıyız.

JQuery.com bile JQuery kütüphanelerini google ait CDN’lerden çektiğini düşünülürse, sizin özellikle bu kütüphaneleri kendi sunucunuzda barındırmanız ne kadar yanlış bir yaklaşım olduğunu bir daha düşünün ?

content-distribution-networkAyrıca sunucunuzda barındırdığını herhangi bir dosyayı, sadece sizin kullanıyor olduğunuzun garanti yoktur. Açık olan bir nesneyi, kullanılan herkes, sizin kaynaklarınızın gereksiz yere tüketilmesine sebep olmaktadır. Benzer bir sebeple eğer JQuery.com bu kütüphaneleri kendi içinde barındırsaydı, muhtemelen birçok kişi, JQuery.com’u bu kez CDN olarak kullanmayı tercih edecekti. JQuery.com da hem bu durumu önlemek, hem de yukarıda belirtilen diğer faydalardan da yararlanmak adına, kendisine ait kütüphaneleri bile bir açık (public) CDN üzerinden sunma yoluna gitmiş olması son derece mantıklıdır…

Ek olarak, hiç birimizin google kadar geniş bir ağ (network) kurma durumumuz yok. Dolayısısyla dünyanın herhangi birinden sitemizi ziyaret eden bir kullanıcının, veriyi sadece ve sadece kendi sunucumuzdan indirmesi yönünde zorlamak yerine, CDN’lerin geniş network’unden faydanarak, sitemizi ziyaret eden o kullanıcıya en yakın hangi sunucu varsa, oradan indirmesini sağlamak daha anlamlı olacaktır.

Ücretsiz CDN’ler ile ilgili wiki’deki şu sayfayı inceleyebilirsiniz : http://en.wikipedia.org/wiki/Content_delivery_network#Free_CDNs
JQuery için google ait şu bağlantıyı kullanabilirsiniz : http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js
Microsoft’un da bu konudaki çözümünü görmek için : http://www.asp.net/ajaxlibrary/cdn.ashx

Görüşmek üzere,

www.mehmetozakan.com