我使用 HttpHandler 在 ASP.Net Web 应用程序中动态提供图像。我遇到了性能问题(Firfox/Firebug/YSlow 报告 HttpRequest 太多)
在某些情况下,我每页有 50-100 张图像。3 个树视图(业务单位/类别/对象),每个节点都有自己的图像;)
每个项目的图像 url 都是这样动态设置的......
SomeImage.ImageUrl = "/image.axd?ImageId={0}";
注意:我只知道在运行时需要哪些图像。
附加:图像位于服务器文件系统、资源文件和数据库中 - 用户可以上传自己的图像以与我的系统对象相关联,ImageHandler 将动态确定每个图像位置)
在 web.config 中,httphandler 已配置并按预期工作...添加 verb="GET" path="image.axd" type="Vision.OnsightManager.ImageHandler"
在 HttpHandler 中,原始图像字节被返回以响应每个图像请求。所以在图像处理程序的 WriteResponse() 方法中,图像字节被返回,就像这样......
context.Response.BinaryWrite(字节);
所有图像都正确显示,但应用程序在显示许多图像时出现预期的性能问题......
问题:
除了减少图像数量 ;) 之外,您还推荐什么方法来最小化为每个图像生成的所有 HttpRequest?也许组合成一个 Http 请求?
我已经阅读了关于将多个 css 请求组合成一个请求、使用图像映射(带有偏移的单个组合图像)等的文章,但似乎没有一个适合我的特定场景?
非常感谢!