调用aspx页面随机返回图像慢

时间:2012-03-14 00:07:50

标签: asp.net performance image

好的,这是问题,我有一个asp.net网站,有一个名为GetThumbnail.aspx的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">

好的,问题是,每次在生产服务器上,必须有几个图像加载非常慢,比如平均1秒内加载8个图像,但是2个图像加载需要7或9秒。所有的图像都很小,而且不需要调整大小,我用firebug Net来检查,慢速加载图像的DNS查找,连接和发送都差不多1ms,接收是200或300ms,但等待需要8或9秒。

我认为这是因为IO,但为什么大多数图像都很快,只是一些随机,任何帮助。我真的很感激。

1 个答案:

答案 0 :(得分:4)

因为你使用 .aspx 页面(而不是处理程序),并且因为浏览器加载的图像不是一个接一个,而是多个一起加载,我怀疑你感觉在会话锁定页面,这就是延迟的原因。

尝试在页面上设置EnableSessionState="false"

例如:

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

顺便说一句,如果你将aspx页面更改为一个处理程序页面,你将获得更快的速度,因为处理程序页面没有完成正常页面所做的所有调用。

相关问题