【问题标题】:How to Send Status Updates to the User during Partial Update如何在部分更新期间向用户发送状态更新
【发布时间】:2009-05-23 22:41:57
【问题描述】:

我有以下几点:

  1. 母版页
  2. StatusDisplay - Ascx 用户控件显示在 PartialPostback 上的 MS AJAX 异常或在 beginRequest 到 endRequest 期间发生的更新
  3. 具有多级 .ascx Web 用户控件的页面,其中一些是动态加载的

目前,当更新面板中发生回发时,StatusDisplay 会显示“更新请求..”以及最后的异常。

我还想从 StatusDisplay 应该显示的不同位置发送特定的状态更新,例如“已添加客户”。目前,不知道其他控件中是否存在 StatusDisplay,我希望保持这种状态。

如何做到这一点?

【问题讨论】:

    标签: c# asp.net asp.net-ajax


    【解决方案1】:

    使用一种称为反向 ajax 的技术。反向 Ajax 允许服务器在内容可用时立即将内容推送到浏览器,这通常由 IFrame、响应刷新和处理回调的通用 javascript 函数的组合实现

    easy incremental status updates for long requests 是一篇关于这个主题的精彩文章。

    这里的示例实现依赖于这样一种假设,即其创建和刷新到客户端的 javascript 具有一个已附加到父窗口对象的 javascript 回调函数“UpdateProgress”(因为调用是在 IFrame 中进行的)。由于任务长时间运行,代码执行刷新到客户端并执行执行任何操作的 javascript 函数。

    protected void UpdateProgress(int PercentComplete, string Message)
    {
      // Write out the parent script callback.
      Response.Write(String.Format(
        "<script>parent.UpdateProgress({0}, '{1}');</script>", 
        PercentComplete, Message));
      // To be sure the response isn't buffered on the server.
      Response.Flush();
    }
    

    【讨论】:

    • goodlink,但无法理解它将如何与回发方案一起使用。
    • 您可以使用在回发完成时更新状态的客户端函数的想法,即渲染一个更新状态消息的脚本标记,(这可以抽象为一个基类,每个控制使用,或者您可以根据需要使用事件)
    猜你喜欢
    • 2020-02-25
    • 2010-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多