Çerçeveler neden HTML5'te kullanımdan kaldırıldı, ancak iFrame'ler kullanılmadı? Sonuçta, ikisi arasında neredeyse hiçbir fark yoktur. Bunlardan birini kullanarak birçok durumda aynı çıktıyı verir (yanılıyorsam afedersiniz)?
Çerçeveler neden HTML5'te kullanımdan kaldırıldı, ancak iFrame'ler kullanılmadı? Sonuçta, ikisi arasında neredeyse hiçbir fark yoktur. Bunlardan birini kullanarak birçok durumda aynı çıktıyı verir (yanılıyorsam afedersiniz)?
Yanıtlar:
Görevinizde birkaç yanlış anlama var. İlk olarak, HTML5'te frame
ve frameset
öğeleri kullanımdan kaldırılmaz, eskidirler (yani tamamen kaldırıldılar).
İkincisi, frame
ve frameset
elemanları elemanla aynı şey değildir iframe
, aynı çıktıyı vermezler:
frameset
Onlar kullanılabilirlik ve erişilebilirlik için kötüsün, ve ne tamamen CSS ve her yerde sunucu tarafı geliştirme yerini almış gerçekleştirmek için tasarlanmıştır: eleman vücut web sayfaları için farklı bir belge modeli dahil etmek için bir araç olarak sayfalarında eleman değiştirir.
iframe
Eleman, diğer taraftan, bir sayfanın gövdesini yerine geçmez. Bir içerik bloğuna gömülü yeni bir tarama bağlamı eklemek için bir araç olarak işlev görür. Çerçeve kümesi modeliyle aynı kullanılabilirlik veya erişilebilirlik sorunlarından muzdarip değildir ve gömülü bir tarama bağlamı içermek için ihtiyaç duyulan hemen hemen her yerde kullanılır (widget'lar en üretken örnektir). 1
iframe
HTML5'teki da edilebilmesi de ek özellikler alır korumalı ebeveyn belgesinin, içinde çalıştırılmaktadır karar için izin. Bu, güvenilmeyen içeriği gömerken ana belge (ve ana belgeye gelen ziyaretçiler) için bir miktar güvenlik önlemi alınmasını sağlar.
Not 1:object
eleman , eleman ile bir şekilde örtüşür iframe
, ancak farklı bir içerik modeline sahiptir (temel olarak eklentiler için tasarlanmıştır), kendi uyarılar kümesine iframe
sahiptir ve öğenin sahip olduğu kumlama özellikleri yoktur .
Çerçeveler (çerçeve kümesi) belge işlevi görür. HTML belgelerinin yapısını ve gezinmesini bozduğu için kaldırıldı. Örneğin. bir çerçevede bağlantılarınız var, diğerinde içerik var, sayfadaki bağlantıyı yeni bir pencerede açamazsınız, belirli bir alt sayfaya bağlanamazsınız, vb.
Öte yandan, iframe'ler doğru kullanıldığında hiçbir şeyi bozmaz, çünkü bunlar içeriğe sandbox amaçlıdır (ör. Reklamlar).
Çerçeveler genellikle Web'in temel ilkesini bozacak şekilde kullanılır - her belgenin tek bir URL'si vardır. Bu bağlantı, yer imleri, arama motorları vb. Sorunlara yol açar.
Bir çerçeve kümesinin tipik kullanımı, üstünde logo veya başlık bulunan bir çerçeve, yanında menü bulunan bir çerçeve ve bir içerik çerçevesi olacaktır. Ancak arama motorları tek tek sayfaları indeksler, bu nedenle Google’da bir sayfa bulduğunuzda, çerçeve kümesi olmadan doğrudan içerik sayfasına bağlanır, böylece gezinmeyi kaybedersiniz. Bağlantılar ve yer imleri ile ilgili sorun, genellikle çerçeve kümesinin kendisini kaybetmeden, çerçeve kümesinin içindeki belirli bir içerik sayfasını bağlamak veya yer imlerine eklemek isteyebilirsiniz. Bunu yapmanın kolay bir yolu yok.
Çerçeve kümelerinin ilk başta popüler olmasının nedeni, statik konumlandırılmış bir başlığa ve kayan içerik alanına sahip bir menüye izin vermeleriydi. Ancak bu, bugün CSS ile çok daha kolay bir şekilde gerçekleştirilebilir. Ayrıca, herhangi bir sunucu tarafı kodlaması kullanmadan birden fazla sayfada logolar ve menüler gibi ortak öğeleri kullanmanıza izin verir. Bu, sunucu tarafı kodlamanın sıkıcı ve hataya açık (örneğin CGI betikleri) olduğu ve birçok ana bilgisayarın sunucu tarafı komut dosyası oluşturmasına izin vermediği bir zamanda bir avantajdı. Bugün İçerik Yönetim Sistemleri (CMS) ve daha iyi sunucu tarafı platformları ile sunucu tarafında daha iyi ele alınmaktadır.
Bu yüzden temel olarak bir çerçeve kümesi kullanmanın bir avantajı yok, sadece bir çok problem var.
IFrame'ler , çerçeve setlerinin kullanıldığı şekilde kullanılabilir ve bu durumda da aynı sorunlara yol açabilir. Ancak aynı sorunlara yol açmayan birçok iframe kullanımı da vardır.