চিত্রটি যদি বড় না হয় এবং যদি খুব ভাল সুযোগ থাকে তবে আপনি প্রায়শই চিত্রটি পুনরায় ব্যবহার করতে পারবেন এবং যদি আপনার খুব বেশি না থাকে এবং যদি চিত্রগুলি গোপন না থাকে (মানে এটি কোনও বড় নয়) যদি কোনও ব্যবহারকারী সম্ভাব্যভাবে অন্য ব্যক্তির চিত্র দেখতে পারে তবে লেনদেন করুন ...)
এখানে প্রচুর "যদি" থাকে, সুতরাং এটির একটি ভাল ধারণা এটি একটি খারাপ ধারণা:
আপনি Cache
অল্প সময়ের জন্য ইমেজ বাইটগুলিতে সঞ্চয় করতে পারেন এবং কোনও ক্রিয়া পদ্ধতির দিকে ইঙ্গিত করে একটি চিত্র ট্যাগ তৈরি করতে পারেন, যা ফলশ্রুতিতে ক্যাশে থেকে পড়ে এবং আপনার চিত্রটি ছড়িয়ে দেয়। এটি ব্রাউজারটিকে যথাযথভাবে চিত্রটি ক্যাশে করার অনুমতি দেবে।
// 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");
}
পুরানো ব্রাউজারগুলিতে কাজ করার এটির অতিরিক্ত সুবিধা (বা এটি ক্রাচ?) রয়েছে, যেখানে ইনলাইন চিত্রগুলি আই 7 (বা 328 বিবি এর চেয়ে বড় যদি আইই 8) তে কাজ করে না।