c# - ASP.NET - 在页面加载时显示消息

标签 c# asp.net javascript

我有一个页面在 page_load 方法中执行长时间运行的任务(10 到 15 秒)。

我有客户端 javascript 代码,可以向用户显示像样的“页面加载”动画 gif。

我能够从代码隐藏调用 JavaScript 方法,以显示“页面加载”动画 gif,但是,长时间运行的任务挂断了 UI,这样动画 gif 直到在长时间运行的任务完成后,这与我想要的完全相反。

为了对此进行测试,我在 page_load 方法中调用了 JavaScript 方法来显示动画 gif。然后,我使用 Thread.Sleep(10000)。发生的情况是动画 gif 直到 Thread.Sleep 完成后才显示。

显然我做错了什么。

如有任何建议,我们将不胜感激。

谢谢。

克里斯

下面是代码隐藏的例子:

protected void Page_Load(object sender, EventArgs e)
    {
        ClientScript.RegisterStartupScript
              (GetType(), "Javascript", "javascript: ShowWaitIndicator(); ", true);

        Response.Flush();

        Thread.Sleep(10000);
    }

最佳答案

我通过在页面上放置一个计时器来完成此操作。在第一次打勾后禁用它并运行你的任务。

<asp:Timer runat="server" id="UpdateTimer" interval="500" ontick="UpdateTimer_Tick" />

我根据需要将它放在 UpdatePanel 中。我不确定什么最适合你。然后在你的代码后面......

Protected Sub UpdateTimer_Tick(ByVal sender As Object, ByVal e As EventArgs)
        UpdateTimer.Enabled = False

        ' run method here

    End Sub

关于c# - ASP.NET - 在页面加载时显示消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3017135/

相关文章:

c# - 在.Net Core应用程序中设置数据库连接

c# - 文件路径不正确

javascript - 在 contenteditable 部分插入带有 div 和 span 标签的 HTML

c# - 搜索速度快、体积小的数据结构

c# - 捕获插件 UserControl 抛出的异常

ASP.NET 页面验证

javascript - 对输入应用掩码

javascript - 作为对象值发送的 HTML 字符串不会在客户端上呈现

c# - 如何尽可能高效地处理大量并发磁盘写请求

c# - WP7 应用程序永远不会退出 BeginGetResponse 并进入回调函数