Programlı PHP görüntüleri birleştirerek

2 Cevap php

Ben web siteleri hızlandırmak için Yahoo'nun recommendations büyük bir hayranı değilim. Önerilerden biri de mümkünse boyut ve isteklerin sayısını azaltmak görüntüleri birleştirmektir. Ancak, bu düzenleri için CSS sprite kullanımı kolay olabilir iken, diğer görüntü kullanımları kolayca kombine olmadığını fark ettik. Ben düşünüyorum birincil örnek, her blog ya da makale de onunla ilişkili bir imaja sahip bir blog ya da makale listesi vardır. Bu imajlar büyük ölçüde onlar optimize değil, özellikle eğer, yükleme süresi ve sayfa boyutunu etkileyebilir. Ben kavram ya da uygulamada, arıyorum, ne PHP kullanarak bir kaybı daha az sıkıştırma yoluyla çalışırken dinamik olarak bu görüntüleri birleştirmek için bir yoldur.

Birkaç eklendi düşünce veya endişeleri:

  • Combining the images and generating a dynamic CSS stylesheet to position the backgrounds of the images might be one way to go about it, but I also worry about accessibility and semantics. As far as I understand, CSS images should be used for layout elements and the img tag (with the alt attribute) should be used for images that are meant to convey information. I could set the image as a background to a div element and substitute a title attribute for the alt attribute, but I'm unsure about the accessibility and semantic implications of doing so.
  • Might the GD library be a good candidate for something like this? Can you recommend other options?

2 Cevap

Ben olsam bu rota aşağı gitmek değildir. Tabii, isteklerinin sayısını azaltarak protokol yükü birkaç byte kazanmak olabilir, ama bu daha-tha-muhtemelen kendi kendini mağlup olmak kadar sona erecekti.

Imagine this scenario: A blog site, whose front page has 10 articles at a time. Each article has it's own image associated with it. To save a byte or two of transfer time, you programatically create a composite image of all 10 article images. You now have one of two problems.

  1. Sen en son 10 görüntülerin içeriğinin değiştirilmiş bir dizi olacak gibi yeni bir yazı, yapılan her zaman kompozit görüntü güncellemeniz gerekir.
  2. Sen anında, yeni bir kompozit her isteği oluşturmak için karar.

Açıkçası, 1. burada tercih edilir, ve uygulamak zor olmaz. Ancak, ne tüm mesajların için bir kullanıcı arama kelimesi "SQL" ile etiketlenmiş olur? Zaten bu basit sorgu için oluşturulan ilk 10 sonuç bir kompozit görüntü şöyle dursun, daha karmaşık bir olması olası değildir. Bir görüntüyü güncellemek veya silmek istiyorsanız Ayrıca, ne olur? Bir kez daha kompozit arka plan oluşturulmasını tetiklemek gerekiyor.

Nasıl Google Reader gibi bir RSS toplayıcı, ne dersiniz? Bu göstermek gerekir hangi bir kompozit görüntü bölümü anlamaya gerekli mantığı olmazdı, ve muhtemelen tam görüntüyü görüntülemek olacaktır. (Ben çok nadiren doğrudan blog sitelerini ziyaret çünkü Reader gibi bir RSS toplama hizmetine güven eğilimi, Google Reader söz)

Benim olsaydı, ben yalnız tek görüntüleri terk ediyorum. Modern bağlantı hızları ile ek bant genişliği yükü ve on-sunucu işlem süresi arasındaki tradeoff sizi ve büyük kazançlar kazanmak mümkün değildir.

Yine de bu rota aşağı gitmek için karar verirseniz, ben GD kütüphanesi başlamak için mükemmel bir yer olduğunu söyleyebilirim, o söyledikten sonra.

Neredeyse kesinlikle onları birleştirmek daha makalelerinde görüntülerin dosya boyutu azaltarak daha iyi olurdu. Ben size önermek yöntemi ile erişilebilirlik sorunları olabileceğini kabul ediyorum. Bu görüntüleri birleştirerek ve her sayfa yük için CSS üreten düşünüyorsanız, siz de bu ortalama bağlantı hızları ile kullanıcılar için daha yavaş sayfa yükleme süreleri sonuçları olduğunu bulabilirsiniz - Ayrıca, ben bu "dinamik" demek ne bağlıdır varsayalım .

İkinci noktaya gelince, GD kesinlikle ele verebilir. Sayfa yükleme sürelerini azaltmak için GD daha iyi kullanılması değil sayfa yükte, makale oluşturma sırasında, filesizes azaltmak için makale görüntülerin görüntü kalitesini azaltarak olabilir.