1

我正在 ASP.NET 中构建一个基于 AJAX 的漂亮照片库。

我所做的是显示一组缩略图,在单击每个缩略图时我发布一个 AJAX 请求,根据缩略图我得到一些 URL 并显示漂亮的照片库。一切准备就绪。但。

让我解释。

Thumbnail1       Thumbnail2         Thumbnail3
Thumbnail4       Thumbnail5         Thumbnail6
Thumbnail7       Thumbnail8         Thumbnail9
....

当我们单击 Thumbnail1 时,它会发布一个 AJAX 请求并获取一些这样的 url。

"../GalleryHandler.ashx?id=0"
"../GalleryHandler.ashx?id=1"
"../GalleryHandler.ashx?id=2"
"../GalleryHandler.ashx?id=3"
"../GalleryHandler.ashx?id=4"

我根据单击的缩略图和 id 对 GallerHandler.ashx 进行一些检查,并提供适当的图像作为 Web 服务的输出。问题是如果我单击 Thumbnail2 并返回一些类似这样的 URL

"../GalleryHandler.ashx?id=0"
"../GalleryHandler.ashx?id=1"
"../GalleryHandler.ashx?id=2"
"../GalleryHandler.ashx?id=3"
"../GalleryHandler.ashx?id=4"
"../GalleryHandler.ashx?id=5"

所以当prettyPhoto画廊弹出和显示画廊它显示从id0到id4的旧图像甚至没有去ashx页面检查(我放置断点并检查)并显示Thumbnail1的旧图像,但是对于id5它去ashx 页面并正确获取新图像。

在一些谷歌之后,我尝试将它放在“ProcessRequest”中。

    context.Response.Clear();
    context.Response.Cache.SetCacheability(HttpCacheability.Public);
    context.Response.Cache.SetExpires(DateTime.MinValue);

但它不会解决问题,但 Chrome 会正确显示我期望其他浏览器显示的内容,就像我解释的那样。

我是这个 httphandler 的新手,所以即使我错了和误解也请指导我。谢谢。

4

1 回答 1

0

通过像这样向图像链接添加一个额外的参数来解决这个问题,以避免浏览器缓存。

"../GalleryHandler.ashx?id=0&uniqueGalleryID=1"
"../GalleryHandler.ashx?id=1&uniqueGalleryID=1"
"../GalleryHandler.ashx?id=2&uniqueGalleryID=1"
"../GalleryHandler.ashx?id=3&uniqueGalleryID=1"
"../GalleryHandler.ashx?id=4&uniqueGalleryID=1"
于 2013-01-30T08:52:03.803 回答