好的,这是一个问题,我有一个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网络进行检查,缓慢加载图像的DNS查找、连接和发送几乎都是1ms,接收到200或300 is,但是等待需要8秒或9秒。
我认为这是因为IO,但为什么大多数图像都是快速的,只是一些随机的,任何帮助。我真的很感激。
发布于 2012-03-14 00:31:51
因为您使用的是.aspx页面(而不是处理程序),而且由于浏览器加载的图像不是一个接一个,而是多个一起加载,所以我怀疑您对页面的会话锁有感觉,这就是延迟的原因。
尝试在页面上设置EnableSessionState="false"。
例:
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs"
AutoEventWireup="false" Inherits="WebApplication1.WebForm1"
EnableSessionState="false" %>顺便说一句,如果您将aspx页面更改为处理程序页面,您将获得更高的速度,因为处理程序页没有进行通常页面所做的所有调用。
https://stackoverflow.com/questions/9694117
复制相似问题