Asp.net 无法使用HttpHandler、UpdatePanel和计时器更新映像

Asp.net 无法使用HttpHandler、UpdatePanel和计时器更新映像,asp.net,ajax,timer,updatepanel,httphandler,Asp.net,Ajax,Timer,Updatepanel,Httphandler,我正在ASP.NET中尝试使用HTTPHandler显示图像并每5秒更新一次。 此httphandler只是将当前时间渲染为位图。 在aspx端,图像位于ajaxupadtepanel中,我使用计时器每5秒刷新一次图像 我的问题是: 在IE9中,图像根本不会更新。我的HttpHandler只被请求一次 在chrome中,图像会被更新,但会“闪烁”,即每隔5秒,图像会被清除几秒钟,然后显示,然后再次清除,等等 出于调试目的,我还在UpdatePanel中添加了一个标签,由一个随机值填充。它在两

我正在ASP.NET中尝试使用HTTPHandler显示图像并每5秒更新一次。 此httphandler只是将当前时间渲染为位图。 在aspx端,图像位于ajaxupadtepanel中,我使用计时器每5秒刷新一次图像

我的问题是:

  • 在IE9中,图像根本不会更新。我的HttpHandler只被请求一次
  • 在chrome中,图像会被更新,但会“闪烁”,即每隔5秒,图像会被清除几秒钟,然后显示,然后再次清除,等等
出于调试目的,我还在UpdatePanel中添加了一个标签,由一个随机值填充。它在两种web浏览器中都得到了很好的更新

以下是我的aspx页面中的代码:

<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:Timer runat="server" ID="UpdateTimer" Interval="5000" OnTick="UpdateTimer_Tick" />
<asp:UpdatePanel runat="server" ID="TimedPanel" UpdateMode="Conditional">
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="UpdateTimer" EventName="Tick" />
    </Triggers>
    <ContentTemplate>
        <asp:Image ID="TheImage" alt="httpHandler" src="getImage.ashx?id=1" runat="server" />
        <asp:Label ID="Label" runat="server" Font-Size="XX-Large" ></asp:Label>
    </ContentTemplate>
</asp:UpdatePanel>
为了防止IE9Web浏览器缓存图像,我还尝试在每次在aspx.cs文件中调用计时器时更改ImageUrl,如下所示。但是,当页面第一次显示时,我的HttpHandler仍然只被调用一次:

protected void UpdateTimer_Tick(object sender, EventArgs e)
{
Label.Text = ((System.Environment.TickCount / 100.0) % 360).ToString("F2");
TheImage.ImageUrl = "getImage.ashx?id=" + System.Environment.TickCount.ToString();
}
我希望我的问题得到很好的解释。 我做错了什么

提前谢谢

一些建议:

  • Enabled=“True”
    添加到计时器中
  • 将源代码添加到您的getImage.ashx到您的帖子中
  • 中使用asp.net标记,如
    ImageUrl
    ,而不是本机html标记
  • 使用
    div
    代替
    img
    (即
  • 将UpdatePanel的更新模式更改为始终
    • 一些建议:

      • Enabled=“True”
        添加到计时器中
      • 将源代码添加到您的getImage.ashx到您的帖子中
      • 中使用asp.net标记,如
        ImageUrl
        ,而不是本机html标记
      • 使用
        div
        代替
        img
        (即
      • 将UpdatePanel的更新模式更改为始终

      我一个接一个地尝试了你的建议,我的IE9问题(图像未更新)通过用ImageUrl替换图像的src=得到了解决。非常感谢,好建议!图像现在已经更新,但在IE9中像在Chrome中一样以“闪烁”的方式。我仍然需要找到解决这个问题的方法。我一个接一个地尝试了你的建议,我的IE9问题(图像未更新)通过用ImageUrl替换图像的src=得到了解决。非常感谢,好建议!图像现在已经更新,但在IE9中像在Chrome中一样以“闪烁”的方式。我仍然需要找到解决这个问题的办法。
      protected void UpdateTimer_Tick(object sender, EventArgs e)
      {
      Label.Text = ((System.Environment.TickCount / 100.0) % 360).ToString("F2");
      TheImage.ImageUrl = "getImage.ashx?id=" + System.Environment.TickCount.ToString();
      }