CSS content-visibility Nedir? Uzun Web Sayfalarında Render Performansını İyileştirme

Tepki Ver

CSS content-visibility özelliği, uzun web sayfalarında ekran dışında kalan bölümlerin render maliyetini azaltmaya yardımcı olur. Bu rehberde auto, visible ve hidden değerlerinin farkları, contain-intrinsic-size ile boyut tahmini, kaydırma sırasında oluşabilecek düzen değişimleri ve erişilebilirlik davranışı açıklanıyor. Ayrıca gerçek performans kazanımının nasıl ölçüleceği ve hangi sayfalarda bu yöntemin kullanılmaması gerektiği ele alınıyor.

Bir web sayfasının yavaş hissettirmesi için mutlaka büyük görseller veya ağır JavaScript dosyaları içermesi gerekmiyor. Bazen sorun, tarayıcının henüz görünmeyen içerikler için bile ciddi miktarda düzen hesaplaması ve çizim işlemi gerçekleştirmesi olabiliyor.

Özellikle yüzlerce kart, uzun makale bölümleri, ürün listeleri veya karmaşık yönetim paneli bileşenleri içeren sayfalarda bu maliyet belirginleşebilir. Kullanıcı sayfanın ilk ekranını görmeye çalışırken tarayıcı, çok daha aşağıda bulunan içeriklerin yerleşimiyle de uğraşabilir.

CSS’in content-visibility özelliği tam bu noktada devreye giriyor. Tarayıcıya, belirli içeriklerin render işlemlerini ihtiyaç duyulana kadar erteleyebilme imkânı veriyor.

Üstelik bunun için yeni bir JavaScript kütüphanesi kurmak veya sayfanın bütün bileşenlerini yeniden yazmak gerekmeyebilir. Ancak birkaç satır CSS ekleyerek her sayfanın hızlanacağını düşünmek de fazla iyimser olur. Asıl fark, özelliğin doğru bölümlere uygulanması ve sonucun ölçülmesidir.

CSS content-visibility Nedir?

content-visibility, bir HTML öğesinin içeriğinin render edilip edilmeyeceğini kontrol eden CSS özelliğidir.

Tarayıcı normal koşullarda sayfanın DOM ve CSS yapısını değerlendirir, öğelerin konumlarını hesaplar ve görüntülenmesi gereken alanları çizer. Karmaşık sayfalarda bu işlemler işlemci zamanı tüketebilir.

content-visibility: auto kullanıldığında tarayıcı, kullanıcı açısından henüz gerekli olmayan bölümlerin bazı render işlemlerini atlayabilir.

Örneğin sayfanın en altında bulunan büyük bir ürün listesi, ilk ekran görüntülenirken tamamen düzenlenmek ve çizilmek zorunda kalmayabilir.

MDN’in content-visibility dokümantasyonuna göre bu özellik, içerik görünürlüğünü kontrol ederken containment mekanizmalarından yararlanır. Böylece tarayıcı, uygun durumlarda geniş içerik bölümlerinin layout ve paint işlemlerini erteleyebilir.

Burada önemli bir ayrıntı bulunuyor: content-visibility, içerikleri otomatik olarak sunucudan geç yükleyen bir mekanizma değildir.

HTML belgesinin indirilmesini, JavaScript dosyalarının çalışmasını veya görsellerin ağ üzerinden yüklenmesini tek başına engellemez. Temel amacı, tarayıcının render iş yükünü yönetmektir.

content-visibility Nasıl Çalışır?

Bir web sayfasının görüntülenmesi birden fazla işlemden oluşur.

Tarayıcı HTML ve CSS kaynaklarını işler, öğelerin hangi stilleri kullanacağını belirler, yerleşimlerini hesaplar ve gerekli görsel çıktıyı oluşturur.

Uzun bir sayfada bütün bölümlerin aynı anda ayrıntılı biçimde işlenmesi her zaman gerekli değildir.

Örneğin ziyaretçi makalenin başlangıcındayken sayfanın çok aşağısında bulunan karşılaştırma tablosunun bütün hücrelerinin hemen çizilmesi gerekmeyebilir.

content-visibility: auto bu tür bölümlerde tarayıcının gereksiz render işini azaltmasına yardımcı olur.

Ancak tarayıcı yalnızca viewport dışında bulunmayı tek başına yeterli kabul etmek zorunda değildir. İçeriğin kullanıcı açısından ilgili olup olmadığına, görünürlüğe ve erişilebilirlik gereksinimlerine göre karar verir.

Bu nedenle auto değeri, geliştiricinin kesin olarak “bu bölümü çizme” komutu vermesi anlamına gelmez. Tarayıcıya optimizasyon yapabilmesi için uygun koşulları sağlar.

content-visibility Değerleri: visible, auto ve hidden

Bu CSS özelliği üç temel değerle kullanılır.

DeğerDavranışKullanım amacı
visibleİçerik normal biçimde render edilirVarsayılan görünüm
autoTarayıcı gerektiğinde içerik render işlemlerini atlayabilirUzun sayfalarda performans optimizasyonu
hiddenÖğenin alt içeriğinin render edilmesi atlanırKontrollü içerik görünürlüğü

content-visibility: visible

Varsayılan değerdir.

.content-section {
  content-visibility: visible;
}

Bu durumda öğenin içeriği normal CSS render davranışına tabidir.

Özel bir optimizasyon veya içerik gizleme davranışı uygulanmaz.

content-visibility: auto

Performans optimizasyonunda en çok kullanılan değerdir.

.content-section {
  content-visibility: auto;
}

Tarayıcı, kullanıcı açısından gerekli olmayan bölümlerin içeriğini render etmeyi geçici olarak atlayabilir.

Bölüm görünür hale geldiğinde veya başka bir nedenle kullanıcı açısından önemli olduğunda içerik normal şekilde render edilir.

Bu yaklaşım özellikle uzun sayfalarda anlamlıdır.

content-visibility: hidden

Bu değer, öğenin alt içeriğinin render edilmesini atlar.

.content-section {
  content-visibility: hidden;
}

auto değerinden farklı olarak görünürlüğe göre kendiliğinden açılan bir davranış sağlamaz.

Ayrıca hidden kullanıldığında gizlenen alt içerikler normal odaklanma, seçim ve sayfa içi arama davranışlarına katılmaz.

Bu nedenle hidden ile auto birbirinin yerine kullanılmamalıdır.

Uygulamalı Örnek: Uzun Makale Sayfasını Optimize Etmek

Bir teknoloji portalında uzun rehberlerin birçok bağımsız bölümden oluştuğunu düşünelim.

Her bölüm kendi başlığına, paragraflarına, görsellerine ve bazen kod örneklerine sahip olabilir.

Böyle bir sayfada, ilk ekranın oldukça altında kalan bağımsız bölümlere content-visibility uygulanması değerlendirilebilir.

1. Bölümleri tanımlamak

Örnek HTML yapısı:

<main>
  <section class="article-section">
    <h2>Birinci Bölüm</h2>
    <p>İlk bölümün içeriği...</p>
  </section>

  <section class="article-section">
    <h2>İkinci Bölüm</h2>
    <p>İkinci bölümün içeriği...</p>
  </section>

  <section class="article-section">
    <h2>Üçüncü Bölüm</h2>
    <p>Üçüncü bölümün içeriği...</p>
  </section>
</main>

Bu yapı yalnızca özelliğin nasıl kullanılacağını göstermek için hazırlanmıştır.

Gerçek bir WordPress temasında içerik bloklarının yapısı farklı olabilir. Dolayısıyla sınıf adlarının mevcut tema veya blok yapısına göre uyarlanması gerekir.

2. CSS optimizasyonunu eklemek

.article-section {
  content-visibility: auto;
  contain-intrinsic-size: auto 600px;
}

İlk satır, uygun koşullarda render işlemlerinin atlanabilmesini sağlar.

İkinci satır ise tarayıcının henüz ayrıntılı olarak render etmediği bölüm için kullanılabilecek tahmini boyutu tanımlar.

Buradaki 600px evrensel olarak doğru bir değer değildir. Sayfanın gerçek bölüm yüksekliklerine göre belirlenmesi gerekir.

Örneğin ortalama 300 piksel yüksekliğindeki kartlara 600 piksel tahmini boyut vermek, kaydırma sırasında gereksiz yerleşim değişikliklerine neden olabilir.

Bu nedenle başlangıç değerleri, gerçek içerik ölçümlerine dayanmalıdır.

3. Optimizasyonu yalnızca uygun bölümlere uygulamak

Her sayfa bölümüne aynı kuralı vermek her zaman doğru değildir.

Örneğin ilk ekranda bulunan büyük başlık alanı, kritik navigasyon veya kullanıcı etkileşimi gerektiren bileşenler için render ertelemesi anlamlı bir kazanç sağlamayabilir.

Daha kontrollü bir yaklaşım:

.article-section--deferred {
  content-visibility: auto;
  contain-intrinsic-size: auto 600px;
}

Bu şekilde yalnızca uygun görülen bölümlere özel sınıf atanabilir.

Özellikle WordPress gibi içerik yönetim sistemlerinde, özelliği bütün section öğelerine uygulamak yerine belirli blok gruplarıyla sınırlandırmak daha güvenlidir.

contain-intrinsic-size Neden Önemli?

content-visibility: auto tek başına kullanıldığında tarayıcı bazı bölümlerin içeriğini henüz hesaplamamış olabilir.

Ancak sayfanın genel yerleşiminin oluşturulabilmesi için bu bölümlerin yaklaşık ne kadar yer kapladığının bilinmesi yararlıdır.

contain-intrinsic-size, tarayıcıya bu konuda kullanılabilecek boyut bilgisi sağlar.

Örneğin:

.product-list {
  content-visibility: auto;
  contain-intrinsic-size: auto 800px;
}

Bu örnekte tarayıcı, henüz render edilmeyen içerik için uygun koşullarda 800 piksel boyut tahmininden yararlanabilir.

auto anahtar sözcüğü, içerik daha önce normal biçimde render edilmişse gerçek boyutunun hatırlanabilmesini sağlar.

Bu sayede kullanıcı aşağı kaydırıp bir bölümü görüntüledikten sonra tekrar yukarı çıktığında tarayıcı, daha önce hesaplanan boyut bilgisini kullanabilir.

MDN contain-intrinsic-size açıklaması, hatırlanan boyutların ve tahmini değerlerin nasıl kullanıldığını ayrıntılı olarak açıklar.

Yanlış boyut tahmini neye yol açar?

Gerçek yüksekliği 250 piksel olan bir bölüme 1200 piksel tahmini boyut verilirse tarayıcı başlangıçta gereğinden fazla alan ayırabilir.

Bölüm render edildiğinde gerçek boyut ortaya çıkar ve sayfa yerleşimi değişebilir.

Bu durum kaydırma çubuğunun konumunda değişikliklere veya görünür içerikte hareketlere neden olabilir.

Tersi durumda, gerçek boyutu çok büyük olan bir bölüm için aşırı küçük tahmin kullanılması da benzer sorunlar oluşturabilir.

Bu nedenle tahmini boyutlar gelişigüzel belirlenmemelidir.

content-visibility ve Layout Shift İlişkisi

Web performansında yalnızca hızlı görüntüleme değil, görsel kararlılık da önemlidir.

Sayfa yüklenirken veya kaydırma sırasında içeriklerin beklenmedik şekilde yer değiştirmesi kullanıcı deneyimini olumsuz etkileyebilir.

Bu tür hareketler, belirli koşullarda Cumulative Layout Shift (CLS) metriğine de yansıyabilir.

content-visibility kullanırken tahmini boyut ile gerçek boyut arasındaki fark, yerleşim değişiklikleri oluşturabilir.

Ancak her boyut değişikliği otomatik olarak CLS puanına aynı şekilde yansımaz. Ölçüm, değişimin görünür alanda gerçekleşip gerçekleşmediği ve kullanıcı etkileşimi gibi koşullara bağlıdır.

Dolayısıyla yalnızca CSS kuralının eklenmesiyle CLS’nin artacağı veya azalacağı söylenemez.

Doğru yaklaşım, optimizasyon öncesinde ve sonrasında gerçek ölçümler yapmaktır.

Layout Shift riskini azaltmak

Uzun sayfalarda her bölümün yüksekliği birbirinden çok farklı olabilir.

Örneğin kısa bir metin bölümü 300 piksel, büyük karşılaştırma tablosu 1500 piksel yüksekliğinde olabilir.

Bu iki bölüm için aynı tahmini boyutu kullanmak ideal değildir.

Bunun yerine içerik türüne göre farklı sınıflar oluşturulabilir:

.article-text-section {
  content-visibility: auto;
  contain-intrinsic-size: auto 400px;
}

.article-table-section {
  content-visibility: auto;
  contain-intrinsic-size: auto 1000px;
}

Bu değerler yalnızca örnektir.

Gerçek uygulamada uygun tahminler, içeriklerin tipik ölçüleri ve farklı ekran genişliklerindeki davranışları incelenerek belirlenmelidir.

content-visibility ile Lazy Loading Aynı Şey mi?

İki yaklaşım benzer amaçlarla kullanılsa da farklı işlemleri hedefler.

Lazy loading, belirli kaynakların veya bileşenlerin ihtiyaç duyulana kadar yüklenmesini ertelemeyi amaçlar.

Örneğin bir görsel için loading="lazy" kullanılması, tarayıcının görsel kaynağını yükleme zamanını yönetmesine yardımcı olabilir.

content-visibility ise esas olarak render maliyetini azaltır.

Özellikcontent-visibilityLazy Loading
Temel hedefRender işini azaltmakKaynak veya bileşen yüklemesini ertelemek
CSS ile uygulanabilirEvetKullanım türüne bağlı
Ağ isteklerini otomatik ertelerHayırUygun kaynaklarda evet
Layout ve paint maliyetini etkilerEvetDolaylı olarak etkileyebilir
Birlikte kullanılabilirEvetEvet

Örneğin uzun bir ürün listeleme sayfasında görseller için lazy loading, ürün kartlarının büyük grupları içinse content-visibility kullanılabilir.

Böylece hem kaynak yükleme hem de render maliyeti farklı yöntemlerle yönetilebilir.

Ancak aynı anda çok sayıda optimizasyon uygulandığında hangi değişikliğin ne kadar fayda sağladığını anlamak zorlaşabilir.

Bu nedenle ölçümler mümkün olduğunca kontrollü yapılmalıdır.

content-visibility SEO’yu Etkiler mi?

SEO açısından önemli olan, arama motorlarının sayfa içeriğine erişebilmesi ve içeriğin anlamlı bir HTML yapısıyla sunulmasıdır.

content-visibility: auto, içeriği DOM’dan kaldırmaz.

Bu nedenle özelliğin kullanılması, içeriğin otomatik olarak arama motorlarından gizleneceği anlamına gelmez.

Ancak buradan bütün arama motorlarının her senaryoda aynı davranışı göstereceği sonucu da çıkarılmamalıdır.

Özellikle JavaScript ile sonradan oluşturulan içerikler, render süreci ve arama motorunun JavaScript işleme yetenekleri ayrı değerlendirilmelidir.

content-visibility, eksik HTML içeriğini tamamlayan veya JavaScript tabanlı içerik yükleme problemlerini çözen bir SEO aracı değildir.

En güvenli yaklaşım, önemli içeriğin doğru semantik HTML yapısıyla sunulması ve arama motorlarının erişebildiği kaynakların gereksiz yere engellenmemesidir.

Ayrıca content-visibility: auto kullanılan bölümlerde içerik, tarayıcının sayfa içi arama ve erişilebilirlik mekanizmaları için kullanılabilir olmaya devam eder.

Bu davranış, content-visibility: hidden ile karıştırılmamalıdır.

Erişilebilirlik Açısından Dikkat Edilmesi Gerekenler

Performans optimizasyonları, kullanıcıların içeriğe erişmesini zorlaştırmamalıdır.

content-visibility: auto kullanılan ekran dışı içerikler DOM’da ve erişilebilirlik ağacında kalabilir.

Bu, özelliğin önemli avantajlarından biridir.

Ancak bir bölümün içinde display: none veya visibility: hidden ile gizlenmiş öğeler bulunuyorsa, render atlandığı sırada bu öğelerin erişilebilirlik ağacındaki davranışı beklenmedik sonuçlar oluşturabilir.

MDN, bu tür durumlarda gerçekten erişilebilirlik ağacından çıkarılması gereken içeriklerin uygun şekilde yönetilmesi gerektiğini belirtir.

Bu nedenle erişilebilirlik testleri yalnızca görsel kontrolle sınırlı tutulmamalıdır.

Klavye navigasyonu, ekran okuyucu davranışı, sayfa içi arama ve odaklanma sırası da kontrol edilmelidir.

Özellikle form alanları, açılır paneller ve etkileşimli widget’lar içeren bölümlerde daha dikkatli test yapılması gerekir.

content-visibility Tarayıcı Desteği

content-visibility, modern tarayıcılarda desteklenen bir CSS özelliğidir.

MDN uyumluluk verilerine göre temel özellik, Eylül 2024 itibarıyla yaygın modern tarayıcı desteği seviyesine ulaşmıştır.

Ancak eski tarayıcı sürümlerinde veya özelliğin bazı alt davranışlarında farklılıklar bulunabilir.

Bu nedenle uygulama yapılmadan önce hedef kullanıcı kitlesinin tarayıcı dağılımı dikkate alınmalıdır.

Desteklenmeyen tarayıcılarda CSS özelliğinin yok sayılması ve içeriğin normal biçimde render edilmesi genellikle kabul edilebilir bir geri dönüş davranışıdır.

Daha açık bir özellik kontrolü için:

@supports (content-visibility: auto) {
  .deferred-section {
    content-visibility: auto;
    contain-intrinsic-size: auto 600px;
  }
}

Bu kod, ilgili CSS özelliğini destekleyen tarayıcılarda optimizasyonun uygulanmasını sağlar.

Ancak @supports, tek başına performans kazancını veya bütün davranışların kusursuz çalıştığını garanti etmez.

Gerçek testlerin yerini tutmaz.

content-visibility Performansı Nasıl Ölçülür?

Bir optimizasyonun işe yarayıp yaramadığını anlamanın tek güvenilir yolu, uygun koşullarda ölçüm yapmaktır.

Özellikle render maliyetini azaltmaya yönelik değişikliklerde yalnızca sayfanın toplam yüklenme süresine bakmak yeterli değildir.

Chrome DevTools Performance paneli

Chrome DevTools Performance paneli kullanılarak sayfanın render davranışı incelenebilir.

Ölçüm öncesinde ve sonrasında özellikle layout, paint ve scripting işlemlerine ayrılan süreler karşılaştırılabilir.

Uzun bir sayfada ilk yükleme sırasında gerçekleştirilen render işlemlerinin azalması beklenebilir.

Ancak bu durum her sayfada aynı ölçüde gerçekleşmez.

Örneğin yalnızca birkaç kısa paragraftan oluşan bir sayfada content-visibility kullanımı ölçülebilir bir fayda sağlamayabilir.

Lighthouse ölçümleri

Lighthouse, web performansını değerlendirmek için yararlı bir araçtır.

Ancak content-visibility kullanımı doğrudan belirli bir Lighthouse puanı artışını garanti etmez.

Sonuçlar sayfanın içeriğine, kullanılan cihaza, tarayıcı sürümüne ve diğer kaynakların davranışına bağlıdır.

Bu nedenle tek bir test sonucuna dayanarak karar verilmemelidir.

Gerçek kullanıcı verileri

Laboratuvar ölçümleri kontrollü koşullarda karşılaştırma yapmayı kolaylaştırır.

Gerçek kullanıcı verileri ise farklı cihazların, ağ koşullarının ve kullanım alışkanlıklarının etkisini gösterir.

Özellikle uzun sayfalarda kaydırma performansı ve etkileşim gecikmeleri, gerçek kullanım koşullarında önem kazanabilir.

Google’ın Interaction to Next Paint (INP) optimizasyon rehberi, etkileşim gecikmesini oluşturan giriş gecikmesi, olay işleme süresi ve görüntüleme gecikmesi bileşenlerini ayrı değerlendirmeyi önerir.

content-visibility, uygun senaryolarda render işini azaltabilir ancak INP değerini tek başına iyileştireceği varsayılmamalıdır.

Özellikle yoğun JavaScript işlemleri devam ediyorsa asıl darboğaz başka bir yerde olabilir.

Hangi Sayfalarda content-visibility Kullanılmalı?

Bu özelliğin en anlamlı olduğu senaryolar genellikle uzun ve birbirinden bağımsız içerik bölümlerine sahip sayfalardır.

Örneğin yüzlerce ürün kartı içeren kataloglar, kapsamlı teknik rehberler, uzun dokümantasyon sayfaları ve karmaşık dashboard alanları uygun adaylar olabilir.

Ancak bütün bu sayfalarda mutlaka kullanılması gerektiği söylenemez.

Özellikle ilk ekranda bulunan kritik içerikler için render ertelemesinin faydası sınırlı olabilir.

Benzer şekilde çok kısa sayfalarda optimizasyonun getirdiği ek CSS karmaşıklığı, elde edilen kazançtan daha fazla olabilir.

İçeriğin yüksekliği sürekli değişiyorsa tahmini boyut yönetimi de zorlaşabilir.

Bu nedenle en doğru yaklaşım, önce performans darboğazını belirlemek ve yalnızca ihtiyaç duyulan bölümlerde optimizasyon uygulamaktır.

WordPress Sitelerinde content-visibility Kullanımı

WordPress sitelerinde content-visibility, tema veya özel blok stilleri üzerinden uygulanabilir.

Ancak bütün makale içeriğini tek bir kapsayıcı olarak işaretlemek her zaman anlamlı değildir.

Örneğin makalenin tamamını kapsayan bir öğeye content-visibility: auto vermek, sayfanın alt bölümlerini birbirinden bağımsız olarak optimize etmekle aynı sonucu sağlamaz.

Daha uygun yaklaşım, uzun içerikleri anlamlı blok gruplarına ayırmak ve yalnızca belirli gruplarda bu özelliği kullanmaktır.

WordPress blok editöründe ek CSS sınıfı atanabilen grup blokları, bu tür uygulamalar için değerlendirilebilir.

Ancak kullanılan tema ve blok eklentilerinin oluşturduğu HTML yapısı kontrol edilmelidir.

Özellikle cache ve CSS optimizasyon eklentilerinin stilleri birleştirmesi veya yeniden sıralaması, beklenen seçicilerin uygulanmasını etkileyebilir.

Canlı sitede değişiklik yapmadan önce tema veya özel CSS yapılandırmasının yedeği alınmalı, değişiklik bir test ortamında denenmelidir.

Geri alma işlemi ise eklenen CSS kurallarının kaldırılması ve gerekiyorsa ilgili önbelleklerin temizlenmesiyle gerçekleştirilebilir.

content-visibility Kullanırken Yapılan Yaygın Hatalar

En yaygın hata, özelliği bütün sayfa öğelerine kontrolsüz biçimde uygulamaktır.

Örneğin her paragrafı ayrı bir render kapsayıcısı haline getirmek, çoğu durumda gerekli değildir.

Bir başka hata, contain-intrinsic-size değerini gerçek içerik boyutları incelenmeden belirlemektir.

Bu durum özellikle uzun sayfalarda kaydırma sırasında yerleşim değişikliklerine neden olabilir.

Ayrıca content-visibility: auto kullanıldığında görsellerin otomatik olarak lazy load edileceğini düşünmek de yanlıştır.

Ağ kaynaklarının yüklenmesi ile render işlemleri farklı mekanizmalardır.

Son olarak, yalnızca Lighthouse puanına odaklanıp gerçek kullanıcı davranışını göz ardı etmek yanlış optimizasyon kararlarına yol açabilir.

İyi bir performans çalışması, yalnızca sayısal skorları değil, sayfanın görsel kararlılığını, erişilebilirliğini ve etkileşim davranışını da dikkate almalıdır.

Sonuç: Daha Az Render İşi, Daha Dengeli Sayfalar

CSS content-visibility, özellikle uzun ve karmaşık web sayfalarında tarayıcının render iş yükünü azaltmak için kullanılabilecek modern bir optimizasyon aracıdır.

content-visibility: auto ile ekran dışında kalan uygun bölümlerin render işlemleri ertelenebilir. contain-intrinsic-size ise bu süreçte sayfa yerleşiminin daha öngörülebilir kalmasına yardımcı olur.

Ancak performans kazanımı, sayfanın yapısına ve özelliğin uygulandığı bölümlere bağlıdır.

Bu nedenle bütün sayfaya aynı CSS kuralını eklemek yerine, maliyetli render işlemleri oluşturan bölümleri belirlemek daha doğru bir yaklaşımdır.

Doğru uygulandığında content-visibility, lazy loading, görsel optimizasyonu ve JavaScript performans çalışmalarıyla birlikte daha verimli bir web deneyimi oluşturabilir.

En iyi optimizasyon ise çoğu zaman tarayıcıya daha fazla iş yaptırmak değil, henüz ihtiyaç duyulmayan işleri doğru zamana bırakmaktır.

Yazar Profili
SitePortali Yönetici Tüm Yazılar

Kullanıcıya ait herhangi bir sosyal medya veya iletişim bilgisi bulunmamaktadır.

47 Yazı

Bir Yorum Yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir