在Page_Load完成之前显示图像/ HTML

时间:2011-06-22 04:23:38

标签: asp.net vb.net

我在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完成后。如何处理?

2 个答案:

答案 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