Asp.net 无法使用HttpHandler、UpdatePanel和计时器更新映像
我正在ASP.NET中尝试使用HTTPHandler显示图像并每5秒更新一次。 此httphandler只是将当前时间渲染为位图。 在aspx端,图像位于ajaxupadtepanel中,我使用计时器每5秒刷新一次图像 我的问题是: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中添加了一个标签,由一个随机值填充。它在两
- 在IE9中,图像根本不会更新。我的HttpHandler只被请求一次
- 在chrome中,图像会被更新,但会“闪烁”,即每隔5秒,图像会被清除几秒钟,然后显示,然后再次清除,等等
<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标记,如
,而不是本机html标记ImageUrl
- 使用
代替div
(即img
) - 将UpdatePanel的更新模式更改为始终
- 将
添加到计时器中Enabled=“True”
- 将源代码添加到您的getImage.ashx到您的帖子中
- 在
中使用asp.net标记,如
,而不是本机html标记ImageUrl
- 使用
代替div
(即img
) - 将UpdatePanel的更新模式更改为始终
- 一些建议:
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();
}