在调用函数时放置setInterval

时间:2010-12-15 23:00:39

标签: javascript settimeout setinterval

var now = new Date();
var millisTill10 = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 1, 20, 00, 0) - now;

function openAPage() {
    var startTime = new Date().getTime();
    var myWin = window.open("http://google.com","_blank")
    var endTime = new Date().getTime();
    var timeTaken = endTime-startTime;

    document.write("<br>button pressed@</br>")
    document.write(startTime);
    document.write("<br>page loaded@</br>")
    document.write(endTime);
    document.write("<br>time taken</br>")
    document.write(timeTaken);

    myWin.close()
}

function beginSequence() {
    openAPage();
    setInterval(openAPage, 5000);
}

setTimeout(beginSequence, millisTill10);

这是我的js代码..我正在打开一个带有setTimeout的网页,如你所见..但之后我想放一个内部例如我将在setTimeout语句后每1分钟调用一次openAPage函数..我将如何做到了吗?任何人都可以修复我的代码吗?

2 个答案:

答案 0 :(得分:2)

setTimeout(startOpeningPages, millisTill10);

function startOpeningPages() {
   openAPage();
   setInterval(openAPage, 60 * 1000);
}

答案 1 :(得分:0)

我意识到已经有很多正确的答案。无论如何,我会发布这个踢:)

function() {
   var win = window.open("about:blank")
   var doc = win.document
   doc.write("Hello")
   setTimeout(arguments.callee, 60*1000)
}()

这些是我在Javascript中可以做的两件我喜欢的事情:自我调用函数(函数声明后的结束(),并且能够通过{{从函数内部访问匿名函数) 1}}。

这比arguments.callee好,因为第一个过程必须完成然后 60秒后,第二个过程开始。使用setInterval,该过程每60秒开始一次。 60s是一个很大的间隔,这对于无关紧要,但这通常对于较小的时间(在ms范围内)更重要。因为它可能最终缓冲第二个函数在第一个函数完成之前执行。