Chúc mừng!ASPX Trả về một hình ảnh - đầu ra Cache-có thể?
Tôi đã tạo biểu mẫu web APSX trả về hình ảnh từ xa dựa trên một số thông số được cung cấp. Nó có thể được sử dụng như thế này: đánh dấu và mã
<img src="/ImageGetter.aspx?param1=abc¶m2=123" />
ImageGetter.aspx nhìn tương tự như sau:
<%@ OutputCache Duration="100000" VaryByParam="*" Location="ServerAndClient" %>
<%@ Page Language="C#" AutoEventWireup="false" EnableSessionState="False" CodeBehind="ImageGetter.aspx.cs" Inherits="ACME.Helpers.ImageGetter" %>
Mã này được gọi là trong phương pháp Page_Load ImageGetter.aspx của:
byte[] data = null;
Dictionary<string, string> file_locations = GetImageLocations(param1, param2);
try
{
data = new WebClient().DownloadData(file_locations["main"]);
}
catch (WebException wex)
{
try
{
data = new WebClient().DownloadData(file_locations["backup"]);
}
catch (Exception e)
{
throw;
}
}
Response.ContentType = "image/jpeg";
Response.OutputStream.Write(data, 0, data.Length);
Response.End();
Từ thử nghiệm của tôi, nó không xuất hiện để được bộ nhớ đệm. Điều này có thể làm với đầu ra Caching hoặc tôi nên nghỉ mát để viết bộ nhớ cache của riêng tôi để lưu trữ các mảng byte tùy thuộc vào paramters chuỗi truy vấn?
rơi Response.End nào đó làm chậm nó xuống thậm chí nhiều hơn như vậy. – Bullines
... bởi vì bây giờ nó nhảy qua hoops cache? – Codebrain