他サイト更新RSSぴぽぺ速報最新記事

JavaScriptで特定の関数を実行し続けて、ボタン押したら関数を止めるみたいな処理できる?

このエントリーをはてなブックマークに追加 LINEで送る

1: 以下、\(^o^)/でVIPがお送りします 2015/03/07(土) 13:23:11.54 ID:Hsqe5k/s0.net

JavaScliptって特定の関数を実行し続けて、何かボタン等でアクションしたときに
その関数を止める、みたいな処理ってできないの?

4: 以下、\(^o^)/でVIPがお送りします 2015/03/07(土) 13:25:41.79 ID:n2PEKdf5M.net

よくわかんないけどイベント感知してフラグ立ててメソッド抜ければいいんじゃねーの

5: 以下、\(^o^)/でVIPがお送りします 2015/03/07(土) 13:25:43.92 ID:PmuFwrFs0.net

再帰関数中にフラグ判定入れればいいだけじゃないの

3: 以下、\(^o^)/でVIPがお送りします 2015/03/07(土) 13:25:27.70 ID:lKFRfk4NM.net

ソースで書いてみて

6: 以下、\(^o^)/でVIPがお送りします 2015/03/07(土) 13:27:23.71 ID:Hsqe5k/s0.net

↓こんな感じ。一度ボタン押したら0~9の数字が延々と切り替わって、もう一度ボタンを押したとき別の処理が動くように
ならないかなーと思ったけど、案の定延々とwhileに入ったまま無限ループする

8: 以下、\(^o^)/でVIPがお送りします 2015/03/07(土) 13:29:58.53 ID:6SKyKAQK0.net

else if (loadFlg == 1) {
loadFlg = 0;
}
でええんちゃうん

10: 以下、\(^o^)/でVIPがお送りします 2015/03/07(土) 13:31:56.75 ID:Hsqe5k/s0.net

>>8
whileで完全にループしてボタン入力を受け付けてないっぽいから意味なかたお( ´ω`)

11: 以下、\(^o^)/でVIPがお送りします 2015/03/07(土) 13:35:33.70 ID:6SKyKAQK0.net

んじゃwhile文部分の実装を変えるしかないな
マルチスレッド化すんのが一番わかりやすいけどなんかライブラリとか入れんとアカンな

あとJavaSc「r」iptやで

12: 以下、\(^o^)/でVIPがお送りします 2015/03/07(土) 13:36:30.49 ID:Hsqe5k/s0.net

>>11
そっちの方向か…難しそうね
そして誤字はガチで間違えてた。はずかc

14: 以下、\(^o^)/でVIPがお送りします 2015/03/07(土) 13:41:05.05 ID:pvp03seg0.net

フラグが1になりっぱじゃね
なんかのトリガーでフラグかえないとほわいる文抜けないだろ

15: 以下、\(^o^)/でVIPがお送りします 2015/03/07(土) 13:42:50.43 ID:Hsqe5k/s0.net

>>14
ボタンを2回目に押したらフラグが1だからelsifの方が実行されて上手い具合にループ抜けないかなっていう
望みにかけた結果がこれだよ

16: 以下、\(^o^)/でVIPがお送りします 2015/03/07(土) 13:43:12.84 ID:4bXFq472r.net

なるほど。
ボタンの入力を受け取ってフラグをOffにしたいのにWhileで回ってるとイベントループに入らないからボタンがそもそも効かないってことね。
タイマーでやるしかないんじゃね?
JavaScript嫌いだから良くわかんなあけど。

17: 以下、\(^o^)/でVIPがお送りします 2015/03/07(土) 13:43:41.86 ID:lKFRfk4NM.net

hiddenにflg持たせればいいよ

18: 以下、\(^o^)/でVIPがお送りします 2015/03/07(土) 13:44:32.60 ID:KKHhoN2L+.net

こうじゃなくて?

19: 以下、\(^o^)/でVIPがお送りします 2015/03/07(土) 13:46:18.12 ID:Hsqe5k/s0.net

>>18
そうそう、そういうこと
ただwhileで抜けなくなってボタンが効かないから
ワーカーとか使ってマルチスレッド処理するしかないっぽいんだが
今なんかワーカー効かねえって苦戦してるとこ

hiddenにflgっつってもボタンが効かないなら意味なくない?

21: 以下、\(^o^)/でVIPがお送りします 2015/03/07(土) 13:48:37.02 ID:n2PEKdf5M.net

しょうがねえな
俺が今から本棚にブチ込んだままのオライリーのサイの奴見て大先生になるから待ってろ

22: 以下、\(^o^)/でVIPがお送りします 2015/03/07(土) 13:49:15.51 ID:Hsqe5k/s0.net

>>21
大先生たのもc

24: 以下、\(^o^)/でVIPがお送りします 2015/03/07(土) 13:52:04.23 ID:yptdtiX8+.net

こんなんとか

26: 以下、\(^o^)/でVIPがお送りします 2015/03/07(土) 13:58:06.95 ID:Hsqe5k/s0.net

>>24
うおおおおおお動いた!ありがとう!
でもどうしてだろう?

27: 以下、\(^o^)/でVIPがお送りします 2015/03/07(土) 13:59:26.30 ID:Hsqe5k/s0.net

あああああああ再起し続ける間にボタンが押せるんかな?

28: 以下、\(^o^)/でVIPがお送りします 2015/03/07(土) 14:01:14.93 ID:Hsqe5k/s0.net

もしかして別関数に移った瞬間に元の関数が効くようになる???
Javascript奥ふけえええ

29: 以下、\(^o^)/でVIPがお送りします 2015/03/07(土) 14:02:00.23 ID:pmVl2djm0.net

俺も作った

31: 以下、\(^o^)/でVIPがお送りします 2015/03/07(土) 14:07:37.34 ID:Hsqe5k/s0.net

上と同じことだな。ストップボタンのオブジェクトがないので、止められんがw
やっぱりsetTimeoutしてるとマルチみたいな挙動するのか
実行キューに移すまでの時間は実はイベント待ち状態と同じってことなの?
わからぬ調べ中

30: 以下、\(^o^)/でVIPがお送りします 2015/03/07(土) 14:06:22.81 ID:pmVl2djm0.net

setTimeout関数は引数で指定したミリ秒待ってから関数呼び出すから、その間イベントハンドラ呼び出せる

32: 以下、\(^o^)/でVIPがお送りします 2015/03/07(土) 14:08:17.17 ID:Hsqe5k/s0.net

>>30
ほうほう!便利ねこれ!

33: 以下、\(^o^)/でVIPがお送りします 2015/03/07(土) 14:10:54.18 ID:Hsqe5k/s0.net

ttp://www.infoq.com/jp/articles/js_multithread_2
とかにもちらっと書いてあるのね
いやあこれで捗る。ありがとう先生たちm(_ _)m

34: 以下、\(^o^)/でVIPがお送りします 2015/03/07(土) 14:11:53.50 ID:UyhiJsAga.net

いいってことよ

36: 以下、\(^o^)/でVIPがお送りします 2015/03/07(土) 14:13:26.83 ID:5dx5opTO0.net

入力待ちとか時間かかる処理は細切れにしてイベントループで回すもんだと思ってたが

37: 以下、\(^o^)/でVIPがお送りします 2015/03/07(土) 14:17:29.43 ID:Hsqe5k/s0.net

>>36
しっかり作るならイベントループぽいね
setTimoutは本来の使い方とは少し違う、裏技みたいな印象。でも知っておくと便利ねえこれ

38: 以下、\(^o^)/でVIPがお送りします 2015/03/07(土) 14:23:41.36 ID:zzMQTD6+0.net

とりあえず
clearTimeout
clearInterval
あたりを調べることをおすすめしたい

39: 以下、\(^o^)/でVIPがお送りします 2015/03/07(土) 14:32:01.33 ID:Hsqe5k/s0.net

>>38
ほう、ありがとう!
しっかり調べてみるよ。とりあえずclearTimeoutは使っておく

試したい人用のコピペ雛

sosu



このエントリーをはてなブックマークに追加 LINEで送る
↑この記事をみんなに広めよう↑

↓ランキングクリックよろしくお願いします↓
 にほんブログ村 2ちゃんねるブログ 2ちゃんねる(ニュース)へ にほんブログ村 2ちゃんねるブログ 2ちゃんねる(ゲーム)へ

コメントをどうぞ

メールアドレス
コメント本文

  • あなたのコメントが、更にこの記事をおもしろくします。

プロフィール

PipopeFavicon

ぴぽぺ速報です。

下らないニュース、
おもしろい事件、
ゲームなど色々扱っております。
1日約70記事です。

Twitter
RSS

↓ランキングクリックよろしくお願いします↓
 にほんブログ村 2ちゃんねるブログ 2ちゃんねる(ニュース)へ にほんブログ村 2ちゃんねるブログ 2ちゃんねる(ゲーム)へ

新着情報

逆アクセスランキング

アクセスカウンター

  • 24現在の記事:
  • 1499036総閲覧数:
  • 121今日の閲覧数:
  • 247昨日の閲覧数:
  • 540405総訪問者数:
  • 87今日の訪問者数:
  • 120昨日の訪問者数:
  • 127一日あたりの訪問者数:
  • 1現在オンライン中の人数:

genzou1919 world