Görsel o kadar büyük değilse ve iyi bir şans varsa, görseli sık sık yeniden kullanacaksınız ve çok fazla görseliniz yoksa ve görseller gizli değilse (yani büyük değil bir kullanıcı potansiyel olarak başka birinin resmini görebilirse) ...
Pek çok "eğer" buradaysa, bunun kötü bir fikir olma ihtimali yüksek:
Görüntü baytlarını Cache
kısa bir süre için saklayabilir ve bir işlem yöntemine işaret eden bir görüntü etiketi yapabilirsiniz, bu da önbellekten okuyup görüntünüzü tükürür. Bu, tarayıcının resmi uygun şekilde önbelleğe almasına izin verecektir.
// In your original controller action
HttpContext.Cache.Add("image-" + model.Id, model.ImageBytes, null,
Cache.NoAbsoluteExpiration, TimeSpan.FromMinutes(1),
CacheItemPriority.Normal, null);
// In your view:
<img src="@Url.Action("GetImage", "MyControllerName", new{fooId = Model.Id})">
// In your controller:
[OutputCache(VaryByParam = "fooId", Duration = 60)]
public ActionResult GetImage(int fooId) {
// Make sure you check for null as appropriate, re-pull from DB, etc.
return File((byte[])HttpContext.Cache["image-" + fooId], "image/gif");
}
Bu, satır içi görüntülerin IE7'de (veya 32kB'den büyükse IE8'de) çalışmadığı eski tarayıcılarda çalışmanın ek bir yararı (veya koltuk değneği mi?) Vardır.