У меня есть страница aspx, но весь контент создается руками (да, я знаю, что мне нужно создать обработчик, у меня есть другой вопрос)
Я хочу кэшировать вывод в клиентском браузере. Проблема в том, что он кэшируется только для одного запроса.
public static void ProceedCaching(string etag, string lastModify, string response, HttpResponse Response,
HttpRequest Request)
{
Response.AddHeader("ETag", "\"" + etag + "\"");
Response.AddHeader("Last-Modified", lastModify);
Response.AppendHeader("Cache-Control", "Public");
Response.AppendHeader("Expires",
DateTime.Now.AddMinutes(1).ToUniversalTime().ToString("r",DateTimeFormatInfo.InvariantInfo));
string ifModified = Request.Headers["If-Modified-Since"];
if (!string.IsNullOrEmpty(ifModified))
{
if (ifModified.Contains(";"))
ifModified = ifModified.Remove(ifModified.IndexOf(';'));
}
string incomingEtag = Request.Headers["If-None-Match"];
if (String.Compare(incomingEtag, etag) == 0 || string.Compare(ifModified, lastModify) == 0)
{
Response.StatusCode = 304;
Response.End();
}
Response.Write(response);
Response.End();
}
это стало очень грязным.
Как я уже сказал, он кэшируется только один раз. После получения HTTP 304 браузер отправит чистый запрос без кэширования информации (etag, lastmodified).
Есть идеи?