如何在预定义的时间后使用JavaScript停止计时器?

时间:2014-10-29 07:59:42

标签: javascript asp.net timer

我正在开发一个基于网络的应用程序,即LMS Learning Management System。在这个应用程序中,学生可以阅读章节并对这些章节进行测试。并且为了阅读章节,特定时间被分配给用户capturing using the timer tick。在阅读本章时,captcha(即在aspx页面中开发)在每12 minutes之后出现。现在我希望当阅读时,timer should get paused在访问窗口时,当用户提交验证码计时器时,从它离开上一个标记的位置获取resumed。为此,我尝试了使用javascript的解决方案,但它没有工作。

这是我尝试过的编码器

<script type="text/javascript">


        function startTimer() {
            var timer = $find("<%=Timer1.ClientID%>")
            timer._startTimer();
        }

        function stopTimer() {
            var timer = $find("<%=Timer1.ClientID%>")
            timer._stopTimer();
        }

        function showCaptchaOnChapter() {
            //stopTimer();
            ShowNewPage();

            setTimeout('showCaptchaOnChapter()', 120000);
            stopTimer();
        }
        function showRandomQuestionOnChapter() {
            ShowChapterQuestion();
            setTimeout('showRandomQuestionOnChapter()', 900000);
        }
        //setTimeout('showCaptchaOnChapter()', 360000);
        //setTimeout('showRandomQuestionOnChapter()', 120000);
    </script>

ShowNewPage()

的定义
function ShowNewPage() {
    var callbackFunctionArray = new Array(CloseCaptchaPopUp);
    modalWin.ShowURL('Captcha.aspx', 225, 290, 'Please enter characters dislayed in image to proceed', null, callbackFunctionArray);

}

在这个脚本中,我将Captcha到达时间设置为2分钟,这样我可以更快地测试。 Captcha以规则的间隔出现,即2分钟,但计时器不会停止。 我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

超时后显示验证码并启动其他超时。

function showQuestion() {
    updateTimer();
    getQuestion();
    setTimeout(showCaptcha, time);
}

function showCaptcha() {
   getCaptcha();
   //some listener for submitting of captcha eg:submitCaptcha
}

function submitCaptcha() {
    if captcha===correct
         showQuestion();
}