我在aspx中有以下代码
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="test.aspx.vb" nherits="test" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server"></head>
<body>
<img src="images/loading_anim.gif" />Please wait...
</body>
</html>
在test.aspx.vb
中Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
......Do some processing here .
Response.redirect("Next.aspx")
End Sub
Code Behind我在Page_load方法中进行一些处理并重定向到其他页面,但可能需要一些时间,所以我想显示用户加载图像。但它显示在page_load完成后。如何处理?
答案 0 :(得分:2)
我建议您使用通用处理程序(ashx)并使用非缓冲响应。例如:
public class Handler : IHttpHandler
{
public void ProcessRequest (HttpContext context)
{
context.Response.BufferOutput = false;
context.Response.Write("<html><head></head><body><img src=\"images/loading_anim.gif\" />Please wait...</body></html>"
context.Response.Flush();
// do your processing
...
// redirect
}
...
}
另一种首先在客户端显示图像(使用java脚本)然后从客户端重定向(或发布)的方法。
答案 1 :(得分:0)
我认为它不会起作用,因为服务器端代码总是先工作,然后才开始HTML渲染。更好的选择是使用Ajax。
此处有更多详情:ASP.NET Integration with IIS 7