JavaScript は同期です。JavaScript は常に同期でシングルスレッドですが、ajax 呼び出しができるという意味でのみ非同期です。同期とは、JavaScript コードのブロックがページ上で実行されている場合、ページ上 現在、他の JavaScript は実行されません。
このチュートリアルの動作環境: Windows 10 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。
JavaScript は同期していますか?
JavaScript は常に同期しており、シングルスレッドです。
ページ上で JavaScript コードのブロックを実行している場合、現在そのページでは他の JavaScript は実行されません。
JavaScript は、Ajax 呼び出しを実行できるという意味でのみ非同期です。
Ajax 呼び出しは実行を停止し、呼び出しが (成功かどうかに関係なく) 戻るまで他のコードは実行でき、その時点でコールバックが同期的に実行されます。現時点では他のコードは実行されません。現在実行中の他のコードは中断されません。
JavaScript タイマーは、これと同じタイプのコールバックで実行されます。
JavaScript を非同期として説明すると、誤解を招く可能性があります。正確に言うと、JavaScript は同期であり、さまざまなコールバック メカニズムを備えたシングルスレッドです。
jQuery には、Ajax 呼び出しを同期させるためのオプションがあります (async: false オプションを使用)。初心者は、より慣れ親しんだ伝統的なプログラミング モデルを使用できるため、誤って使用する可能性があります。これが問題となる理由は、このオプションが完了するまで、すべてのイベント ハンドラーとタイマーを含むページ上のすべての
JavaScript をブロックするためです。
#知識を広げる
JavaScript 言語はシングルスレッド言語です シングルスレッドと非同期を同時に言語の機能とすることはできません。 js はシングルスレッド言語であることを選択したため、それ自体を非同期にすることはできません。ブラウザーはこれらの関数を実行するために js にメイン スレッドを 1 つだけ割り当てるため、一度に実行できるのは 1 つだけです。これらのタスクは実行を待機するタスク キューを形成しますが、フロントエンドの一部のタスクは非常に時間がかかります。プロセッサとイベント リスナーが他のタスクと同様に実行を待機するためにキューに入れられると、実行効率が非常に低くなり、ページがフリーズすることさえあります。
JavaScript シングル スレッドで非同期効果を実現する方法
したがって、ブラウザはこれらの時間のかかるタスクのために別のスレッドを開きます。 、主に http リクエスト スレッド、ブラウザ タイミング トリガー、ブラウザ イベント トリガー スレッドが含まれます。ホスト環境 (ブラウザー) では、イベント駆動型メソッドを通じて js に非同期属性を持たせることができます。
すべてのタスクは、同期タスク (synchronous) と非同期タスク (asynchronous) の 2 種類に分類できます。同期タスクとは、メイン スレッドで実行するためにキューに入れられたタスクを指します。次のタスクは、前のタスクが実行された後にのみ実行できます。非同期タスクとは、メイン スレッドには入らず、「タスク キュー」に入るタスクを指します。タスクのみメインスレッドのタスクが完了し、「タスクキュー」がメインスレッドに通知してタスクの実行を要求し始めると、タスクは実行のためにメインスレッドに入ります。
CPU はビジー状態なので忘れてください。ただし、IO デバイス (入力および出力デバイス) が非常に遅いため (たとえば、Ajax 操作がネットワークからデータを読み取るなど)、CPU がアイドル状態になることがよくあります。結果が出たら実行を続けます。
具体的には、非同期実行メカニズムは次のとおりです。すべての同期タスクはメイン スレッドで実行され、実行コンテキスト スタックを形成します。
メインスレッドの他に「タスクキュー」もあります。非同期タスクに実行結果がある限り、イベントは「タスク キュー」に配置されます。
「実行スタック」内のすべての同期タスクが完了すると、システムは「タスクキュー」を読み取り、それらの非同期タスクが実行スタックに入り、実行を開始します。
メインスレッドは引き続き上記の 3 番目のステップを繰り返します。
【関連する推奨事項:
JavaScript ビデオ チュートリアル、Web フロントエンド ]
以上がJavaScriptは同期ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

idSelectorEctorSareGenerally -fasterthanclassselectorsincss.1)idselectorseahashtablelookupfordirectaccess、makingthemfaster.2)classSelectoreCtoresRectoresRectoreChurtingThroughMultiplements、whosisslower、onlargerpages.3)

useclasses forstylingelementsは、特にssprovidedisionidegreatingspを使用するために、特にjavascripthooksorurlfragments.classesofferforurlfragments.classesofferforurllfragments.classesofferururlfragments.classeSofthooksorurlfragmentsを使用して、suniqueelementsを使用していることを確認します

html5introducessivisifinifintimprovementsforwebdevelopment.1)semanticelementsenhancestructureandseo.2)nativemultimediasuporteliminatestheenedforpluginslikeflash.3)newformcontrololsimproveuserexperienceandation.4)thecanvasapienapyenabuapinabledation.4)

classSelectorEctorSeusedFormultipleElements、whiledselectorSareForuniqueElements.1)classSelectors(.btn)は、versatileforconsintentStylingAcrosselements.2)idselectors(#main-header)suresuniquestylingforspecifelements.3)classesareprefergeneralstylin

classesarebetterforaccesibility inwebdevelopment.1)ClassscanbeappliedTomultipleements、sunsistentStylesandbehaviorsを保証します

classSeLectorEreusableformultipleElements、whiledselectorectorsareuniqueandusedonceperpage.1)クラスは、byperiod(。)、areideal forstylingmultipleementslikebuttons.2)、ids(#)、aerpectforuniqueelementslikeanivigationmenu.3)idshsheaveavehe.3)を示します

CSSスタイルでは、プロジェクトの要件に従ってクラスセレクターまたはIDセレクターを選択する必要があります。1)クラスセレクターは再利用に適しており、同じスタイルの複数の要素に適しています。 2)IDセレクターは一意の要素に適しており、優先度が高いが、メンテナンスの困難を避けるためには注意して使用する必要があります。

html5hasseverallimitationsincludingluding foradvancedgraphics、basicformvalidation、cross-browsercompatibilityissues、performurympacts、andsecurityconcerns.1)forcomplexgraphics、html5'scanvasisisuffish、resiclirarielikelikelikeweblorthree.2)i


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

メモ帳++7.3.1
使いやすく無料のコードエディター

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境
