Pozdrowienia!ASPX, który zwraca obraz - możliwe buforowanie danych wyjściowych?
Utworzono formularz internetowy APSX, który zwraca obraz zdalny na podstawie niektórych dostarczonych parametrów. Może być stosowany tak: adiustacji i kod
<img src="/ImageGetter.aspx?param1=abc¶m2=123" />
ImageGetter.aspx wyglądają podobnie do tego:
<%@ OutputCache Duration="100000" VaryByParam="*" Location="ServerAndClient" %>
<%@ Page Language="C#" AutoEventWireup="false" EnableSessionState="False" CodeBehind="ImageGetter.aspx.cs" Inherits="ACME.Helpers.ImageGetter" %>
Kod ten jest nazywany w ImageGetter.aspx w metodzie Page_Load:
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();
Z moich testów nie wygląda na buforowanie. Czy można to zrobić z buforowaniem wyjściowym, czy też powinienem napisać własną pamięć podręczną, aby przechowywać tablice bajtów w zależności od parametrów ciągów zapytania?
spada Response.End jakoś spowalnia go jeszcze bardziej. – Bullines
... ponieważ teraz przeskakuje przez obręcze pamięci podręcznej? – Codebrain