【问题标题】:Displaying a spinner for a webservice call (Like UpdateProgress Control)显示 web 服务调用的微调器(如 UpdateProgress 控件)
【发布时间】:2010-10-05 11:40:51
【问题描述】:

现在,我有一个页面,不幸的是,其中混合了更新面板和从 javascript 调用 webservice web/script 方法。

我有一个更新进度控件,它显示更新面板活动的微调器。但是当我进行网络服务调用时,它不会显示出来。

您如何建议我解决这个可用性问题,因为用户体验需要保持一致。我应该挂钩每个 web 服务调用以隐藏和显示 updatecontrol 的 div 吗?

【问题讨论】:

    标签: javascript web-services asp.net-ajax updatepanel


    【解决方案1】:

    好吧,for initial page rendering and for synchronous postbacks, the UpdateProgress control is not displayed. 所以,请确保您的 UpdatePanel 正在异步更新。

    此外,在链接页面的底部,它会显示您必须拥有什么才能控制微调器何时出现。

    话虽如此,这是微软解决您问题的黄金途径。可能是 ASP.NET Ajax 库中某处存在阻止微调器显示的错误。

    如果您确实用尽了所有选项,请尝试自己做。如果您覆盖 beginRequest 和 endRequest JavaScript 方法,您可以控制微调器何时显示。我可能会将这些函数中的任何先前代码保存到如下变量中:

    function addLoadEvent(func)
    {
        var oldonload = window.onload;
        if(typeof window.onload != 'function')
        {
            window.onload = func;
        }
        else
        {
            window.onload = function()
            {
                oldonload();
                func();
            }
        }
    }
    

    现在,当然,这段代码用于向 window.onload 添加一个新函数,但同样的技术也适用于 beginRequest 和 endRequest。

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-05
      • 2012-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多