0

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

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

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

顺便说一句,我主要从事 Windows 应用程序的编程。

4

3 回答 3

1

您将需要首先输出加载图形,然后刷新输出缓冲区,以便使用Response.Flush().

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

于 2009-03-06T18:01:08.063 回答
1

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

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

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

于 2009-03-06T18:04:51.067 回答
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>");
    }
}
于 2009-03-06T18:07:52.837 回答