2009-06-11 53 views
1

我有一个应用程序为给定的用户ID拉出图像。我有一个AJAX TabContainer控件中的更新面板嵌套的图像标签。我将ImageUrl设置为“〜/ ImageHandler.ashx”,ImageHandler.ashx从会话变量userID中抓取用户的ID。AJAX HTTPHandler没有更新图像

我的问题是这样的:当第一个用户加载正确的图像被拉,但后续用户不拉出新的图像。来自第一个用户的图像仍然存在。所以看起来好像imageUrl在第一个用户被加载并且不再被触摸时被设置。如何每次获得新用户时更新映像?

+0

它是在同一浏览器会话中更改的用户吗? – RSolberg 2009-06-11 16:02:04

回答

2

这听起来像您的浏览器正在缓存。也许尝试将ImageUrl设置为'〜/ ImageHandler.ashx?user = <%= userId%>'或类似的东西。我假设你的ImageHander.ashx会忽略参数,但浏览器会认识到URL是不同的,所以会尝试为每个新用户再次获取它。

+0

这工作很好。我将ImageUrl设置在代码后面,并使用您建议的url,并且它现在可以完美运行!非常感谢! – swolff1978 2009-06-11 16:15:01

0

使用FireBug检查新图像是否被请求。如果没有,那么确保ImageHandler.ashx返回的图像没有被缓存。您可以通过查看FireBug中的标题参数来执行此操作。您希望响应立即过期,或者确保将其设置为无缓存。

不同的编程范例有不同的设置标题的方法。另外,通过检查FireBug中的网络流量,您将知道问题的原因。已经建议使用简单的解决方案来使用查询参数使每个呼叫都是唯一的。

0

它帮了我很多。 我有同样的问题。 我正在从会话 显示来自mermorystream的图像U刚刚清除缓存&它的工作。