前回の投稿の続きです。
Ajaxを使うとsetTimeout処理がうまくいかない
現在HTML,Javascript(jQuery)を使ってアプリを作っています。
前回の投稿に画面デザインとコードがあるのですが、
**setTimeout内で書いたAjaxコードは,clearTimeoutをしても
リクエストが飛ぶ、もしくは、飛ぶことがある。**ということがわかりました。
そこで
setTimeoutの処理の動きを理解したい
と思い、質問しました。
単刀直入に考えをぶつけると、
setTimeout内の処理は、n秒後に処理が流れて実行されるわけでなく、
n秒経つ前にすでに処理は流れていて、それがn秒後に実行されるのでしょうか?
前回コードの動きのイメージは以下でした。
1.文字入力後、setTimeoutで0.5秒後に実行される処理を予約する
2.ボタン押下し、clearTimeoutで予約していた処理をキャンセルする
3.そのためsetTimeout内に書かれているAjaxの処理は走らない
ただ今回の動きを見て、またアドバイスから、動きのイメージはこうでしょうか?
1.文字入力後、setTimeoutで0.5秒後に実行される処理を予約する。すでに処理は流れているが、実行されない。
2.ボタン押下し、clearTimeoutで予約していた処理をキャンセルする
3.リクエストを投げていたAjaxの処理が実行されることがある
やはり知りたいのは
setTimeout内の処理は、n秒後に処理が流れて実行されるわけでなく、
n秒経つ前にすでに処理は流れていて、それがn秒後に実行されるのでしょうか?
ということになると思います。
例えば前回コードのAjax処理の上に
console.log('テスト');
があった場合、この処理も
setTimeoutのn秒後に実行される前に流れているのでしょうか?
それともAjaxに限ったことなのでしょうか?
長くなってしまいましたが、setTimeoutとAjaxの動きについてわかる方がいらっしゃいましたら、お答えいただけると有難いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/04/23 04:48 編集
2016/04/23 05:17
2016/04/23 09:52
2016/04/23 15:57 編集
2016/04/23 22:27
2016/04/24 01:23 編集