вызвать страницу aspx, чтобы случайно вернуть изображение - PullRequest
3 голосов
/ 14 марта 2012

ОК, вот вопрос, у меня есть сайт asp.net, есть страница aspx с именем GetThumbnail.aspx, код такой, как показано ниже:

string newThumbnailPath = ReaderUtilities.GetThumbnailPath(ptiId, highQuality ? ZoomLevel.L : ZoomLevel.S);
Response.Clear();
if (File.Exists(newThumbnailPath))
{
  Response.ContentType = "image/jpg";
  Response.TransmitFile(newThumbnailPath);
}

Вот и все. новый newThumbnailPath - это общий сетевой ресурс, обычно такой как D: \ ImagesCache \ 000 \ 0001 \ 000123 \ 000123456 \ 000123456-sml-1.jpg

Затем на моем веб-сайте есть searchResult.aspx, когда пользователь вводит ключевое слово для поиска, я отображаю страницу searchresult.aspx, внутри searchResult.aspx я отображаю 10 изображений, код которых приведен ниже:

<img rel="429746" src="/GetThumbnail.aspx?p=429746" class="cover-img draggable">

ОК, вопрос заключается в том, что каждый раз на производственном сервере необходимо загружать несколько изображений очень медленно, скажем, 8 изображений загружаются в среднем в течение 1 секунды, но для загрузки 2 изображений требуется 7 или 9 секунд. Все изображения маленькие, и им не нужно изменять размер, я использовал Firebug Net для проверки, DNS-поиск медленных загрузок изображений, подключение и отправка - почти 1 мс, прием - 200 или 300 мс, но ожидание занимает 8 или 9 секунд.

Я думал, что это из-за ввода-вывода, но почему большинство изображений быстрые, только некоторые и случайно, любая помощь Я действительно ценю это.

1 Ответ

4 голосов
/ 14 марта 2012

Поскольку вы используете страницу .aspx (а не обработчик) и поскольку изображения загружаются браузером не одно за другим, а многими вместе, Я подозреваю, что вы почувствовали блокировку сеанса страницы, и именно поэтому эта задержка.

Попробуйте установить EnableSessionState="false" на странице.

Например:

<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" 
    AutoEventWireup="false" Inherits="WebApplication1.WebForm1" 
     EnableSessionState="false" %>

Кстати, если вы измените страницу aspx на страницу обработчика, вы увеличите скорость, потому что страница обработчика не выполняла все вызовы, которые делает обычная страница.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...