我正在制作一个ASP.NET网页,当它们没有被缓存时,它会从SQL生成页面。它们的加载时间可能在300毫秒到1.5秒之间(请不要修复数据库回复)。
我个人认为这些值太长,并且正在寻找一种解决方案,允许我通知用户他正在访问的页面需要一些时间来加载。
我正在寻找可以通过Page_Load函数的解决方案,如果可能的话。在这种情况下,对我来说完美的解决方案是向用户显示动画GIF或正在生成页面的文本。
另一方面,我来自编程主要是Windows应用程序。
答案 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>");
}
}