setTimeout インスタンス

一个新手
リリース: 2017-09-26 09:40:36
オリジナル
1437 人が閲覧しました


setTimeout

function test1(){ console.log('t1'); }function test2(){ setTimeout(test1,0); console.log('t2'); }
ログイン後にコピー

出力結果はt2、t1です。
奇妙なことに、setTimeout はまだ 0 に設定されていないため、最初に実行する必要がありますが、結果はこのようになりません。
この問題を理解するには、JavaScript の関数呼び出しスタックを確認する必要があります。

javaScript関数呼び出しスタック

jsは、関数を維持するためにスタックを使用して関数を呼び出します。関数が呼び出されると、その関数はスタックにプッシュされます。関数の実行が終了すると、関数はスタックからポップされます。
setTimeout インスタンス
ここでの悪い点は、特定の関数が長時間実行されると、後続の操作が待機する必要があり、ブロックが発生することです
最良の方法は、時間のかかる操作を実行するために非同期を使用することです。js スクリプトは次のとおりです。コードは再度実行できます。

関数呼び出しメカニズム

setTimeout インスタンス
js スクリプト コードを実行するとき、実行される関数を呼び出しスタック (図の呼び出しスタック) に置きます。ブラウザ イベントが発生した場合は、それらを Web API に追加します。コール スタックとブラウザ イベントにより、時間のかかる関数が循環キューに入れられる場合があります。
例: setTimeout(fn, timeer) $.ajax など、メインスレッドが他の操作を実行できるようにするため、コールスタックに関数呼び出しがない場合、メインスレッドはメッセージキュー内の関数を呼び出します。循環キュー内のメッセージ。

最後に、setTimeout(fn, time) の時間は、fn 関数が実行できる最速時間にすぎません。実際の実行時間は、定義された時間以上になる可能性があります

以上がsetTimeout インスタンスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!