【问题标题】:How to Count an UpdatePanel Progress?如何计算 UpdatePanel 进度?
【发布时间】:2011-07-18 17:37:35
【问题描述】:

我需要计算页面内 UpdatePanel 的渲染时间。 有人知道怎么做吗?

提前致谢。

【问题讨论】:

    标签: javascript asp.net ajax updatepanel


    【解决方案1】:

    您可以订阅 beginRequestendRequest 回调并计算它们之间的经过时间。

    function pageLoad() {
        var manager = Sys.WebForms.PageRequestManager.getInstance();
        if (manager != null) {
            manager.add_beginRequest(Request_Begin);
            manager.add_endRequest(Request_End);
        }
    }
    
    function Request_Begin(sender, args)
    {
        // TODO: start your timer here (new Date())
    }
    
    function Request_End(sender, args) {
        // TODO: get the current date and measure the difference
        // with theone obtained in the beginRequest
    }
    

    following thread 将帮助您实现我留在代码中的 TODO。

    【讨论】:

    • 是的,谢谢,但我仍然面临着那个问题。问题是JS日期计算,如你所说,我打开另一个线程并尝试使用毫秒格式计算它,但没有成功。
    • 如果可能的话,你能帮我解决这个问题吗? jsfiddle.net/felipekm/gaZVH
    • @FelipeKM,您是否阅读了以下主题:stackoverflow.com/questions/41948/…
    • 是的,我做到了,你能读一下我的小提琴吗? jsfiddle.net/felipekm/gaZVH/6
    • @FelipeKM,是的,我打开了你的小提琴。它有错误。例如alert(_dateDiff.); 不是有效的 javascript。
    【解决方案2】:

    首先我要感谢@Darin 的所有支持,太棒了! 有了@darin 的建议,我可以用下面的一些数学来设定我的目标:

        function get_time_difference(earlierDate, laterDate) {
        var nTotalDiff = laterDate.getTime() - earlierDate.getTime();
        var oDiff = new Object();
    
        oDiff.minutes = Math.floor(nTotalDiff / 1000 / 60);
        nTotalDiff -= oDiff.minutes * 1000 * 60;
    
        oDiff.seconds = Math.floor(nTotalDiff / 1000);
        oDiff.milliseconds = Math.floor(nTotalDiff * 1000);
    
        return oDiff;
    }
    
    var timeInit;
    var timeFinal;
    
    function pageLoad() {
        var manager = Sys.WebForms.PageRequestManager.getInstance();
        if (manager != null) {
            manager.add_beginRequest(Request_Begin);
            manager.add_endRequest(Request_End);
        }
    }
    
    function Request_Begin(sender, args) {
        timeInit = new Date();  
    }
    
    function Request_End(sender, args) {        
        timeFinal = new Date();
        var diff = get_time_difference(timeInit, timeFinal);
        alert('Minutes: ' + diff.minutes + '\nSeconds: ' + diff.seconds + '.' + diff.milliseconds);        
    }
    

    希望这对其他开发者有用。 谢谢!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-24
      • 2017-05-07
      相关资源
      最近更新 更多