页面加载图片

时间:2009-03-06 17:56:15

标签: c# asp.net pageload

我正在制作一个ASP.NET网页,当它们没有被缓存时,它会从SQL生成页面。它们的加载时间可能在300毫秒到1.5秒之间(请不要修复数据库回复)。

我个人认为这些值太长,并且正在寻找一种解决方案,允许我通知用户他正在访问的页面需要一些时间来加载。

我正在寻找可以通过Page_Load函数的解决方案,如果可能的话。在这种情况下,对我来说完美的解决方案是向用户显示动画GIF或正在生成页面的文本。

另一方面,我来自编程主要是Windows应用程序。

3 个答案:

答案 0 :(得分:1)

您将要先输出加载图形,然后刷新输出缓冲区,以便使用Response.Flush()将目前为止的内容发送到用户的浏览器。

当您输出其余内容时,您需要在其中添加一些javascript以删除发送的第一页元素,以便加载图形消失。

答案 1 :(得分:1)

您可以开始渲染页面,并刷新调用Response.Flush()的缓冲区。这会将缓冲区的内容发送到浏览器。然后,您需要在加载后关闭图形。

另一个选择是使用AJAX加载图像,因此您加载整个页面,没有图像,然后在另一个请求中获取图像。这可能比尝试渲染部分页面更容易。

加载页面1.5秒也不错,你确定这值得花时间和精力吗?

答案 2 :(得分:1)

以下是如何使用Response对象将内容刷新到浏览器并继续处理的示例:

using System;
using System.Web.UI;
using System.Threading;

public partial class _Default : Page
{
    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e);

        Response.Write("<h1>please wait...</h1>");
        Response.Flush();

        // simulate load time
        Thread.Sleep(2000);

        Response.Write("<h1>finished</h1>");
    }
}