Kaydol

Merhaba Sevgili Floodlar.com Kullanıcısı, Web sitemizde geçirdiğiniz zaman ve bu büyüleyici flood evrenine katılımınız için teşekkür ederiz. Floodların geniş dünyasıyla dolu deneyiminizi daha fazla keşfetmek için, web sitemizi sınırsız olarak kullanabilmeniz adına giriş yapmanız gerekmektedir.

Oturum aç

Merhaba Floodlar.com Kullanıcısı, İlk üç sayfayı tamamladınız, tebrikler! Ancak, floodların devamını görmek ve daha fazla interaktif deneyim yaşamak için giriş yapmanız gerekiyor. Hesabınız yoksa, hızlıca oluşturabilirsiniz. Sınırsız floodlar ve etkileşimler sizleri bekliyor. Giriş yapmayı unutmayın!

Şifremi hatırlamıyorum

Şifreniz mi unuttunuz? Endişelenmeyin! Lütfen kayıtlı e-posta adresinizi giriniz. Size bir bağlantı göndereceğiz ve bu link üzerinden yeni bir şifre oluşturabileceksiniz.

Fil Necati Masonlar Locası Subreddit Adı Nedir? Cevap: ( N31 )

Üzgünüz, flood girme izniniz yok, Flood girmek için giriş yapmalısınız.

Lütfen bu Floodun neden bildirilmesi gerektiğini düşündüğünüzü kısaca açıklayın.

Lütfen bu cevabın neden bildirilmesi gerektiğini kısaca açıklayın.

Lütfen bu kullanıcının neden rapor edilmesi gerektiğini düşündüğünüzü kısaca açıklayın.

Mobil Uygulamada Açın

Güncel Floodlar En sonuncu Nesne

Giriş gecikmesini optimize et

Giriş gecikmesini optimize et

Web üzerindeki etkileşimler, onları yönlendirmek için tarayıcıda meydana gelen her türlü etkinlikle karmaşık şeylerdir. Yine de hepsinin ortak noktası, olay geri aramaları çalışmaya başlamadan önce bir miktar giriş gecikmesine maruz kalmalarıdır. Bu kılavuzda, giriş gecikmesinin ne olduğunu ve web sitenizin etkileşimlerinin daha hızlı çalışması için bunu en aza indirmek için neler yapabileceğinizi öğreneceksiniz.

giriş gecikmesi nedir? #

Giriş gecikmesi kullanıcının bir sayfayla ilk etkileşimde bulunduğu (bir ekrana dokunmak, fareyle tıklamak veya bir tuşa basmak gibi) ile etkileşim için olay geri aramalarının çalışmaya başladığı ana kadar geçen süredir. Her etkileşim bir miktar giriş gecikmesiyle başlar.

Giriş gecikmesinin arkasındaki mekanik. İşletim sistemi tarafından bir girdi alındığında, etkileşim başlamadan önce tarayıcıya iletilmesi gerekir. Bu belirli bir zaman alır ve mevcut ana iş parçacığı çalışmasıyla artırılabilir.

Giriş gecikmesinin bir kısmı kaçınılmazdır: işletim sisteminin bir giriş olayını tanıması ve tarayıcıya iletmesi her zaman biraz zaman alır. Bununla birlikte, giriş gecikmesinin bu kısmı genellikle fark edilmez bile ve sayfanın kendisinde meydana gelen ve giriş gecikmelerini sorunlara neden olacak kadar uzun hale getirebilecek başka şeyler de vardır.

Giriş gecikmesi hakkında nasıl düşünülür? #

Genel olarak, bir etkileşimin her bölümünü olabildiğince kısa tutmak istersiniz, böylece web siteniz, kullanıcının cihazından bağımsız olarak Etkileşim to Next Paint (INP) metriğinin “iyi” eşiğini karşılama şansına sahip olur. Giriş gecikmesini kontrol altında tutmak, bu eşiği karşılamanın yalnızca bir parçasıdır.

Giriş gecikmeleri için bir ödenek belirlemek amacıyla İlk Giriş Gecikmesi (FID) eşiklerine bakmak isteyebilirsiniz; ancak FID için “iyi” eşik, 100 milisaniye veya daha az. Bu eşiği geçerseniz, bütçenizin yarısını yalnızca giriş gecikmesine INP için ayırmış olursunuz. Bir etkileşimin olay geri aramalarını çalıştırması ve tarayıcının bir sonraki çerçeveyi boyaması için de zaman gerektirdiğini düşündüğünüzde bu tavsiye edilmez.

INP’nin “iyi” eşiğini karşılamak için mümkün olan en kısa giriş gecikmesini hedeflemek isteyeceksiniz, ancak bunu tamamen ortadan kaldırmayı beklememelisiniz, çünkü bu imkansızdır. Kullanıcılar sayfanızla etkileşime girmeye çalışırken aşırı ana iş parçacığı çalışmasından kaçındığınız sürece, giriş gecikmeniz sorunları önleyecek kadar düşük olmalıdır.

Giriş gecikmesi nasıl en aza indirilir #

Daha önce de belirtildiği gibi, bir miktar giriş gecikmesi kaçınılmazdır, ancak öte yandan, bir miktar giriş gecikmesi dır-dir kaçınılabilir. Uzun giriş gecikmeleriyle mücadele ediyorsanız, göz önünde bulundurmanız gereken bazı noktalar şunlardır.

Aşırı ana iş parçacığı çalışmasını başlatan yinelenen zamanlayıcılardan kaçının #

Giriş gecikmesine katkıda bulunabilecek, JavaScript’te yaygın olarak kullanılan iki zamanlayıcı işlevi vardır: setTimeout Ve setInterval. İkisi arasındaki fark şu ki setTimeout belirli bir süre sonra çalışacak bir geri arama planlar. setIntervalÖte yandan, her seferinde çalışacak bir geri arama planlar. N sürekli olarak veya zamanlayıcı ile durdurulana kadar milisaniye clearInterval.

setTimeout kendi başına sorunlu değildir – aslında, yardımcı olabilir uzun görevlerden kaçınmak. Ancak, bağlıdır Ne zaman zaman aşımı oluşur ve zaman aşımı geri araması çalıştığında kullanıcının sayfayla etkileşime girme girişiminde bulunup bulunmadığı.

Bunlara ek olarak, setTimeout bir döngüde veya yinelemeli olarak çalıştırılabilir, burada daha çok şu şekilde davranır: setInterval, ancak tercihen önceki yineleme tamamlanana kadar bir sonraki yinelemeyi programlamamak. Bu, döngünün her seferinde ana iş parçacığına yol açacağı anlamına gelirken setTimeout çağrıldığında, geri aramasının aşırı iş yapmamasına dikkat etmelisiniz.

setInterval belirli aralıklarla bir geri arama çalıştırır ve bu nedenle etkileşimlerin önüne geçme olasılığı çok daha yüksektir. Bunun nedeni, tek bir örneğin aksine setTimeout tek seferlik bir geri arama olan çağrı mayıs bir kullanıcı etkileşiminin önüne geçmek—setInterval‘nin yinelenen doğası, bunun olma olasılığını çok daha fazla artırıyor. irade etkileşimin önüne geçerek etkileşimin giriş gecikmesini arttırır.

Bir önceki tarafından kaydedilen bir zamanlayıcı setInterval Chrome DevTools’un performans panelinde gösterildiği gibi giriş gecikmesine katkıda bulunan çağrı. Eklenen giriş gecikmesi, etkileşim için olay geri aramalarının normalde çalışabileceklerinden daha geç çalışmasına neden olur.

Zamanlayıcılar birinci taraf kodunda oluşuyorsa, bunlar üzerinde kontrol sahibi olursunuz. Onlara ihtiyacınız olup olmadığını değerlendirin veya içlerindeki işi mümkün olduğunca azaltmak için elinizden gelenin en iyisini yapın. Ancak, üçüncü taraf komut dosyalarındaki zamanlayıcılar farklı bir hikaye. Genellikle bir üçüncü taraf komut dosyasının ne yaptığı üzerinde kontrolünüz olmaz ve üçüncü taraf kodundaki performans sorunlarını düzeltmek, genellikle belirli bir üçüncü taraf komut dosyasının gerekli olup olmadığını belirlemek için paydaşlarla birlikte çalışmayı ve gerekliyse bir yetkiliyle iletişim kurmayı içerir. Web sitenizde neden olabilecekleri performans sorunlarını düzeltmek için neler yapılabileceğini belirlemek için üçüncü taraf komut dosyası satıcısı.

Uzun görevlerden kaçının #

Uzun giriş gecikmelerini azaltmanın bir yolu, uzun görevlerden kaçınmaktır. Etkileşimler sırasında ana iş parçacığını bloke eden aşırı ana iş parçacığı işiniz olduğunda, bu, uzun görevlerin bitme şansı bulamadan onlar için girdi gecikmesine katkıda bulunacaktır.

Görevler çok uzun olduğunda ve tarayıcı etkileşimlere yeterince hızlı yanıt veremediğinde, daha uzun görevler daha küçük görevlere bölündüğünde etkileşimlere ne olduğunun görselleştirilmesi.

Bir görevde yaptığınız iş miktarını en aza indirmenin yanı sıra – ve yapmalısınız Her zaman ana iş parçacığında mümkün olduğunca az iş yapmaya çalışın; uzun görevleri bölerek kullanıcı girişine yanıt verme hızını artırabilirsiniz.

Etkileşim çakışmasına dikkat edin #

INP’yi optimize etmenin özellikle zorlu bir kısmı, örtüşen etkileşimleriniz varsa olabilir. Etkileşim çakışması, bir öğeyle etkileşim kurduktan sonra, ilk etkileşimin bir sonraki kareyi oluşturma şansı bulamadan sayfayla başka bir etkileşim kurmanız anlamına gelir.

Chrome’un DevTools’daki performans profili oluşturucudaki iki eşzamanlı etkileşimin görselleştirilmesi. İlk tıklama etkileşimindeki işleme çalışması, sonraki klavye etkileşimi için bir giriş gecikmesine neden olur.

Etkileşim kaynakları, kullanıcıların kısa bir süre içinde birçok etkileşimde bulunması kadar basit olabilir. Bu, kullanıcılar çok kısa bir süre içinde birçok klavye etkileşiminin gerçekleşebileceği form alanlarına girdiklerinde ortaya çıkabilir. Önemli bir olay üzerinde çalışmak özellikle pahalıysa (örneğin, ağ isteklerinin bir arka uca yapıldığı yaygın otomatik tamamlama alanlarında olduğu gibi), birkaç seçeneğiniz vardır:

  • Bir olay geri aramasının belirli bir süre içinde yürütülme sayısını sınırlamak için girişleri kaldırmayı düşünün.
  • Kullanmak AbortController gideni iptal etmek fetch ana iş parçacığının sıkışık işleme haline gelmemesi için istekler fetch geri aramalar. Not: bir AbortController örneğinin signal özellik ayrıca kullanılabilir iptal olayları.

Çakışan etkileşimler nedeniyle artan giriş gecikmesinin bir başka kaynağı da pahalı animasyonlar olabilir. Özellikle, JavaScript’teki animasyonlar birçok kişiyi tetikleyebilir. requestAnimationFrame kullanıcı etkileşimlerinin önüne geçebilecek çağrılar. Bunu aşmak için, potansiyel olarak pahalı animasyon karelerini kuyruğa almaktan kaçınmak için mümkün olduğunda CSS animasyonlarını kullanın; ancak bunu yaparsanız, birleştirilmemiş animasyonlardan kaçının böylece animasyonlar ana iş parçacığında değil, esas olarak GPU ve birleştirici iş parçacıklarında çalışır.

Çözüm #

Girdi gecikmeleri, etkileşimlerinizin çalışması için gereken sürenin çoğunu temsil etmese de, bir etkileşimin her bölümünün azaltabileceğiniz bir süreyi kapladığını anlamak önemlidir. Uzun giriş gecikmesi gözlemliyorsanız, bunu azaltmak için fırsatlarınız var demektir. Yinelenen zamanlayıcı geri aramalarından kaçınmak, uzun görevleri bölmek ve olası etkileşim çakışmalarının farkında olmak, giriş gecikmesini azaltmanıza yardımcı olarak web sitenizin kullanıcıları için daha hızlı etkileşim sağlar.

Gönderen kahraman resmi Unsplashile Erik McLean.

İlgili Mesajlar

Yorum eklemek için giriş yapmalısınız.