Stilize edilmemiş içeriğin flaşı - Flash of unstyled content

Wikipedia'nın ana sayfasını yüklerken FOUC.

Bir stilize edilmemiş içerik flaşı (FOUC, Ayrıca stilize edilmemiş metin parıltısı)[1][2] harici bir web sayfası yüklemeden önce tarayıcının varsayılan stilleriyle kısa bir süre görüntülendiği bir örnektir. CSS stil sayfası nedeniyle web tarayıcı motoru tüm bilgiler alınmadan önce sayfanın oluşturulması. Sayfa, stil kuralları yüklenir ve uygulanır uygulanmaz kendini düzeltir; ancak, değişim dikkat dağıtıcı olabilir. İlgili sorunlar şunları içerir: görünmez metin parıltısı (FOIT) ve sahte metin parıltısı (FOFT).[1][2]

Teknik Bilgiler

Sorun, "Biçimlenmemiş İçerik Flash" adlı bir makalede belgelendi.[3] İlk başta FOUC, yalnızca bir tarayıcı problemi olarak göründü. Internet Explorer ancak daha sonra diğer tarayıcılarda belirginleşti,[4][5] ve o zamandan beri "bir Safari epidemi".[6]

FOUC, değişikliklere kayıtsızdır. CSS veya HTML sürümler. Sorun, tarayıcıya programlanmış bir dizi öncelikten kaynaklanıyor.[kaynak belirtilmeli ] Tarayıcı, HTML'yi ve işaretlemede referans verilen tüm yardımcı dosyaları topladığında, tarayıcı Belge Nesnesi Modeli anında. Tarayıcı, önce en hızlı şekilde ayrıştırabileceği metni görüntülemeyi seçebilir.

FOUC, HTML sayfalarının birden çok stil sayfasına başvurmaya daha uygun olması nedeniyle artık daha yaygındır. Web sayfaları genellikle, yazıcılar ve mobil cihazlar için CSS kuralları gibi tarayıcı ekranı dışındaki medyaya stil referansları içerir. Web sayfaları, stil dosyalarının katmanlarını içe aktarabilir ve alternatif stil sayfalarına başvurabilir. Çevrimiçi reklamlar ve videolar ve arama motorları gibi diğer eklenmiş site dışı içerikler genellikle kod blokları içinde kendi stil kurallarını belirler. CSS kurallarının basamaklı yapısı, bazı tarayıcıları uygulamadan önce tüm stil verilerinin toplanmasını beklemeye teşvik eder.

Gelişiyle JavaScript kitaplıkları gibi jQuery bir web sayfasının stilini daha fazla tanımlamak ve uygulamak için kullanılabilen FOUC, daha da öne çıkmıştır. Biçimlendirilmemiş içeriği önlemek için, ön uç geliştiriciler, tam olarak yüklenene kadar tüm içeriği gizlemeyi seçebilir, bu noktada bir yükleme olayı işleyicisi tetiklenir ve içerik görüntülenir.

Bir FOUC'u taklit etmek için geliştiriciler, bir web sayfasının CSS'sini anında devre dışı bırakabilen tarayıcı eklentileri kullanabilir. Kundakçı ve Async CSS bu tür eklentilerdir.

2016 yılına kadar, istenmeyen görüntü davranışlarını önlemek için birkaç farklı teknik geliştirilirken,[2] oluşturma davranışında bir değişiklik Google Chrome sürüm 50, burada JavaScript tarafından enjekte edilen stil sayfalarının, sayfa yüklemesini engellemesi, HTML5 şartname, durumu tekrar web sitesi oluşturucularının dikkatine getirdi, özellikle de Typekit, bir web tipografi gelen ürün Adobe Sistemleri.[1] 2 ay içinde Adobe, istenmeyen oluşturma davranışını önlemek için yazı tiplerinin üçüncü taraf web sitelerine eklenme şeklini değiştirdi.[7]

Referanslar

  1. ^ a b c Tim Brown (3 Haziran 2016). "Chrome 50'de Biçimlenmemiş Metnin Flaşıyla İlgili". Adobe Typekit Blog. Adobe Sistemleri. Alındı 9 Ağustos 2016.
  2. ^ a b c Chris Coyier (1 Nisan 2015). "FOIT, FOFT". CSS Hileleri. Alındı 9 Ağustos 2016.
  3. ^ "Şekillendirilmemiş İçeriğin Flaşı (FOUC)". Mavi Robot. 2001. Arşivlenen orijinal 13 Mayıs 2015. Alındı 12 Ekim 2012.
  4. ^ "Şekillendirilmemiş İçeriğin Flaşı (FOUC)". Bugzilla @ Mozilla. Alındı 14 Ekim 2016.
  5. ^ "FOUC içeren Chromium Bugs'". bugs.chromium.org. Alındı 14 Ekim 2016.
  6. ^ Dave Hyatt (1 Eylül 2006). "FOUC Sorunu". Surfin 'Safari. WebKit Açık Kaynak Projesi. Alındı 16 Ekim 2012. FOUC sorunu normalde küçük bir olay olacaktır. Ancak gelişiyle Google AdSense FOUC bir Safari epidemi. Bu Google reklamları yalnızca satır içi komut dosyasını yürütmekle kalmayıp, aynı zamanda sayfada sıklıkla kullanmadıkları yerleşim bilgilerine de eriştiklerinden, FOUC sorunu olması gerekenden çok daha ciddidir.
  7. ^ Bram Stein (28 Temmuz 2016). "Typekit'te web yazı tipi sunumunda değişiklikler". Adobe Typekit Blog. Adobe Sistemleri. Alındı 9 Ağustos 2016.