繁体   English   中英

使用HttpHandler在ASP.Net网页中加载缩略图

[英]Loading Thumbnails in ASP.Net Web Page using HttpHandler

我的要求是在2秒内在Asp.Net Web应用程序中加载100张缩略图。 每个图像的实际大小约为800 KB。 因此,我使用了一个Web处理程序方法来即时调整图像大小(此处图像大小减小为8KB)。 在这里,我发现96个请求被发送到服务器,并且缩略图在4秒内被加载。 我发现90%的时间都在Firebug的“网络”标签中检查的阻止中丢失了。 因此,我从96个请求移至单个请求。 因此,Web处理程序接受单个请求并创建96个缩略图图像,然后将96个缩略图组合成一个大的单个图像并将该单个图像写入输出流中。这种情况下,我发现加载单个图像花费了大约6秒的时间。 然后我使用.Net线程池机制在Web处理程序中创建缩略图,因此加载时间减少到2.6秒,发现服务器处理实际上只花费了1秒或更少的时间,而剩下的1.6秒正在丢失。 我的问题如下

  1. 哪里浪费了我的处理时间。 服务器端还是客户端? 如果在服务器端,瓶颈在哪里? 如何确定请求处理和页面加载时间?

  2. Web处理程序是调整图像大小的更好方法吗?

  3. 我可以有其他替代解决方案吗?

我的系统配置是

处理器-Intel Core-i7,RAM:-4 GB

Web服务器:IIS 7

作业系统:Windows 7

请帮我

>在哪里浪费我的处理时间。 服务器端还是客户端?

也许介于两者之间...传输数据的正确时间为1.6秒:

8KB per image * 100 images ~= 1MB of data
1 M bytes = 8 M bits
8 M bits / 1.6 secs = 5 Mbps transfer rate
... sounds reasonable to within an order of magnitude

您的单映像方法可能更好,因为这将减少100个单独请求的开销。 但是,请注意在ASP.NET进程中使用后台线程。

传输时间是一个限制因素。 即使您可以使服务器立即做出响应,您仍然必须等待数据返回到客户端。

另一个限制因素是客户端浏览器可以渲染图像的速度。

基本上,您的要求正在突破实际ATM的界限。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM