-1

setTimeout を 1 回だけループする方法は?

このコードは永遠にループしていて、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>
4

2 に答える 2

1

フォームが送信されるたびに、ページがリロードされ、setTimeout再度呼び出されます。

ページが読み込まれるたびに、ページを追跡する必要があります。例えば:

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

そして、次を確認します。

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

(注: IE7 以降では動作しません。)

ところで、POST を使用して静的な HTML ページに送信する意味は何ですか? 見えていない PHP コードがあるのではないでしょうか?

于 2013-05-02T15:36:36.153 に答える
0

ページが投稿されてから読み込まれるたびに、setTimeout が再度呼び出されます。これはあなたが望む機能ですか?

あなたがやりたいことは次のとおりだと思います:

var myTimer = function(){setTimeout(doStuff, 1000)};
于 2013-05-02T15:39:34.173 に答える