如何setTimeout只有1次循环?

时间:2013-05-02 15:34:22

标签: javascript

如何setTimeout只有1次循环?

这段代码永远循环,我只希望它只循环一次。

这是我的代码:

<html>
<head>
<script language="JavaScript" type="text/javascript">
function doStuff() {
    document.myform.submit();
}
var myTimer = setTimeout(doStuff, 1000);
</script>
</head>
<body>
<form name="myform" action="" method="post">
</form>
</body>
</html>

2 个答案:

答案 0 :(得分:1)

每次提交表单时,都会重新加载页面并再次调用setTimeout

每次加载页面时都必须跟踪页面。例如:

sessionStorage.submitted = new Date().toString();

然后检查:

if (!sessionStorage.submitted)
    var myTimer = setTimeout(doStuff, 1000);

(注意:它在IE7中不起作用 - 。)

顺便说一下,使用POST提交静态HTML页面有什么意义?也许我们没有看到一些PHP代码?

答案 1 :(得分:0)

每当您的网页发布然后加载时,它都会再次调用setTimeout。这是你想要的功能吗?

我认为您可能想要做的是:

var myTimer = function(){setTimeout(doStuff, 1000)};