{"id":32961,"date":"2025-10-27T22:31:34","date_gmt":"2025-10-27T19:31:34","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/astro-client-directives-performansi-artiran-stratejiler\/"},"modified":"2025-10-27T22:31:34","modified_gmt":"2025-10-27T19:31:34","slug":"astro-client-directives-performansi-artiran-stratejiler","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/astro-client-directives-performansi-artiran-stratejiler\/","title":{"rendered":"Astro Client Directives: Performans\u0131 Art\u0131ran Stratejiler"},"content":{"rendered":"<p><body><\/p>\n<p>Modern web geli\u015ftirme d\u00fcnyas\u0131nda, h\u0131zl\u0131 y\u00fcklenen ve etkile\u015fimli kullan\u0131c\u0131 deneyimleri sunan web siteleri olu\u015fturmak, hem geli\u015ftiriciler hem de kullan\u0131c\u0131lar i\u00e7in birincil \u00f6nceliktir. Ancak, istemci taraf\u0131 JavaScript&#8217;in a\u015f\u0131r\u0131 kullan\u0131m\u0131, genellikle bu hedeflere ula\u015fmada \u00f6nemli bir engel te\u015fkil eder. Peki, web sitenizin performans\u0131n\u0131 d\u00fc\u015f\u00fcrmeden, zengin etkile\u015fimler sunan bile\u015fenleri nas\u0131l entegre edebilirsiniz? \u0130\u015fte tam bu noktada Astro&#8217;nun Client Directives (\u0130stemci Y\u00f6nergeleri) devreye giriyor. Bu kapsaml\u0131 makalede, Astro&#8217;nun Client Directives&#8217;lar\u0131n\u0131n ne oldu\u011funu, hangi durumlarda hangi y\u00f6nergeyi kullanman\u0131z gerekti\u011fini ve sitenizin performans\u0131n\u0131 nas\u0131l maksimize edebilece\u011finizi ad\u0131m ad\u0131m inceleyece\u011fiz. Hadi, Astro ile web sitelerinizi daha h\u0131zl\u0131 ve etkile\u015fimli hale getirme yolculu\u011funa \u00e7\u0131kal\u0131m!<\/p>\n<p>Astro, modern web siteleri i\u00e7in geli\u015ftirilmi\u015f, \u00f6zellikle i\u00e7erik odakl\u0131 web sitelerinde ve bloglarda performans\u0131 \u00f6n planda tutan, yenilik\u00e7i bir web framework&#8217;\u00fcd\u00fcr. Geleneksel SPA (Tek Sayfa Uygulamas\u0131) framework&#8217;lerinin aksine, Astro varsay\u0131lan olarak JavaScript&#8217;i taray\u0131c\u0131ya g\u00f6ndermez. Bunun yerine, &#8220;S\u0131f\u0131r JavaScript&#8221; yakla\u015f\u0131m\u0131n\u0131 benimser ve HTML&#8217;i m\u00fcmk\u00fcn oldu\u011funca sunucu taraf\u0131nda olu\u015fturarak g\u00f6nderir. Bu, sayfa y\u00fckleme s\u00fcrelerini \u00f6nemli \u00f6l\u00e7\u00fcde h\u0131zland\u0131r\u0131r ve kullan\u0131c\u0131 deneyimini art\u0131r\u0131r.<\/p>\n<p>Ancak, her web sitesinde etkile\u015fimli bile\u015fenlere ihtiya\u00e7 duyar\u0131z: bir men\u00fc a\u00e7\u0131l\u0131p kapanabilir, bir galeri kayd\u0131r\u0131labilir veya bir form dinamik olarak yan\u0131t verebilir. \u0130\u015fte bu noktada Astro&#8217;nun &#8220;Ada Mimarisi&#8221; (Islands Architecture) ve &#8220;\u0130stemci Y\u00f6nergeleri&#8221; (Client Directives) sahneye \u00e7\u0131kar. Ada Mimarisi, web sayfas\u0131n\u0131n tamam\u0131n\u0131 bir SPA gibi &#8220;hidrate etmek&#8221; yerine, yaln\u0131zca etkile\u015fime ihtiya\u00e7 duyan k\u00fc\u00e7\u00fck, izole edilmi\u015f JavaScript &#8220;adalar\u0131n\u0131&#8221; hidrate etmenize olanak tan\u0131r. Bu sayede, yaln\u0131zca gerekli JavaScript kodu taray\u0131c\u0131ya g\u00f6nderilir ve sayfan\u0131n geri kalan\u0131 statik kal\u0131r.<\/p>\n<p>\u0130stemci Y\u00f6nergeleri, bu adalar\u0131n ne zaman ve nas\u0131l hidrate edilece\u011fini Astro&#8217;ya s\u00f6yleyen \u00f6zel niteliklerdir. Bir Astro bile\u015fenini (\u00f6rne\u011fin bir React, Vue veya Svelte bile\u015feni) bir Astro sayfas\u0131na ekledi\u011finizde, bu y\u00f6nergeleri kullanarak, o bile\u015fenin JavaScript kodunun ne zaman taray\u0131c\u0131da \u00e7al\u0131\u015ft\u0131r\u0131laca\u011f\u0131n\u0131 hassas bir \u015fekilde kontrol edebilirsiniz. Bu, gereksiz JavaScript y\u00fcklemesini \u00f6nleyerek, \u00f6zellikle ilk anlaml\u0131 boyama (First Contentful Paint &#8211; FCP) ve etkile\u015fime ge\u00e7i\u015f s\u00fcresi (Time to Interactive &#8211; TTI) gibi metriklerde b\u00fcy\u00fck iyile\u015ftirmeler sa\u011flar. Astro&#8217;nun bu ak\u0131ll\u0131 yakla\u015f\u0131m\u0131 sayesinde, geli\u015ftiriciler hem y\u00fcksek performansl\u0131 statik sitelerin avantajlar\u0131ndan yararlanabilir hem de modern etkile\u015fimli UI bile\u015fenlerini kolayca entegre edebilirler.<\/p>\n<div class=\"expert-tip\">\n      Uzman \u0130pucu: Astro&#8217;nun Ada Mimarisi, sayfan\u0131n tamam\u0131n\u0131 hidrate etmek yerine yaln\u0131zca etkile\u015fimli k\u0131s\u0131mlar\u0131 hedefleyerek, JavaScript paket boyutunu ve CPU kullan\u0131m\u0131n\u0131 dramatik \u015fekilde azalt\u0131r. Bu da, mobil cihazlarda ve yava\u015f a\u011f ba\u011flant\u0131lar\u0131nda bile kusursuz bir kullan\u0131c\u0131 deneyimi sunman\u0131za yard\u0131mc\u0131 olur.\n    <\/div>\n<p>Peki, bu y\u00f6nergeler tam olarak nelerdir ve her birini hangi senaryolarda kullanmal\u0131y\u0131z? Gelin, en yayg\u0131n kullan\u0131lan Astro Client Directives&#8217;lar\u0131n\u0131 ve bunlar\u0131n pratik uygulamalar\u0131n\u0131 derinlemesine inceleyelim. Her bir y\u00f6nergenin faydalar\u0131n\u0131, olas\u0131 dezavantajlar\u0131n\u0131 ve ger\u00e7ek d\u00fcnya \u00f6rnekleriyle kullan\u0131m \u015fekillerini \u00f6\u011frenerek, projelerinizde bilin\u00e7li kararlar verebileceksiniz.<\/p>\n<h2>Client:load: En Acil Durumlar \u0130\u00e7in \u0130stemci Y\u00fcklemesi Nas\u0131l Yap\u0131l\u0131r?<\/h2>\n<p><code>client:load<\/code> y\u00f6nergesi, Astro&#8217;daki en basit ve en agresif istemci y\u00f6nergesidir. Bu y\u00f6nergeyi bir bile\u015fene ekledi\u011finizde, Astro, o bile\u015fenin JavaScript kodunu sayfa ilk y\u00fcklendi\u011finde hemen taray\u0131c\u0131ya g\u00f6nderir ve y\u00fcr\u00fct\u00fcr. Yani, sayfa DOM&#8217;a yerle\u015fir yerle\u015fmez bile\u015fen hidrate edilir ve etkile\u015fimli hale gelir. Bu durum, bile\u015fenin kritik bir kullan\u0131c\u0131 deneyimi i\u00e7in an\u0131nda haz\u0131r olmas\u0131 gerekti\u011fi senaryolarda idealdir.<\/p>\n<h3>Ne Zaman Kullan\u0131lmal\u0131?<\/h3>\n<p><code>client:load<\/code> kullan\u0131m\u0131, web siteniz i\u00e7in vazge\u00e7ilmez olan ve kullan\u0131c\u0131lar\u0131n ilk g\u00f6rd\u00fckleri anda etkile\u015fime girmesi beklenen bile\u015fenler i\u00e7in ayr\u0131lmal\u0131d\u0131r. \u00d6rne\u011fin:<\/p>\n<ul>\n<li><strong>Kritik Navigasyon Men\u00fcleri:<\/strong> Bir hamburger men\u00fc veya ana gezinme \u00e7ubu\u011fu gibi, kullan\u0131c\u0131lar\u0131n site i\u00e7inde hareket etmesi i\u00e7in temel olan bile\u015fenler. Bunlar hemen \u00e7al\u0131\u015fmal\u0131 ki kullan\u0131c\u0131 siteyi ke\u015ffetmeye ba\u015flayabilsin.<\/li>\n<li><strong>Arama \u00c7ubuklar\u0131:<\/strong> Kullan\u0131c\u0131lar\u0131n do\u011frudan arama yapmaya ba\u015flayaca\u011f\u0131, sayfan\u0131n en \u00fcst\u00fcnde yer alan bir arama \u00e7ubu\u011fu.<\/li>\n<li><strong>\u0130lk G\u00f6r\u00fcnt\u00fclenen Etkile\u015fimli Bile\u015fenler:<\/strong> Sayfan\u0131n ilk ekran\u0131nda (above-the-fold) g\u00f6r\u00fcnen ve hemen etkile\u015fim gerektiren bir bildirim \u00e7ubu\u011fu veya bir banner carousel&#8217;i.<\/li>\n<li><strong>Eri\u015filebilirlik Odakl\u0131 Bile\u015fenler:<\/strong> Ekran okuyucular veya klavye navigasyonu gibi eri\u015filebilirlik \u00f6zelliklerini sa\u011flayan, sayfan\u0131n temel iskeletini olu\u015fturan bile\u015fenler.<\/li>\n<\/ul>\n<h3>Kod \u00d6rne\u011fi: Kritik Bir Navigasyon Men\u00fcs\u00fc<\/h3>\n<p>Bir Astro projesinde, React ile yaz\u0131lm\u0131\u015f bir <code>HamburgerMenu<\/code> bile\u015feniniz oldu\u011funu varsayal\u0131m. Kullan\u0131c\u0131lar siteye gelir gelmez bu men\u00fcy\u00fc a\u00e7\u0131p kapatabilmeli:<\/p>\n<pre><code>\n---\nimport HamburgerMenu from '..\/components\/HamburgerMenu.jsx';\n---\n\n<header>\n  <nav>\n    <a href=\"\/\">Ana Sayfa<\/a>\n    <HamburgerMenu client:load \/> \n  <\/nav>\n<\/header>\n\n<main>\n  <h1>Astro Blog Ho\u015f Geldiniz<\/h1>\n  <p>Bu makale Astro client directives hakk\u0131nda...<\/p>\n<\/main>\n    <\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnekte, <code>HamburgerMenu<\/code> bile\u015feni sayfayla birlikte hemen y\u00fcklenir ve etkile\u015fimli hale gelir. B\u00f6ylece kullan\u0131c\u0131lar, sayfan\u0131n di\u011fer statik i\u00e7eri\u011finin y\u00fcklenmesini beklemeden men\u00fcy\u00fc kullanabilirler.<\/p>\n<h3>Vaka Analizi: E-ticaret Sitesi Ba\u015fl\u0131\u011f\u0131<\/h3>\n<p>B\u00fcy\u00fck bir e-ticaret sitesinin \u00fcst k\u0131sm\u0131nda yer alan bir ba\u015fl\u0131k (header) bile\u015feni d\u00fc\u015f\u00fcn\u00fcn. Bu ba\u015fl\u0131kta bir arama \u00e7ubu\u011fu, kullan\u0131c\u0131 sepeti simgesi ve bir kullan\u0131c\u0131 profili men\u00fcs\u00fc gibi bir\u00e7ok etkile\u015fimli \u00f6\u011fe bulunur. Bu \u00f6\u011felerin tamam\u0131n\u0131n sayfa y\u00fcklenir y\u00fcklenmez aktif olmas\u0131, al\u0131\u015fveri\u015f deneyimini kritik derecede etkiler. E\u011fer arama \u00e7ubu\u011fu ge\u00e7 y\u00fcklenirse, kullan\u0131c\u0131 hemen arama yapamaz ve bu da bir hayal k\u0131r\u0131kl\u0131\u011f\u0131na neden olabilir. Bu senaryoda, ba\u015fl\u0131k bile\u015feninin ana konteynerine veya do\u011frudan i\u00e7indeki kritik bile\u015fenlere <code>client:load<\/code> uygulamak, kullan\u0131c\u0131lar\u0131n siteyle an\u0131nda etkile\u015fime ge\u00e7mesini sa\u011flar. Bu, \u00f6zellikle mobil cihazlarda, ilk etkile\u015fime ge\u00e7me s\u00fcresini optimize etmek i\u00e7in \u00e7ok \u00f6nemlidir.<\/p>\n<p>Unutmamak gerekir ki, <code>client:load<\/code> kullanmak, performans maliyeti en y\u00fcksek olan y\u00f6nergedir, \u00e7\u00fcnk\u00fc JavaScript'i olabildi\u011fince erken y\u00fckler. Bu nedenle, ger\u00e7ekten kritik olmayan bile\u015fenler i\u00e7in di\u011fer y\u00f6nergeleri tercih etmek, genel site performans\u0131n\u0131 iyile\u015ftirmek ad\u0131na daha ak\u0131ll\u0131ca olacakt\u0131r. Sadece ger\u00e7ekten gerekli olan yerlerde kullanmak, Astro'nun \"s\u0131f\u0131r JavaScript\" felsefesine uygun hareket etmenizi sa\u011flar.<\/p>\n<h2>Client:idle: Bo\u015f Zamanlarda Etkile\u015fim Nas\u0131l Eklenir?<\/h2>\n<p><code>client:idle<\/code> y\u00f6nergesi, <code>client:load<\/code>'a g\u00f6re daha nazik bir yakla\u015f\u0131ma sahiptir. Bu y\u00f6nergeye sahip bir bile\u015fen, sayfa y\u00fcklendikten ve taray\u0131c\u0131 ilk ana i\u015f par\u00e7ac\u0131\u011f\u0131 (main thread) bo\u015f kald\u0131\u011f\u0131nda hidrate edilir. Yani, taray\u0131c\u0131 t\u00fcm kritik kaynaklar\u0131 y\u00fcklemeyi bitirip \"nefes ald\u0131\u011f\u0131nda\" JavaScript kodu \u00e7al\u0131\u015ft\u0131r\u0131lmaya ba\u015flar. Bu, genellikle sayfadaki di\u011fer \u00f6nemli kaynaklar\u0131n (resimler, CSS) y\u00fcklenmesinin tamamlanmas\u0131ndan hemen sonra ger\u00e7ekle\u015fir ve sayfan\u0131n ilk anlaml\u0131 i\u00e7eri\u011fi g\u00f6r\u00fcnt\u00fclendikten sonra devreye girer.<\/p>\n<h3>Ne Zaman Kullan\u0131lmal\u0131?<\/h3>\n<p><code>client:idle<\/code>, kullan\u0131c\u0131 deneyimi i\u00e7in \u00f6nemli olan ancak an\u0131nda etkile\u015fim gerektirmeyen bile\u015fenler i\u00e7in m\u00fckemmeldir. Bu y\u00f6nerge, kullan\u0131c\u0131lar\u0131n ilk anda odaklanaca\u011f\u0131 i\u00e7erik d\u0131\u015f\u0131ndaki, daha ikincil etkile\u015fimler i\u00e7in idealdir:<\/p>\n<ul>\n<li><strong>Sosyal Medya Payla\u015f\u0131m Butonlar\u0131:<\/strong> Bir blog yaz\u0131s\u0131n\u0131n sonunda yer alan payla\u015f\u0131m butonlar\u0131. Kullan\u0131c\u0131 yaz\u0131y\u0131 okumay\u0131 bitirene kadar bunlar\u0131n etkile\u015fimli olmas\u0131na gerek yoktur.<\/li>\n<li><strong>Cookie Onay \u00c7ubuklar\u0131:<\/strong> Genellikle sayfan\u0131n alt k\u0131sm\u0131nda g\u00f6r\u00fcnen, hemen etkile\u015fime ge\u00e7ilmesi gerekmeyen uyar\u0131lar.<\/li>\n<li><strong>K\u00fc\u00e7\u00fck Widget'lar:<\/strong> Hava durumu widget'\u0131 veya d\u00f6viz kuru g\u00f6stergesi gibi, ana i\u00e7eri\u011fin okunmas\u0131n\u0131 engellemeyecek, ancak bir s\u00fcre sonra g\u00fcncellenebilecek veya t\u0131klanabilecek bile\u015fenler.<\/li>\n<li><strong>Yorum Formlar\u0131:<\/strong> Bir makalenin alt\u0131ndaki yorum formu. Kullan\u0131c\u0131 makaleyi okumay\u0131 bitirip a\u015fa\u011f\u0131 kayd\u0131rd\u0131\u011f\u0131nda haz\u0131r olmas\u0131 yeterlidir.<\/li>\n<\/ul>\n<h3>Kod \u00d6rne\u011fi: Bir Blog Yaz\u0131s\u0131 Yorum B\u00f6l\u00fcm\u00fc<\/h3>\n<p>Bir blog yaz\u0131s\u0131n\u0131n sonunda, bir React bile\u015feni olarak yaz\u0131lm\u0131\u015f <code>CommentSection<\/code> oldu\u011funu d\u00fc\u015f\u00fcnelim:<\/p>\n<pre><code>\n---\nimport CommentSection from '..\/components\/CommentSection.jsx';\n---\n\n<main>\n  <h1>Astro Client Directives Rehberi<\/h1>\n  <p>Makale i\u00e7eri\u011fi burada...<\/p>\n<\/main>\n\n<footer>\n  <CommentSection client:idle \/>\n<\/footer>\n    <\/pre>\n<p><\/code><\/p>\n<p>Bu kurulumda, <code>CommentSection<\/code> bile\u015feni, sayfa tamamen y\u00fcklendikten ve taray\u0131c\u0131 bo\u015fta kald\u0131ktan sonra hidrate edilir. Kullan\u0131c\u0131 makaleyi okurken performans etkilenmez ve yorum b\u00f6l\u00fcm\u00fc ancak kullan\u0131c\u0131 i\u00e7eri\u011fi t\u00fcketmeyi bitirdi\u011finde veya taray\u0131c\u0131n\u0131n kaynaklar\u0131 m\u00fcsait oldu\u011funda haz\u0131r olur.<\/p>\n<h3>Vaka Analizi: Makale Sayfas\u0131ndaki \u0130lgili Yaz\u0131lar Bile\u015feni<\/h3>\n<p>Bir haber veya blog sitesinde, her makalenin alt\u0131nda \"\u0130lgili Yaz\u0131lar\" veya \"En \u00c7ok Okunanlar\" gibi dinamik olarak y\u00fcklenen bir b\u00f6l\u00fcm bulunur. Bu b\u00f6l\u00fcm, genellikle bir API'den veri \u00e7eker ve etkile\u015fimli bir carousel veya basit bir liste \u015feklinde sunulur. Bu b\u00f6l\u00fcm\u00fcn hemen y\u00fcklenmesi, kullan\u0131c\u0131n\u0131n ana makale i\u00e7eri\u011fini okuma deneyimini kesintiye u\u011fratabilir. Bu nedenle, bu t\u00fcr bir <code>RelatedArticles<\/code> bile\u015feni i\u00e7in <code>client:idle<\/code> kullanmak ak\u0131ll\u0131ca bir stratejidir. Kullan\u0131c\u0131 makaleyi okumay\u0131 bitirip sayfan\u0131n alt\u0131na indi\u011finde veya taray\u0131c\u0131 bo\u015fta kald\u0131\u011f\u0131nda bu bile\u015fen hidrate edilir. Bu, hem ana i\u00e7eri\u011fin h\u0131zl\u0131 y\u00fcklenmesini sa\u011flar hem de kullan\u0131c\u0131n\u0131n ilgisini \u00e7ekebilecek ek i\u00e7eri\u011fi sunar, ancak bunu performans maliyetiyle yapmaz.<\/p>\n<p><code>client:idle<\/code>, <code>client:load<\/code>'a g\u00f6re daha iyi bir performans dengesi sunar. Ancak yine de, bile\u015feninizin JavaScript'inin bir noktada y\u00fcklenip \u00e7al\u0131\u015ft\u0131r\u0131laca\u011f\u0131 anlam\u0131na gelir. Bu nedenle, bile\u015feninizin ger\u00e7ekten etkile\u015fime ihtiya\u00e7 duyup duymad\u0131\u011f\u0131n\u0131 ve bu etkile\u015fimin ne kadar acil oldu\u011funu dikkatlice de\u011ferlendirmek \u00f6nemlidir. M\u00fcmk\u00fcn oldu\u011funca az JavaScript y\u00fcklemek, Astro'nun temel felsefesidir.<\/p>\n<h2>Client:visible: G\u00f6r\u00fcn\u00fcr Oldu\u011funda Y\u00fckleme Stratejileri Nelerdir?<\/h2>\n<p><code>client:visible<\/code> y\u00f6nergesi, bir bile\u015feni yaln\u0131zca kullan\u0131c\u0131 taray\u0131c\u0131da o bile\u015fenin oldu\u011fu konuma geldi\u011finde (yani viewport'a girdi\u011finde) hidrate eder. Bu, Lazy Loading (tembel y\u00fckleme) prensibinin etkile\u015fimli bile\u015fenler i\u00e7in Astro'daki kar\u015f\u0131l\u0131\u011f\u0131d\u0131r ve performans optimizasyonu i\u00e7in son derece g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r. Bile\u015fenin JavaScript'i, ancak kullan\u0131c\u0131n\u0131n onu g\u00f6rmesi muhtemel oldu\u011funda y\u00fcklenir ve \u00e7al\u0131\u015ft\u0131r\u0131l\u0131r.<\/p>\n<h3>Ne Zaman Kullan\u0131lmal\u0131?<\/h3>\n<p><code>client:visible<\/code>, sayfan\u0131n \"fold\" (ilk ekran) alt\u0131nda kalan ve hemen g\u00f6r\u00fcnmesi gerekmeyen, ancak g\u00f6r\u00fcnd\u00fc\u011f\u00fcnde etkile\u015fimli olmas\u0131 beklenen her t\u00fcrl\u00fc bile\u015fen i\u00e7in idealdir:<\/p>\n<ul>\n<li><strong>G\u00f6rsel Galeriler ve Carousel'ler:<\/strong> Sayfan\u0131n ortas\u0131nda veya alt k\u0131sm\u0131nda yer alan, kullan\u0131c\u0131 a\u015fa\u011f\u0131 kayd\u0131rd\u0131\u011f\u0131nda g\u00f6r\u00fcnen resim veya video galerileri.<\/li>\n<li><strong>\"Daha Fazla Y\u00fckle\" Butonlar\u0131:<\/strong> Bir liste veya feed'in sonunda bulunan, t\u0131klan\u0131nca daha fazla i\u00e7erik getiren butonlar.<\/li>\n<li><strong>Haritalar ve Grafikler:<\/strong> Google Maps widget'lar\u0131 veya interaktif veri grafikleri gibi yo\u011fun kaynak t\u00fcketen bile\u015fenler. Bu t\u00fcr bile\u015fenlerin sadece kullan\u0131c\u0131 bunlar\u0131 g\u00f6rmek istedi\u011finde y\u00fcklenmesi performans\u0131 b\u00fcy\u00fck \u00f6l\u00e7\u00fcde art\u0131r\u0131r.<\/li>\n<li><strong>Reklam Birimleri:<\/strong> \u00c7o\u011fu zaman sayfan\u0131n alt k\u0131sm\u0131nda veya i\u00e7eri\u011fin aras\u0131nda yer alan, belirli bir konumda g\u00f6r\u00fcn\u00fcr hale geldiklerinde aktifle\u015fen reklamlar.<\/li>\n<\/ul>\n<h3>Kod \u00d6rne\u011fi: \u00dcr\u00fcn Sayfas\u0131ndaki Yorumlar ve Derecelendirmeler<\/h3>\n<p>Bir \u00fcr\u00fcn sayfas\u0131nda, \u00fcr\u00fcn\u00fcn detaylar\u0131 ve g\u00f6rselleri \u00fcstte yer al\u0131rken, yorumlar ve derecelendirmeler b\u00f6l\u00fcm\u00fc sayfan\u0131n daha alt k\u0131sm\u0131nda bulunur. Kullan\u0131c\u0131lar\u0131n \u00e7o\u011fu \u00f6nce \u00fcr\u00fcn bilgilerini inceleyece\u011finden, yorum b\u00f6l\u00fcm\u00fcn\u00fcn hemen y\u00fcklenmesi gereksiz olabilir:<\/p>\n<pre><code>\n---\nimport ProductReviews from '..\/components\/ProductReviews.jsx';\n---\n\n<main>\n  <h1>\u00dcr\u00fcn Ad\u0131<\/h1>\n  <img decoding=\"async\" src=\"\/product-image.jpg\" alt=\"\u00dcr\u00fcn Resmi\" \/>\n  <p>\u00dcr\u00fcn a\u00e7\u0131klamas\u0131...<\/p>\n\n  <div class=\"product-specs\">\n    <h2>\u00d6zellikler<\/h2>\n    <ul>\n      <li>\u00d6zellik 1<\/li>\n      <li>\u00d6zellik 2<\/li>\n    <\/ul>\n  <\/div>\n\n  <ProductReviews client:visible \/>\n<\/main>\n    <\/pre>\n<p><\/code><\/p>\n<p>Bu senaryoda, <code>ProductReviews<\/code> bile\u015feni, kullan\u0131c\u0131 sayfay\u0131 a\u015fa\u011f\u0131 kayd\u0131r\u0131p yorumlar b\u00f6l\u00fcm\u00fc g\u00f6r\u00fcn\u00fcr hale geldi\u011finde hidrate edilir. Bu, ilk y\u00fckleme performans\u0131n\u0131 iyile\u015ftirir ve kullan\u0131c\u0131 yorumlara ilgi duydu\u011funda sorunsuz bir etkile\u015fim sa\u011flar.<\/p>\n<h3>Vaka Analizi: Haber Sitesindeki Video Oynat\u0131c\u0131<\/h3>\n<p>Bir haber sitesinde, makale i\u00e7eri\u011finin ortas\u0131nda veya sonunda bir video oynat\u0131c\u0131 bile\u015feni (\u00f6rne\u011fin YouTube embed veya \u00f6zel bir video player) bulunabilir. Video oynat\u0131c\u0131lar genellikle kendi JavaScript paketleriyle birlikte gelir ve \u00f6nemli miktarda kaynak t\u00fcketir. E\u011fer video oynat\u0131c\u0131 sayfan\u0131n alt k\u0131sm\u0131nda yer al\u0131yorsa ve kullan\u0131c\u0131 onu hemen g\u00f6rm\u00fcyorsa, <code>client:visible<\/code> y\u00f6nergesi kullanmak mant\u0131kl\u0131 olacakt\u0131r. Video oynat\u0131c\u0131, ancak kullan\u0131c\u0131 sayfay\u0131 kayd\u0131r\u0131p oynat\u0131c\u0131 g\u00f6r\u00fcn\u00fcr hale geldi\u011finde y\u00fcklenir ve etkile\u015fimli hale gelir. Bu, ilk sayfa y\u00fckleme s\u00fcresini h\u0131zland\u0131r\u0131r ve yaln\u0131zca ilgili i\u00e7eri\u011fe ula\u015fan kullan\u0131c\u0131lar i\u00e7in kaynak harcanmas\u0131n\u0131 sa\u011flar, b\u00f6ylece genel performans puanlar\u0131 artar.<\/p>\n<div class=\"expert-tip\">\n      Uzman \u0130pucu: <code>client:visible<\/code> y\u00f6nergesi, bir bile\u015fenin ne kadar \u00f6nceden veya ne kadar ge\u00e7 alg\u0131lanaca\u011f\u0131n\u0131 ayarlamak i\u00e7in <code>rootMargin<\/code> ve <code>threshold<\/code> gibi se\u00e7enekler sunan bir Intersection Observer API kullan\u0131r. Astro bunu dahili olarak y\u00f6netse de, bu mekanizmay\u0131 bilmek, \u00f6zel durumlar i\u00e7in stratejinizi geli\u015ftirmenize yard\u0131mc\u0131 olabilir.\n    <\/div>\n<p><code>client:visible<\/code>, performans\u0131 optimize etme konusunda en \u00e7ok kullan\u0131lan ve en etkili y\u00f6nergelerden biridir. Do\u011fru kullan\u0131ld\u0131\u011f\u0131nda, web sitenizin \u00e7ok daha h\u0131zl\u0131 hissettirmesini sa\u011flayabilir ve gereksiz JavaScript y\u00fcklemelerini ortadan kald\u0131rarak kaynak t\u00fcketimini azalt\u0131r.<\/p>\n<h2>Client:media: Duyarl\u0131 Bile\u015fenlerin Y\u00fcklenmesinde Medya Sorgular\u0131 Nas\u0131l Kullan\u0131l\u0131r?<\/h2>\n<p><code>client:media<\/code> y\u00f6nergesi, belirtilen bir CSS medya sorgusu ko\u015fulu kar\u015f\u0131land\u0131\u011f\u0131nda bir bile\u015feni hidrate eder. Bu, \u00f6zellikle farkl\u0131 ekran boyutlar\u0131 veya cihaz \u00f6zellikleri i\u00e7in farkl\u0131 etkile\u015fimli davran\u0131\u015flar veya bile\u015fenler sunman\u0131z gerekti\u011finde inan\u0131lmaz derecede kullan\u0131\u015fl\u0131d\u0131r. \u00d6rne\u011fin, mobil cihazlarda farkl\u0131 bir men\u00fc bile\u015feni, masa\u00fcst\u00fcnde farkl\u0131 bir bile\u015fen y\u00fcklemek isteyebilirsiniz.<\/p>\n<h3>Ne Zaman Kullan\u0131lmal\u0131?<\/h3>\n<p><code>client:media<\/code>, duyarl\u0131 tasar\u0131m yakla\u015f\u0131mlar\u0131n\u0131z\u0131 etkile\u015fimli bile\u015fenlerin y\u00fcklenmesiyle birle\u015ftirmek istedi\u011finizde tercih edilmelidir:<\/p>\n<ul>\n<li><strong>Mobil ve Masa\u00fcst\u00fc Men\u00fcleri:<\/strong> K\u00fc\u00e7\u00fck ekranlarda a\u00e7\u0131lan bir hamburger men\u00fc (<code>max-width: 768px<\/code>) ve b\u00fcy\u00fck ekranlarda sabit bir navigasyon \u00e7ubu\u011fu (<code>min-width: 769px<\/code>) gibi.<\/li>\n<li><strong>Cihaza \u00d6zel Bile\u015fenler:<\/strong> Dokunmatik ekranl\u0131 cihazlarda farkl\u0131 kayd\u0131rma mekanizmalar\u0131na sahip bir galeri bile\u015feni, dokunmatik olmayan cihazlarda ise fare odakl\u0131 bir galeri.<\/li>\n<li><strong>Farkl\u0131 Ekran Boyutlar\u0131 \u0130\u00e7in Widget'lar:<\/strong> Belirli bir ekran boyutunun alt\u0131nda veya \u00fcst\u00fcnde devreye girmesi gereken etkile\u015fimli haritalar veya grafikler.<\/li>\n<\/ul>\n<h3>Kod \u00d6rne\u011fi: Mobil ve Masa\u00fcst\u00fc Navigasyonu<\/h3>\n<p>Bir web sitesinde, mobil cihazlar i\u00e7in bir <code>MobileNav<\/code> (hamburger men\u00fc) ve masa\u00fcst\u00fc cihazlar i\u00e7in bir <code>DesktopNav<\/code> oldu\u011funu varsayal\u0131m:<\/p>\n<pre><code>\n---\nimport MobileNav from '..\/components\/MobileNav.jsx';\nimport DesktopNav from '..\/components\/DesktopNav.jsx';\n---\n\n<header>\n  <div class=\"desktop-only\">\n    <DesktopNav client:media=\"min-width: 769px\" \/>\n  <\/div>\n  <div class=\"mobile-only\">\n    <MobileNav client:media=\"max-width: 768px\" \/>\n  <\/div>\n<\/header>\n\n<main>\n  <h1>Ho\u015f Geldiniz<\/h1>\n  <p>Bu i\u00e7erik t\u00fcm cihazlarda ayn\u0131d\u0131r.<\/p>\n<\/main>\n\n<style>\n  .desktop-only {\n    display: none;\n  }\n  .mobile-only {\n    display: block;\n  }\n\n  @media (min-width: 769px) {\n    .desktop-only {\n      display: block;\n    }\n    .mobile-only {\n      display: none;\n    }\n  }\n<\/style>\n    <\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnekte, <code>DesktopNav<\/code> bile\u015feni yaln\u0131zca ekran geni\u015fli\u011fi 769px ve \u00fczeri oldu\u011funda hidrate edilirken, <code>MobileNav<\/code> bile\u015feni ekran geni\u015fli\u011fi 768px ve alt\u0131nda oldu\u011funda hidrate edilir. Bu sayede, kullan\u0131c\u0131 yaln\u0131zca kendi cihaz\u0131yla alakal\u0131 JavaScript kodunu y\u00fckler ve gereksiz kod indirme maliyetinden ka\u00e7\u0131n\u0131lm\u0131\u015f olur. CSS ile bile\u015fenlerin g\u00f6r\u00fcn\u00fcrl\u00fc\u011f\u00fcn\u00fc kontrol etmek (<code>display: none<\/code>) \u00f6nemlidir, b\u00f6ylece JavaScript y\u00fcklenmeden \u00f6nce bile\u015fenlerin do\u011fru \u015fekilde gizlendi\u011finden veya g\u00f6sterildi\u011finden emin olunur.<\/p>\n<h3>Vaka Analizi: Finans Uygulamas\u0131nda Detayl\u0131 Grafikler<\/h3>\n<p>Bir finans haber veya analiz uygulamas\u0131 d\u00fc\u015f\u00fcn\u00fcn. Masa\u00fcst\u00fc kullan\u0131c\u0131lar\u0131 i\u00e7in karma\u015f\u0131k, etkile\u015fimli, tam ekran grafikler sunulurken, mobil kullan\u0131c\u0131lar i\u00e7in basitle\u015ftirilmi\u015f, \u00f6zet ve daha az etkile\u015fimli grafikler yeterli olabilir. <code>DetailedInteractiveChart<\/code> bile\u015feni i\u00e7in <code>client:media=\"min-width: 1024px\"<\/code> kullan\u0131larak, bu grafik sadece yeterince geni\u015f bir ekrana sahip kullan\u0131c\u0131lar i\u00e7in y\u00fcklenir. Mobil kullan\u0131c\u0131lar i\u00e7in ise <code>SummaryChart<\/code> bile\u015feni statik HTML olarak g\u00f6nderilebilir veya <code>client:visible<\/code> ile tembel y\u00fcklenebilir. Bu strateji, \u00f6zellikle mobil a\u011flarda bant geni\u015fli\u011finden tasarruf etmeyi sa\u011flar ve kullan\u0131c\u0131ya en uygun deneyimi sunar, \u00e7\u00fcnk\u00fc gereksiz b\u00fcy\u00fck JavaScript k\u00fct\u00fcphaneleri mobil cihazlara indirilmez.<\/p>\n<p><code>client:media<\/code>, duyarl\u0131 ve performans odakl\u0131 web tasar\u0131m\u0131 i\u00e7in kritik bir y\u00f6nergedir. Do\u011fru kullan\u0131ld\u0131\u011f\u0131nda, farkl\u0131 cihazlara \u00f6zel olarak optimize edilmi\u015f deneyimler sunarken, gereksiz kaynaklar\u0131n indirilmesini ve i\u015flenmesini \u00f6nler.<\/p>\n<h2>Client:only: Yaln\u0131zca \u0130stemci Taraf\u0131nda Olu\u015fturulan Bile\u015fenler ve Vaka Analizleri<\/h2>\n<p><code>client:only<\/code> y\u00f6nergesi, di\u011fer y\u00f6nergelerden farkl\u0131 bir amaca hizmet eder. Bu y\u00f6nergeyi bir bile\u015fene ekledi\u011finizde, Astro bu bile\u015feni sunucu taraf\u0131nda hi\u00e7 olu\u015fturmaz (render etmez). Bunun yerine, bile\u015fenin JavaScript kodunu taray\u0131c\u0131ya g\u00f6nderir ve bile\u015fen tamamen istemci taraf\u0131nda hidrate edilerek olu\u015fturulur. Sunucu taraf\u0131ndan bo\u015f bir div veya bir placeholder g\u00f6nderilir ve ger\u00e7ek i\u00e7erik taray\u0131c\u0131da JavaScript ile olu\u015fturulur.<\/p>\n<h3>Ne Zaman Kullan\u0131lmal\u0131?<\/h3>\n<p><code>client:only<\/code>, \u00f6zellikle Astro'nun sunucu taraf\u0131 renderlama yetenekleriyle uyumlu olmayan veya sunucu taraf\u0131nda gerekli olmayan bile\u015fenler i\u00e7in kullan\u0131l\u0131r:<\/p>\n<ul>\n<li><strong>Tamamen \u0130stemci Taraf\u0131 Uygulamalar (SPAs):<\/strong> Baz\u0131 durumlarda, Astro sayfas\u0131na entegre edilmi\u015f k\u00fc\u00e7\u00fck bir React veya Vue SPA's\u0131n\u0131 bar\u0131nd\u0131rmak isteyebilirsiniz. Bu t\u00fcr uygulamalar\u0131n sunucu taraf\u0131nda render edilmesinin bir anlam\u0131 yoktur ve <code>client:only<\/code> ile do\u011frudan taray\u0131c\u0131da ba\u015flat\u0131labilirler.<\/li>\n<li><strong>Taray\u0131c\u0131 API'leri Kullan\u0131lan Bile\u015fenler:<\/strong> <code>window<\/code>, <code>localStorage<\/code>, <code>navigator<\/code> gibi taray\u0131c\u0131ya \u00f6zg\u00fc API'leri yo\u011fun bir \u015fekilde kullanan bile\u015fenler. Sunucu ortam\u0131nda bu API'ler bulunmad\u0131\u011f\u0131 i\u00e7in sunucu taraf\u0131nda render edilmeleri hata verecektir. \u00d6rne\u011fin, kullan\u0131c\u0131n\u0131n konumunu (Geolocation API) kullanan bir harita bile\u015feni.<\/li>\n<li><strong>A\/B Testi Bile\u015fenleri:<\/strong> Belirli bir JavaScript k\u00fct\u00fcphanesi veya platformuyla tamamen istemci taraf\u0131nda y\u00f6netilen A\/B testleri i\u00e7in kullan\u0131lan bile\u015fenler.<\/li>\n<li><strong>Etkile\u015fim Yo\u011fun ve Karma\u015f\u0131k Uygulamalar:<\/strong> Online edit\u00f6rler, oyunlar veya ger\u00e7ek zamanl\u0131 sohbet uygulamalar\u0131 gibi, neredeyse tamamen istemci taraf\u0131 JavaScript'e dayanan uygulamalar\u0131n Astro'ya entegre edilmesi.<\/li>\n<\/ul>\n<h3>Kod \u00d6rne\u011fi: Taray\u0131c\u0131 Konumunu Kullanan Bir Bile\u015fen<\/h3>\n<p>Kullan\u0131c\u0131n\u0131n mevcut konumunu g\u00f6steren bir <code>GeolocationMap<\/code> bile\u015feniniz oldu\u011funu varsayal\u0131m. Bu bile\u015fen, taray\u0131c\u0131n\u0131n Geolocation API'sine eri\u015fmek zorunda oldu\u011fu i\u00e7in sunucuda render edilemez:<\/p>\n<pre><code>\n---\nimport GeolocationMap from '..\/components\/GeolocationMap.jsx';\n---\n\n<main>\n  <h1>Yak\u0131n\u0131n\u0131zdaki Mekanlar<\/h1>\n  <p>Konumunuzu kullanarak size \u00f6zel \u00f6neriler sunuyoruz.<\/p>\n  <GeolocationMap client:only=\"react\" \/> \n  {\/* client:only=\"framework-ad\u0131\" \u015feklinde de kullan\u0131labilir, Astro'ya hangi framework'\u00fc kullanaca\u011f\u0131n\u0131 belirtir *\/}\n<\/main>\n    <\/pre>\n<p><\/code><\/p>\n<p>Burada, <code>GeolocationMap<\/code> bile\u015feni sunucuda olu\u015fturulmaz. Astro, bu bile\u015fenin yerini tutacak bo\u015f bir div g\u00f6nderir ve taray\u0131c\u0131da JavaScript y\u00fcklendi\u011finde, bile\u015fen tamamen istemci taraf\u0131nda olu\u015fturulur ve Geolocation API'sini kullanarak kullan\u0131c\u0131n\u0131n konumunu al\u0131r. <code>client:only=\"react\"<\/code> kullan\u0131m\u0131, e\u011fer Astro birden fazla UI framework'\u00fc kullan\u0131yorsa, hangi framework'\u00fcn bu bile\u015feni hidrate edece\u011fini a\u00e7\u0131k\u00e7a belirtir.<\/p>\n<h3>Vaka Analizi: Ger\u00e7ek Zamanl\u0131 Sohbet Penceresi<\/h3>\n<p>Bir web sitesinin sa\u011f alt k\u00f6\u015fesinde s\u00fcrekli aktif olan bir ger\u00e7ek zamanl\u0131 sohbet penceresi (\u00f6rne\u011fin bir m\u00fc\u015fteri destek chat botu) d\u00fc\u015f\u00fcn\u00fcn. Bu t\u00fcr bir bile\u015fen, s\u00fcrekli olarak websocket ba\u011flant\u0131lar\u0131n\u0131 y\u00f6netir, kullan\u0131c\u0131 giri\u015flerini dinler ve dinamik olarak mesajlar\u0131 g\u00f6sterir. Sunucu taraf\u0131nda render edilmesinin bir faydas\u0131 yoktur ve hatta karma\u015f\u0131k olabilir. Bu senaryoda, <code>ChatWidget<\/code> bile\u015fenine <code>client:only<\/code> y\u00f6nergesi eklemek en do\u011fru yakla\u015f\u0131md\u0131r. Astro, sunucudan yaln\u0131zca widget i\u00e7in bir placeholder HTML g\u00f6nderir ve widget'\u0131n t\u00fcm karma\u015f\u0131k JavaScript'i taray\u0131c\u0131da y\u00fcklenir ve \u00e7al\u0131\u015ft\u0131r\u0131l\u0131r. Bu, sunucu kaynaklar\u0131n\u0131 korurken, kullan\u0131c\u0131ya an\u0131nda ve tam i\u015flevsel bir sohbet deneyimi sunar.<\/p>\n<p><code>client:only<\/code> kullan\u0131rken, ilk sayfa y\u00fcklemesinde bile\u015fenin i\u00e7eri\u011finin bo\u015f olaca\u011f\u0131n\u0131 ve JavaScript y\u00fcklendi\u011finde g\u00f6r\u00fcnece\u011fini unutmamak \u00f6nemlidir. Bu, potansiyel olarak i\u00e7eri\u011fin kaymas\u0131na (layout shift) neden olabilir. Bu durumu y\u00f6netmek i\u00e7in, bile\u015fen yerine bir y\u00fckleme g\u00f6stergesi veya boyutland\u0131r\u0131lm\u0131\u015f bir placeholder kullanmak iyi bir stratejidir.<\/p>\n<pre><code>\n<div style=\"height: 300px; background-color: #f0f0f0; display: flex; align-items: center; justify-content: center;\">\n  Y\u00fckleniyor...\n  <GeolocationMap client:only=\"react\" \/>\n<\/div>\n    <\/pre>\n<p><\/code><\/p>\n<p>Bu \u015fekilde, <code>GeolocationMap<\/code> y\u00fcklenene kadar kullan\u0131c\u0131ya g\u00f6rsel bir alan sa\u011flanm\u0131\u015f olur.<\/p>\n<h2>Geli\u015fmi\u015f \u0130pu\u00e7lar\u0131 ve En \u0130yi Uygulamalar: Mobil Uyumlu Yakla\u015f\u0131mlar<\/h2>\n<p>Astro'nun istemci y\u00f6nergelerini etkin bir \u015fekilde kullanmak, sadece hangi y\u00f6nergeyi ne zaman kullanaca\u011f\u0131n\u0131z\u0131 bilmekten daha fazlas\u0131d\u0131r. Performans\u0131 maksimize etmek ve m\u00fckemmel bir kullan\u0131c\u0131 deneyimi sunmak i\u00e7in baz\u0131 geli\u015fmi\u015f teknikler ve en iyi uygulamalar\u0131 benimsemek \u00f6nemlidir. \u00d6zellikle mobil uyumluluk ve Lighthouse puanlar\u0131n\u0131 art\u0131rma hedefleri do\u011frultusunda bu ipu\u00e7lar\u0131 kritik rol oynar.<\/p>\n<h3>1. En K\u00fc\u00e7\u00fck Ortak Payda JavaScript<\/h3>\n<p>Her etkile\u015fimli bile\u015feninizin kendi JavaScript paketini beraberinde getirdi\u011fini unutmay\u0131n. B\u00fcy\u00fck ve karma\u015f\u0131k bile\u015fenler yerine, daha k\u00fc\u00e7\u00fck, tek sorumluluklu bile\u015fenlere ay\u0131rmak ve bunlar\u0131 ayr\u0131 ayr\u0131 hidrate etmek, genellikle daha verimlidir. \u00d6rne\u011fin, bir \"carousel\" bile\u015feni i\u00e7indeki \"ileri\/geri butonlar\u0131\" ve \"sayfa g\u00f6stergesi\" ayr\u0131 ayr\u0131 daha hafif bile\u015fenler olabilir ve farkl\u0131 y\u00f6nergelerle y\u00fcklenebilir.<\/p>\n<h3>2. Yer Tutucular ve Y\u00fckleme Durumlar\u0131<\/h3>\n<p><code>client:visible<\/code> veya <code>client:only<\/code> gibi y\u00f6nergelerle tembel y\u00fcklenen bile\u015fenler i\u00e7in, kullan\u0131c\u0131ya bir y\u00fckleme durumu g\u00f6stermek veya bir yer tutucu (placeholder) sa\u011flamak \u00f6nemlidir. Bu, i\u00e7eri\u011fin kaymas\u0131n\u0131 (Cumulative Layout Shift - CLS) \u00f6nler ve kullan\u0131c\u0131ya sayfan\u0131n hala y\u00fcklendi\u011fini bildirir.<\/p>\n<pre><code>\n<div class=\"product-reviews-placeholder\" style=\"min-height: 200px; background-color: #f7f7f7; display: flex; align-items: center; justify-content: center; color: #555;\">\n  <p>Yorumlar y\u00fckleniyor...<\/p>\n<\/div>\n<ProductReviews client:visible \/>\n\n<style>\n  \/* Bile\u015fen y\u00fcklendi\u011finde placeholder'\u0131 gizle *\/\n  astro-slot[name=\"ProductReviews[client:visible]\"] {\n    display: none; \/* veya ba\u015fka bir gizleme mekanizmas\u0131 *\/\n  }\n  .product-reviews-placeholder:has(+ astro-slot[name=\"ProductReviews[client:visible]\"][data-is-ready=\"true\"]) {\n    display: none;\n  }\n  \/* Not: Astro'nun hidrasyon durumunu dinlemek i\u00e7in daha geli\u015fmi\u015f JS gerekebilir. \n     Yukar\u0131daki CSS, Astro'nun dahili mekanizmalar\u0131na ba\u011fl\u0131 olarak \u00e7al\u0131\u015fmayabilir, \n     ancak mant\u0131\u011f\u0131 temsil eder. *\/\n<\/style>\n    <\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnekte, <code>ProductReviews<\/code> y\u00fcklene kadar bir placeholder g\u00f6r\u00fcn\u00fcr. Ger\u00e7ek uygulamada, placeholder'\u0131 JavaScript ile kontrol etmek daha g\u00fcvenilir olabilir.<\/p>\n<h3>3. Medya Sorgular\u0131yla Mobil Uyumlu CSS ve JS Optimizasyonu<\/h3>\n<p><code>client:media<\/code> y\u00f6nergesi, mobil uyumluluk i\u00e7in harikad\u0131r. Ancak bu y\u00f6nergeyi kullan\u0131rken, ilgili CSS'in de do\u011fru bir \u015fekilde uyguland\u0131\u011f\u0131ndan emin olun. Mobil cihazlarda, daha k\u00fc\u00e7\u00fck resim boyutlar\u0131, daha az karma\u015f\u0131k animasyonlar ve daha az JavaScript y\u00fcklemesi kritik \u00f6neme sahiptir.<\/p>\n<p>Mobil uyumlu tasar\u0131mlar i\u00e7in CSS medya sorgular\u0131 kullanmak, Astro'nun client directives'lar\u0131 ile m\u00fckemmel bir uyum i\u00e7indedir. \u00d6rne\u011fin, belirli bir bile\u015fen sadece mobil g\u00f6r\u00fcn\u00fcmde aktif olacaksa, bu bile\u015feni saran div'i de CSS ile kontrol edebilirsiniz:<\/p>\n<pre><code>\n<style>\n  .mobile-component-wrapper {\n    display: none; \/* Varsay\u0131lan olarak gizle *\/\n  }\n\n  @media (max-width: 768px) {\n    .mobile-component-wrapper {\n      display: block; \/* Mobil cihazlarda g\u00f6ster *\/\n    }\n  }\n<\/style>\n\n<div class=\"mobile-component-wrapper\">\n  <MobileSpecificFeature client:media=\"max-width: 768px\" \/>\n<\/div>\n    <\/pre>\n<p><\/code><\/p>\n<p>Bu yakla\u015f\u0131m, JavaScript y\u00fcklenmeden \u00f6nce bile\u015fen alan\u0131n\u0131n do\u011fru \u015fekilde g\u00f6r\u00fcnt\u00fclenmesini sa\u011flar ve gereksiz bile\u015fenlerin CSS'ini ve HTML'ini de mobil cihazlara g\u00f6ndermekten ka\u00e7\u0131n\u0131r.<\/p>\n<h3>4. lighthouse ve Performans \u0130zleme<\/h3>\n<p>Y\u00f6nergelerin do\u011fru kullan\u0131ld\u0131\u011f\u0131ndan emin olmak i\u00e7in d\u00fczenli olarak Lighthouse gibi ara\u00e7larla sitenizin performans\u0131n\u0131 test edin. \u00d6zellikle mobil cihazlarda Lighthouse puanlar\u0131na dikkat edin. \u0130lk Anlaml\u0131 Boyama (FCP), Etkile\u015fime Ge\u00e7i\u015f S\u00fcresi (TTI) ve D\u00fczen Kayd\u0131rma (CLS) gibi metrikler, istemci y\u00f6nergelerinin etkinli\u011fini do\u011frudan yans\u0131t\u0131r. Gereksiz yere <code>client:load<\/code> kullanmak TTI'yi art\u0131rabilirken, <code>client:visible<\/code> CLS'yi etkileyebilir e\u011fer yer tutucu kullan\u0131lmazsa.<\/p>\n<h3>5. Preload ve Prefetch Kullan\u0131m\u0131<\/h3>\n<p>Astro, bile\u015fenlerin JavaScript'ini otomatik olarak optimize etse de, baz\u0131 durumlarda kritik olmayan bile\u015fenlerin JavaScript'ini kullan\u0131c\u0131 sayfa i\u00e7inde gezindik\u00e7e \u00f6nceden y\u00fcklemek (prefetch) veya \u00f6ny\u00fcklemek (preload) isteyebilirsiniz. Astro, <code>client:visible<\/code> gibi y\u00f6nergelerde Intersection Observer ile bu optimizasyonu yapar. Daha geli\u015fmi\u015f senaryolarda, belirli bir ba\u011flant\u0131n\u0131n \u00fczerine gelindi\u011finde (hover) ek JavaScript y\u00fcklemesini tetiklemek gibi \u00f6zel stratejiler d\u00fc\u015f\u00fcnebilirsiniz. Ancak genellikle Astro'nun varsay\u0131lan davran\u0131\u015flar\u0131 yeterlidir.<\/p>\n<pre><code>\n    <link rel=\"prefetch\" href=\"\/_astro\/my-lazy-component.js\">\n    <\/pre>\n<p><\/code><\/p>\n<p>Bu, taray\u0131c\u0131ya gelecekte ihtiya\u00e7 duyulabilecek bir kayna\u011f\u0131 \u00f6nceden indirmesini s\u00f6yleyen bir ipucudur, ancak taray\u0131c\u0131 bunun ne zaman ve nas\u0131l yap\u0131laca\u011f\u0131na kendi karar verir. Astro'nun built-in y\u00f6nergeleri genellikle daha ak\u0131ll\u0131ca bir prefetching yapar.<\/p>\n<p>Bu geli\u015fmi\u015f ipu\u00e7lar\u0131n\u0131 ve en iyi uygulamalar\u0131 benimseyerek, Astro projelerinizde hem performans\u0131 hem de kullan\u0131c\u0131 deneyimini en \u00fcst d\u00fczeye \u00e7\u0131karabilirsiniz. Client directives, Astro'nun sundu\u011fu g\u00fcc\u00fcn \u00f6nemli bir par\u00e7as\u0131d\u0131r ve do\u011fru kullan\u0131ld\u0131\u011f\u0131nda web sitelerinizi rakiplerinizden ay\u0131rabilir.<\/p>\n<h2>Sonu\u00e7: Astro Client Directives ile Gelece\u011fin Webini \u0130n\u015fa Etmek<\/h2>\n<p>Astro'nun Client Directives (\u0130stemci Y\u00f6nergeleri), modern web geli\u015ftirme yakla\u015f\u0131m\u0131nda devrim niteli\u011finde bir ara\u00e7 setidir. Geleneksel web sitelerinin kar\u015f\u0131la\u015ft\u0131\u011f\u0131 en b\u00fcy\u00fck performans sorunlar\u0131ndan biri olan a\u015f\u0131r\u0131 JavaScript y\u00fcklemesini, Astro'nun \"Ada Mimarisi\" ve ak\u0131ll\u0131 hidrasyon stratejileri ile etkili bir \u015fekilde \u00e7\u00f6zer. <code>client:load<\/code>, <code>client:idle<\/code>, <code>client:visible<\/code>, <code>client:media<\/code> ve <code>client:only<\/code> gibi y\u00f6nergeler sayesinde, bir bile\u015fenin JavaScript kodunun ne zaman ve nerede \u00e7al\u0131\u015ft\u0131r\u0131laca\u011f\u0131n\u0131 hassas bir \u015fekilde kontrol edebilir, b\u00f6ylece sadece ger\u00e7ekten ihtiya\u00e7 duyulan anlarda etkile\u015fim sa\u011flayabilirsiniz.<\/p>\n<p>Bu makale boyunca ele ald\u0131\u011f\u0131m\u0131z her bir y\u00f6nerge, farkl\u0131 senaryolar ve performans hedefleri i\u00e7in \u00f6zel olarak tasarlanm\u0131\u015ft\u0131r. Kritik ve an\u0131nda etkile\u015fim gerektiren durumlar i\u00e7in <code>client:load<\/code>, sayfa y\u00fcklendikten sonra bo\u015fta kalan anlar i\u00e7in <code>client:idle<\/code>, kullan\u0131c\u0131n\u0131n g\u00f6r\u00fc\u015f alan\u0131na girdi\u011finde y\u00fckleme i\u00e7in <code>client:visible<\/code>, belirli ekran boyutlar\u0131 i\u00e7in <code>client:media<\/code> ve yaln\u0131zca istemci taraf\u0131nda \u00e7al\u0131\u015fmas\u0131 gereken uygulamalar i\u00e7in <code>client:only<\/code>. Bu ara\u00e7lar\u0131 do\u011fru bir \u015fekilde kullanarak, hem geli\u015ftirici deneyimini iyile\u015ftirebilir hem de son kullan\u0131c\u0131lara y\u0131ld\u0131r\u0131m h\u0131z\u0131nda, p\u00fcr\u00fczs\u00fcz ve etkile\u015fimli bir web deneyimi sunabilirsiniz.<\/p>\n<p>Unutulmamal\u0131d\u0131r ki, Astro'nun g\u00fcc\u00fc, size bu esnekli\u011fi sunarken, geli\u015ftirici olarak bilin\u00e7li kararlar vermenizi bekler. Her zaman en az JavaScript'i y\u00fckleme prensibine sad\u0131k kalmak, yer tutucular kullanarak d\u00fczen kaymalar\u0131n\u0131 \u00f6nlemek ve performans metriklerini d\u00fczenli olarak izlemek, ba\u015far\u0131ya ula\u015fman\u0131n anahtar\u0131d\u0131r. Astro ile gelece\u011fin webini in\u015fa ederken, bu client directives'lar\u0131 performans\u0131 art\u0131ran g\u00fc\u00e7l\u00fc m\u00fcttefikleriniz olacakt\u0131r. Web sitelerinizi daha h\u0131zl\u0131, daha eri\u015filebilir ve daha keyifli hale getirmek i\u00e7in bu stratejileri projelerinize entegre etmeye ba\u015flay\u0131n!<\/p>\n<h2>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h2>\n<h3>1. Astro Client Directives kullanmak, SEO'yu nas\u0131l etkiler?<\/h3>\n<p>Astro Client Directives kullanmak, SEO'yu olumlu y\u00f6nde etkiler. \u00c7\u00fcnk\u00fc sitenizin y\u00fckleme h\u0131z\u0131n\u0131, etkile\u015fime ge\u00e7i\u015f s\u00fcresini (Time to Interactive - TTI) ve genel Core Web Vitals puanlar\u0131n\u0131 iyile\u015ftirir. Google gibi arama motorlar\u0131, h\u0131zl\u0131 y\u00fcklenen ve iyi performans g\u00f6steren siteleri tercih eder. Y\u00f6nergeler sayesinde, sayfan\u0131n ana i\u00e7eri\u011fi genellikle statik HTML olarak sunuldu\u011fu i\u00e7in arama motoru taray\u0131c\u0131lar\u0131 i\u00e7eri\u011fi daha kolay ve h\u0131zl\u0131 bir \u015fekilde indeksleyebilir. Yava\u015f y\u00fcklenen veya d\u00fczen kaymalar\u0131 ya\u015fayan JavaScript tabanl\u0131 siteler, SEO a\u00e7\u0131s\u0131ndan dezavantajl\u0131 olabilir.<\/p>\n<h3>2. Bir bile\u015fen i\u00e7in birden fazla Client Directive kullanabilir miyim?<\/h3>\n<p>Hay\u0131r, Astro'da bir bile\u015fen i\u00e7in yaln\u0131zca bir Client Directive kullanabilirsiniz. Her directive, bile\u015fenin hidrasyon davran\u0131\u015f\u0131n\u0131 tan\u0131mlayan benzersiz bir kural k\u00fcmesidir. Birden fazla directive kullanmaya \u00e7al\u0131\u015f\u0131rsan\u0131z, Astro bir hata verecektir. Ancak, farkl\u0131 ko\u015fullara g\u00f6re farkl\u0131 bile\u015fenler y\u00fcklemek i\u00e7in Astro'nun \u015fablonlama yeteneklerini (\u00f6rne\u011fin ko\u015fullu renderlama) ve <code>client:media<\/code> gibi y\u00f6nergeleri birle\u015ftirebilirsiniz.<\/p>\n<h3>3. Client Directives kullanmak performans\u0131 her zaman iyile\u015ftirir mi?<\/h3>\n<p>Genel olarak evet, Client Directives kullanmak performans\u0131 iyile\u015ftirir, \u00e7\u00fcnk\u00fc gereksiz JavaScript y\u00fcklemesini ve y\u00fcr\u00fctmesini geciktirir veya tamamen \u00f6nler. Ancak, <code>client:load<\/code> gibi y\u00f6nergeleri gereksiz yere kritik olmayan bile\u015fenlerde kullanmak, hala sayfa y\u00fckleme s\u00fcresini art\u0131rabilir. \u00d6nemli olan, her bile\u015fen i\u00e7in en uygun y\u00f6nergeyi se\u00e7mek ve m\u00fcmk\u00fcn oldu\u011funca az JavaScript'i taray\u0131c\u0131ya g\u00f6ndermek prensibine sad\u0131k kalmakt\u0131r. A\u015f\u0131r\u0131 veya yanl\u0131\u015f kullan\u0131m, beklenenin aksine performans\u0131 d\u00fc\u015f\u00fcrebilir.<\/p>\n<h3>4. Custom Client Directives olu\u015fturmak m\u00fcmk\u00fcn m\u00fcd\u00fcr?<\/h3>\n<p>Evet, Astro'da kendi \u00f6zel istemci y\u00f6nergelerinizi olu\u015fturmak m\u00fcmk\u00fcnd\u00fcr. Bu, Astro'nun esnekli\u011fini g\u00f6steren ileri d\u00fczey bir \u00f6zelliktir. Kendi y\u00f6nergenizi tan\u0131mlayarak, mevcut yerle\u015fik y\u00f6nergelerin kapsamad\u0131\u011f\u0131 belirli bir hidrasyon mant\u0131\u011f\u0131n\u0131 uygulayabilirsiniz. \u00d6rne\u011fin, kullan\u0131c\u0131n\u0131n belirli bir scroll pozisyonuna ula\u015ft\u0131\u011f\u0131nda veya belirli bir s\u00fcre sonra etkile\u015fime girdi\u011finde y\u00fcklenen bir bile\u015fen i\u00e7in \u00f6zel bir y\u00f6nerge yazabilirsiniz. Bu, genellikle Astro'nun entegrasyon API'leri kullan\u0131larak yap\u0131l\u0131r ve daha derinlemesine framework bilgisi gerektirir.<\/p>\n<h3>5. Astro Client Directives, Next.js veya Nuxt.js gibi di\u011fer framework'lerdeki yakla\u015f\u0131mlardan fark\u0131 nedir?<\/h3>\n<p>Astro Client Directives, Next.js (SSR\/SSG ve istemci taraf\u0131 hidrasyon) veya Nuxt.js (Universal\/SPA) gibi geleneksel React\/Vue tabanl\u0131 framework'lerden k\u00f6kl\u00fc bir \u015fekilde farkl\u0131d\u0131r. Bu framework'ler genellikle \"hidratlanm\u0131\u015f\" SPA'lar olu\u015ftururken, Astro varsay\u0131lan olarak \"s\u0131f\u0131r JavaScript\" yakla\u015f\u0131m\u0131n\u0131 benimser ve sayfan\u0131n tamam\u0131n\u0131 hidrate etmek yerine yaln\u0131zca etkile\u015fime ihtiya\u00e7 duyan bile\u015fenleri (adalar\u0131) hidrate eder. Bu, Astro'nun ilk y\u00fckleme performans\u0131nda belirgin bir avantaj sa\u011flamas\u0131n\u0131 ve gereksiz JavaScript'i taray\u0131c\u0131ya g\u00f6ndermemesini m\u00fcmk\u00fcn k\u0131lar. Di\u011fer framework'lerde genellikle t\u00fcm sayfay\u0131 veya b\u00fcy\u00fck bir b\u00f6l\u00fcm\u00fcn\u00fc hidrate eden daha kapsaml\u0131 bir JavaScript paketi y\u00fcklenirken, Astro daha gran\u00fcler kontrol sunar.<\/p>\n<p><\/body><br \/>\n<\/html><\/p>\n","protected":false},"excerpt":{"rendered":"Modern web geli\u015ftirme d\u00fcnyas\u0131nda, h\u0131zl\u0131 y\u00fcklenen ve etkile\u015fimli kullan\u0131c\u0131 deneyimleri sunan web siteleri olu\u015fturmak, hem geli\u015ftiriciler hem de&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-32961","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Astro Client Directives: Performans\u0131 Art\u0131ran Stratejiler<\/title>\n<meta name=\"description\" content=\"Modern web geli\u015ftirme d\u00fcnyas\u0131nda, h\u0131zl\u0131 y\u00fcklenen ve etkile\u015fimli kullan\u0131c\u0131 deneyimleri sunan web siteleri olu\u015fturmak, hem geli\u015ftiriciler hem de kullan\u0131c\u0131lar i\u00e7in birincil \u00f6nceliktir. Ancak, istemci taraf\u0131 JavaScript&#039;in a\u015f\u0131r\u0131 kullan\u0131m\u0131, genellikle bu hedeflere ula\u015fmada \u00f6nemli bir engel te\u015fkil eder. Peki, web sitenizin performans\u0131n\u0131 d\u00fc\u015f\u00fcrmeden, zengin etkile\u015fimler sunan bile\u015fenleri nas\u0131l entegre edebilirsiniz? \u0130\u015fte tam bu noktada Astro&#039;nun Client Directives (\u0130stemci Y\u00f6nergeleri) devreye giriyor. Bu kapsaml\u0131 makalede, Astro&#039;nun Client Directives&#039;lar\u0131n\u0131n ne oldu\u011funu, hangi durumlarda hangi y\u00f6nergeyi kullanman\u0131z gerekti\u011fini ve sitenizin performans\u0131n\u0131 nas\u0131l maksimize edebilece\u011finizi ad\u0131m ad\u0131m inceleyece\u011fiz. Hadi, Astro ile web sitelerinizi daha h\u0131zl\u0131 ve etkile\u015fimli hale getirme yolculu\u011funa \u00e7\u0131kal\u0131m!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/astro-client-directives-performansi-artiran-stratejiler\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Astro Client Directives: Performans\u0131 Art\u0131ran Stratejiler\" \/>\n<meta property=\"og:description\" content=\"Modern web geli\u015ftirme d\u00fcnyas\u0131nda, h\u0131zl\u0131 y\u00fcklenen ve etkile\u015fimli kullan\u0131c\u0131 deneyimleri sunan web siteleri olu\u015fturmak, hem geli\u015ftiriciler hem de kullan\u0131c\u0131lar i\u00e7in birincil \u00f6nceliktir. Ancak, istemci taraf\u0131 JavaScript&#039;in a\u015f\u0131r\u0131 kullan\u0131m\u0131, genellikle bu hedeflere ula\u015fmada \u00f6nemli bir engel te\u015fkil eder. Peki, web sitenizin performans\u0131n\u0131 d\u00fc\u015f\u00fcrmeden, zengin etkile\u015fimler sunan bile\u015fenleri nas\u0131l entegre edebilirsiniz? \u0130\u015fte tam bu noktada Astro&#039;nun Client Directives (\u0130stemci Y\u00f6nergeleri) devreye giriyor. Bu kapsaml\u0131 makalede, Astro&#039;nun Client Directives&#039;lar\u0131n\u0131n ne oldu\u011funu, hangi durumlarda hangi y\u00f6nergeyi kullanman\u0131z gerekti\u011fini ve sitenizin performans\u0131n\u0131 nas\u0131l maksimize edebilece\u011finizi ad\u0131m ad\u0131m inceleyece\u011fiz. Hadi, Astro ile web sitelerinizi daha h\u0131zl\u0131 ve etkile\u015fimli hale getirme yolculu\u011funa \u00e7\u0131kal\u0131m!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/astro-client-directives-performansi-artiran-stratejiler\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-27T19:31:34+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"25 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/astro-client-directives-performansi-artiran-stratejiler\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/astro-client-directives-performansi-artiran-stratejiler\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Astro Client Directives: Performans\u0131 Art\u0131ran Stratejiler\",\"datePublished\":\"2025-10-27T19:31:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/astro-client-directives-performansi-artiran-stratejiler\/\"},\"wordCount\":4784,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/astro-client-directives-performansi-artiran-stratejiler\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/astro-client-directives-performansi-artiran-stratejiler\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/astro-client-directives-performansi-artiran-stratejiler\/\",\"name\":\"Astro Client Directives: Performans\u0131 Art\u0131ran Stratejiler\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-27T19:31:34+00:00\",\"description\":\"Modern web geli\u015ftirme d\u00fcnyas\u0131nda, h\u0131zl\u0131 y\u00fcklenen ve etkile\u015fimli kullan\u0131c\u0131 deneyimleri sunan web siteleri olu\u015fturmak, hem geli\u015ftiriciler hem de kullan\u0131c\u0131lar i\u00e7in birincil \u00f6nceliktir. Ancak, istemci taraf\u0131 JavaScript'in a\u015f\u0131r\u0131 kullan\u0131m\u0131, genellikle bu hedeflere ula\u015fmada \u00f6nemli bir engel te\u015fkil eder. Peki, web sitenizin performans\u0131n\u0131 d\u00fc\u015f\u00fcrmeden, zengin etkile\u015fimler sunan bile\u015fenleri nas\u0131l entegre edebilirsiniz? \u0130\u015fte tam bu noktada Astro'nun Client Directives (\u0130stemci Y\u00f6nergeleri) devreye giriyor. Bu kapsaml\u0131 makalede, Astro'nun Client Directives'lar\u0131n\u0131n ne oldu\u011funu, hangi durumlarda hangi y\u00f6nergeyi kullanman\u0131z gerekti\u011fini ve sitenizin performans\u0131n\u0131 nas\u0131l maksimize edebilece\u011finizi ad\u0131m ad\u0131m inceleyece\u011fiz. Hadi, Astro ile web sitelerinizi daha h\u0131zl\u0131 ve etkile\u015fimli hale getirme yolculu\u011funa \u00e7\u0131kal\u0131m!\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/astro-client-directives-performansi-artiran-stratejiler\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/astro-client-directives-performansi-artiran-stratejiler\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/astro-client-directives-performansi-artiran-stratejiler\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Astro Client Directives: Performans\u0131 Art\u0131ran Stratejiler\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Astro Client Directives: Performans\u0131 Art\u0131ran Stratejiler","description":"Modern web geli\u015ftirme d\u00fcnyas\u0131nda, h\u0131zl\u0131 y\u00fcklenen ve etkile\u015fimli kullan\u0131c\u0131 deneyimleri sunan web siteleri olu\u015fturmak, hem geli\u015ftiriciler hem de kullan\u0131c\u0131lar i\u00e7in birincil \u00f6nceliktir. Ancak, istemci taraf\u0131 JavaScript'in a\u015f\u0131r\u0131 kullan\u0131m\u0131, genellikle bu hedeflere ula\u015fmada \u00f6nemli bir engel te\u015fkil eder. Peki, web sitenizin performans\u0131n\u0131 d\u00fc\u015f\u00fcrmeden, zengin etkile\u015fimler sunan bile\u015fenleri nas\u0131l entegre edebilirsiniz? \u0130\u015fte tam bu noktada Astro'nun Client Directives (\u0130stemci Y\u00f6nergeleri) devreye giriyor. Bu kapsaml\u0131 makalede, Astro'nun Client Directives'lar\u0131n\u0131n ne oldu\u011funu, hangi durumlarda hangi y\u00f6nergeyi kullanman\u0131z gerekti\u011fini ve sitenizin performans\u0131n\u0131 nas\u0131l maksimize edebilece\u011finizi ad\u0131m ad\u0131m inceleyece\u011fiz. Hadi, Astro ile web sitelerinizi daha h\u0131zl\u0131 ve etkile\u015fimli hale getirme yolculu\u011funa \u00e7\u0131kal\u0131m!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/astro-client-directives-performansi-artiran-stratejiler\/","og_locale":"tr_TR","og_type":"article","og_title":"Astro Client Directives: Performans\u0131 Art\u0131ran Stratejiler","og_description":"Modern web geli\u015ftirme d\u00fcnyas\u0131nda, h\u0131zl\u0131 y\u00fcklenen ve etkile\u015fimli kullan\u0131c\u0131 deneyimleri sunan web siteleri olu\u015fturmak, hem geli\u015ftiriciler hem de kullan\u0131c\u0131lar i\u00e7in birincil \u00f6nceliktir. Ancak, istemci taraf\u0131 JavaScript'in a\u015f\u0131r\u0131 kullan\u0131m\u0131, genellikle bu hedeflere ula\u015fmada \u00f6nemli bir engel te\u015fkil eder. Peki, web sitenizin performans\u0131n\u0131 d\u00fc\u015f\u00fcrmeden, zengin etkile\u015fimler sunan bile\u015fenleri nas\u0131l entegre edebilirsiniz? \u0130\u015fte tam bu noktada Astro'nun Client Directives (\u0130stemci Y\u00f6nergeleri) devreye giriyor. Bu kapsaml\u0131 makalede, Astro'nun Client Directives'lar\u0131n\u0131n ne oldu\u011funu, hangi durumlarda hangi y\u00f6nergeyi kullanman\u0131z gerekti\u011fini ve sitenizin performans\u0131n\u0131 nas\u0131l maksimize edebilece\u011finizi ad\u0131m ad\u0131m inceleyece\u011fiz. Hadi, Astro ile web sitelerinizi daha h\u0131zl\u0131 ve etkile\u015fimli hale getirme yolculu\u011funa \u00e7\u0131kal\u0131m!","og_url":"https:\/\/fatihsoysal.com\/blog\/astro-client-directives-performansi-artiran-stratejiler\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-27T19:31:34+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"25 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/astro-client-directives-performansi-artiran-stratejiler\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/astro-client-directives-performansi-artiran-stratejiler\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Astro Client Directives: Performans\u0131 Art\u0131ran Stratejiler","datePublished":"2025-10-27T19:31:34+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/astro-client-directives-performansi-artiran-stratejiler\/"},"wordCount":4784,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/astro-client-directives-performansi-artiran-stratejiler\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/astro-client-directives-performansi-artiran-stratejiler\/","url":"https:\/\/fatihsoysal.com\/blog\/astro-client-directives-performansi-artiran-stratejiler\/","name":"Astro Client Directives: Performans\u0131 Art\u0131ran Stratejiler","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-27T19:31:34+00:00","description":"Modern web geli\u015ftirme d\u00fcnyas\u0131nda, h\u0131zl\u0131 y\u00fcklenen ve etkile\u015fimli kullan\u0131c\u0131 deneyimleri sunan web siteleri olu\u015fturmak, hem geli\u015ftiriciler hem de kullan\u0131c\u0131lar i\u00e7in birincil \u00f6nceliktir. Ancak, istemci taraf\u0131 JavaScript'in a\u015f\u0131r\u0131 kullan\u0131m\u0131, genellikle bu hedeflere ula\u015fmada \u00f6nemli bir engel te\u015fkil eder. Peki, web sitenizin performans\u0131n\u0131 d\u00fc\u015f\u00fcrmeden, zengin etkile\u015fimler sunan bile\u015fenleri nas\u0131l entegre edebilirsiniz? \u0130\u015fte tam bu noktada Astro'nun Client Directives (\u0130stemci Y\u00f6nergeleri) devreye giriyor. Bu kapsaml\u0131 makalede, Astro'nun Client Directives'lar\u0131n\u0131n ne oldu\u011funu, hangi durumlarda hangi y\u00f6nergeyi kullanman\u0131z gerekti\u011fini ve sitenizin performans\u0131n\u0131 nas\u0131l maksimize edebilece\u011finizi ad\u0131m ad\u0131m inceleyece\u011fiz. Hadi, Astro ile web sitelerinizi daha h\u0131zl\u0131 ve etkile\u015fimli hale getirme yolculu\u011funa \u00e7\u0131kal\u0131m!","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/astro-client-directives-performansi-artiran-stratejiler\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/astro-client-directives-performansi-artiran-stratejiler\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/astro-client-directives-performansi-artiran-stratejiler\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Astro Client Directives: Performans\u0131 Art\u0131ran Stratejiler"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/32961","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=32961"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/32961\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=32961"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=32961"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=32961"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}