使用setInterval时保留上下文

时间:2015-04-12 03:44:05

标签: javascript user-controls setinterval

我有一个用户控件,里面有一个计时器。使用用户控件本身内的javascript每5秒更新一次计时器。在运行时,会创建一些用户控件实例。我将它们放在更新面板中。当只有一个用户控件实例时,计时器工作正常。但是当有多个实例时,只有最后一个实例每5秒更新一次。早期的实例没有得到更新。

这是我的javascript:

var start = new Date('<%=session.startTime%>');
var stat = '<%=session.status%>'

UpdateValues();
AutoUpdateValues();

function AutoUpdateValues(){
    setInterval(function () {
        UpdateValues();
    }, 5000);
}

function UpdateValues() {
    //update time elapsed
    var totalSec = Math.ceil((new Date() - start) / 1000); //time elapsed in seconds
    var hr = Math.floor(totalSec/3600);
    var min = Math.floor((totalSec % 3600)/60);
    var sec = totalSec % 60;
    if (stat == 2) {
        $('#<%=lblTimeElapsed.ClientID%>').text(hr + "h " + min + "m " + sec + "s" );
    }
}

我读到了将上下文传递给我的方法here的用法,但我不知道如何在我的代码中实现它。 有什么帮助吗?感谢

0 个答案:

没有答案