我正在ASP.NET中构建一个基于AJAX的prettyphoto库。
我所做的是显示一组缩略图,同时点击每个缩略图我发布了一个AJAX请求,根据缩略图,我得到了一些URL并显示了漂亮照片库。一切都很好。但
让我解释一下。
Thumbnail1 Thumbnail2 Thumbnail3
Thumbnail4 Thumbnail5 Thumbnail6
Thumbnail7 Thumbnail8 Thumbnail9
....
当我们点击Thumbnail1时,它会发布一个AJAX请求,并获得一些这样的网址。
"../GalleryHandler.ashx?id=0"
"../GalleryHandler.ashx?id=1"
"../GalleryHandler.ashx?id=2"
"../GalleryHandler.ashx?id=3"
"../GalleryHandler.ashx?id=4"
我根据点击的缩略图和id对GallerHandler.ashx进行一些检查,并将相应的图像作为webservice的输出。问题是如果我单击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的新手,所以指导我,即使我错了,误解了。感谢。
答案 0 :(得分: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"