以下のように書いているのですが、alertが途中で出なくなってしまいます。処理が止まってしまうのでしょうか。
どういう原因が考えられるでしょうか。
var count1=0;
var count2=0;
kansu1();
function kansu1()
{
window.clearTimeout(stid);
count1++;
alert(count);
siid = window.setInterval("kansu2()",10);
}
function kansu2()
{
count2++;
中略
if(count2>9)
{
window.clearInterval(siid);
stid = setTimeout("kansu1()", 1000);
}
}
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
なさりたいことがイマイチよくわかりませんが・・・
以下のように若干の記述修正をして実行すれば、
count2=0, 10,11,12・・・
として循環が続きます。
(ご質問のように止まることはないはずと思います)
> kansu1の中で、count2=0;としています
kannsu1で.setIntervalでkansu2を呼び出している限りcount2は増加し続けます。
実は、count2>9になるまで10mmsecで10回繰り返すという制御にどういう意味があるのかよくわかりませんが・・・
javascriptのsetTimeoutやsetIntervalにそのレベルでの時間の正確さを求めても・・・という気がします。
<ご参考まで>
var count1=0;
var count2=0;
var stid, siid;
kansu1();
function kansu1(){
window.clearTimeout(stid);
count1++;
alert(count1 + " / " + count2);
siid = window.setInterval(kansu2, 10);
}
function kansu2(){
count2++;
//中略
if(count2>9){
window.clearInterval(siid);
stid = setTimeout(kansu1, 1000);
}
}
ご親切に丁寧なご回答をいただき、ありがとうございました。いろいろと処理はしているのですが、思うように動作しない原因がsetTimeoutの書き方にあるのではないか?と思い、そこだけ抽出して質問してみようと考え上記に至りましたが、それ自体にいろいろ問題があり、皆様を混乱させてしまい申し訳ありません。本日、いろいろ試したところ、setTimeoutは止まらずに動作していたようです。画面上に意図した変化が表れないので、思い込んでしまいました。新たな問題が発生しましたが、とりあえず、今回の質問で解決したかった点は解決しました。
No.1
- 回答日時:
count2 が 10 になったら siid の繰り返し処理を中断していますが、
その際に count2 = 0 は不要でしょうか?
本筋とは関係ありませんが、二点ほど指摘です。
1) setInterval や setTimeout の呼び方
setTimeout("kansu1()", 1000) よりも
setTimeout(kansu1, 1000) のほうが現代的です。
2) 変数の未宣言
siid や stid は var 宣言しなくて大丈夫ですか?
また、未宣言の変数で clearTimeout をするのは危険だと思います。
ご親切に、アドバイスやご指摘をいただき、ありがとうございます。上に挙げた例文自体に、いろいろと問題があるようですね。ひとつひとつの処理に問題がないかを確認しながら、再度チャレンジしたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- Visual Basic(VBA) エクセル マクロ(A1:A10)までの中で一番多く出た数字をB10に表示 6 2023/04/25 17:01
- Visual Basic(VBA) A列B列C列 3 2023/04/26 18:11
- UNIX・Linux 次の要件を満たすにはどのように修正したらよろしいでしょうか 1 2022/11/24 20:57
- FX・外国為替取引 mql4のコンパイルエラー箇所の修正お願いします。 1 2023/03/15 16:14
- Visual Basic(VBA) vba シートコピーの不具合 1 2022/06/25 17:48
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Visual Basic(VBA) Sheet3から2つの条件でオートフィルターで抽出した個数をSheet2へ入力するマクロで、一つ目の 4 2023/01/12 23:40
- JavaScript jQueryでのレスポンシブが綺麗に動かない 3 2022/06/21 11:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
google apps scriptの終了のさせ方
-
VSCODE[Python]の設定について
-
C#OpenCv V4にのエラーに関する...
-
特定のclassを表示、非表示にする
-
時間帯によってデスクトップ背...
-
C# 演算 奇数と偶数 表現の仕方
-
C#で、ContextMenuStripに動的...
-
今日で生まれて何日何分何十秒...
-
翌月を取得するGASが分かりません
-
var exports = exports || {}; ...
-
HTMLで作った時報アプリが動き...
-
JavaScriptで、現在日時から100...
-
1日1回だけ引けるjavascriptお...
-
択一形式のテストをつくりたいです
-
GASでGoogleフォームの自動返信...
-
GASでundefinedエラーが出ます
-
メールフォームの日付入力フォ...
-
同じIDで定義した要素の配列を...
-
Excel VBA の ChangeFileAccess
-
JavaScript window.openで開く...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
google apps scriptの終了のさせ方
-
C#OpenCv V4にのエラーに関する...
-
メールフォームの日付入力フォ...
-
GASでundefinedエラーが出ます
-
ジェネレーターの作り方
-
GASでGoogleフォームの自動返信...
-
なぜmatchメソッドがエラーにな...
-
翌月を取得するGASが分かりません
-
ローカルにあるファイルを検索...
-
HTMLで作った時報アプリが動き...
-
ASP.NETのコントロールの値をJa...
-
C# 演算 奇数と偶数 表現の仕方
-
html javascript リンク先アド...
-
gas スプレッドシートがアクテ...
-
VSCODE[Python]の設定について
-
javascriptでテーブルに追加し...
-
JavaScriptで決まった「時刻」...
-
ASP.NET MVCでObjectをjsに渡す
-
イベントが初めの一回しか起き...
-
jqGridについて
おすすめ情報
alert(count1);でした、すいません。
度々、すいません。alert(count1);とした状態でも、繰り返しが途中で止まってしまうのです。
度々、すいません。kansu1の中で、count2=0;としています。