我一直在迁移 .NET 2.0 Web 表单应用程序以使用 .NET 3.5 和新的基础架构。UpdatePanel 中有一个 GridView,其中包含一个 Actions 列,其中包含为该行执行操作的图标。我在 IE 6 中遇到的一个问题是图像没有缓存。这在 Actions 列上尤为明显,因为要加载 9 个图标 x 100 行 = 900 个图标。Internet Explorer 从 900 个开始对这些图像进行倒计时,直到它们全部加载完毕。
这个问题似乎并不局限于 UpdatePanel 内的 GridView 内的图像,因为我可以看到每次刷新页面时都会重新加载标题图像。
我做了我的研究:
- 任何人都有解决 Internet Explorer 上“剩余 n 项”问题的想法吗?- 这是一个不同的问题。
- 亲爱的 IE6:请缓存我的图片。- 我确实认为这会解决所有问题,但没有。我尝试将图像设置为 div 内的背景图像,但没有成功。我还尝试将所有图标放在用户控件中,并在加载 GridView 之前将其包括在内。
- 我有一个旧的基础架构(不存在这个问题)来比较 IIS 配置,它们完全相同。
- 使用 Fiddler,我可以沮丧地看到每个请求的图像。缓存头是
Cache-Control: private
. 刚刚在这个缓存头中注意到Date: Tue, 29 Mar 2011 07:35:53 GMT
(这是一个小时前)。这有什么关系吗? - 此缓存问题似乎是间歇性的。我将第一次加载页面,不会缓存任何图像,因此将独立加载约 1000 张图像。我可能会刷新页面并缓存图像。如果我删除所有临时文件/离线内容,则图像将再次独立加载。
- 起初我认为这只发生在将应用程序部署到新的基础设施时(请求是跨林的),但是当所有图像都是本地的时,它也确实发生在我的本地机器上。
- 这只是 IE 6 中的问题!!!
如果我可以提供其他信息,请告诉我。
更新 1
已经尝试但没有成功的解决方法:
- @Afshin Gh 提出的处理程序解决方案。更新 2答案中的代码确实有效。之前必须尝试过不同的版本。
- @Blue Steel 提出的隐藏图像解决方案。
更新 2
其他一些解决方案可能在这里有效,但我使用了@Afshin Gh 提供的代码。