在http请求之前制作真正的Splash Screen

时间:2011-10-19 08:27:37

标签: c# asp.net splash-screen

我需要制作一个C#启动画面,它将在调用default.aspx之前启动。

当我浏览到我的URL时,我可以看到IE 8.0消息waiting for http://xxxxx,其中有一个空白屏幕,并且在一段时间内我的第一页已满载。我如何处理\拦截该消息,以便在建立连接之前显示我的启动画面?

我尝试过使用HttpListener,但似乎不是正确的方法。

2 个答案:

答案 0 :(得分:1)

在浏览器与您的网站联系之前,您无法展示您的网站内容。

可以做的是在您网站的根目录下拥有一个轻量级的启动页面(可以快速加载),然后重定向到更重的“真实”页面。

答案 1 :(得分:0)

您可以关闭输出缓冲以执行您要求的操作,但“等待代码”中的内容不得使用任何其他正在加载的资源。沟通也会变得更加健谈。

的aspx页:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="BufferingResponse.Default" %>

<!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">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        Waiting...
    </div>
    </form>
</body>
</html>

代码背后:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace BufferingResponse
{
    public partial class Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Context.Response.BufferOutput = false;

            // simulate some work...
            System.Threading.Thread.Sleep(5000);

            Response.Write("<div>Another response five seconds later...</div>");
        }
    }
}