
以下のように書いているのですが、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ランキング
-
複数のRSSを取得した項目を別々...
-
互換モード・標準準拠モードに...
-
ジェネレーターの作り方
-
プルダウンでテキストエリア表...
-
ASP.NET MVCでObjectをjsに渡す
-
テキストボックスに文字列やタ...
-
翌月を取得するGASが分かりません
-
なぜmatchメソッドがエラーにな...
-
JavaScriptでテーブル内?に矢...
-
とあるAJAXでの値の受け取り方...
-
JavaScriptで文字列の特定文字...
-
1日1回だけ引けるjavascriptお...
-
google apps scriptの終了のさせ方
-
JavaScript window.openで開く...
-
C#テキストボックスの文字を配...
-
functionから別のfunctionを実...
-
javscript超初心者です。
-
ASP+アクセスでのSQLコメントに...
-
VB2019でウェブサイトにID/PASS...
-
xml+xslでの変換内容をtextareaへ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C#OpenCv V4にのエラーに関する...
-
C#で、ContextMenuStripに動的...
-
google apps scriptの終了のさせ方
-
ASP.NET MVCでObjectをjsに渡す
-
GASでundefinedエラーが出ます
-
ジェネレーターの作り方
-
ASP.NETのコントロールの値をJa...
-
なぜmatchメソッドがエラーにな...
-
javascriptでiframeのURL変更は?
-
gas スプレッドシートがアクテ...
-
翌月を取得するGASが分かりません
-
for文を使って変数に値を入れる...
-
APIを使って埋め込んだグーグル...
-
VSCODE[Python]の設定について
-
ローカルにあるファイルを検索...
-
C# 演算 奇数と偶数 表現の仕方
-
イベントが初めの一回しか起き...
-
C# 演算 分岐処理 繰り返し処理
-
setTimeoutによる繰り返しが途...
-
リンクの有無を判別して画像の...
おすすめ情報
alert(count1);でした、すいません。
度々、すいません。alert(count1);とした状態でも、繰り返しが途中で止まってしまうのです。
度々、すいません。kansu1の中で、count2=0;としています。