document.createElement("script") による JavaScript の同期読み込み
Web 開発では、多くの場合、外部 JavaScript ファイルを読み込む必要があります。ページのレンダリングがブロックされるのを避けるために、非同期的に実行します。ただし、スクリプトを同期的にロードし、その後すぐに使用したい状況もあるかもしれません。
ここでの質問では、JavaScript ファイル (my.js) を同期的にロードし、定義された関数をすぐに使用する可能性を検討しています。内で。提供されたコード スニペットは、document.createElement("script") を使用してスクリプト要素を動的に作成し、それを head 要素に追加することでこれを実現しようとします。
残念ながら、答えが正しく指摘しているように、それは不可能ですこの方法で JavaScript を同期的にロードします。スクリプトが動的にロードされると、ブラウザはそれを非同期的に実行します。つまり、スクリプトは最終的にロードされますが、いつロードされるかは保証されません。したがって、ロードされたスクリプトの作成直後に関数を呼び出そうとすると、失敗する可能性があります。
その答えは、スクリプト要素の onload イベント ハンドラーを使用して、スクリプトのロードが完了したときにコードを実行することを提案しています。これは場合によっては機能しますが、完全に信頼できるわけではなく、常に起動するとは限りません。特に、読み込まれたスクリプトが、目的の関数を含む別のスクリプトを挿入する場合です。
同期スクリプトの読み込みの信頼性を向上させるために、別のアプローチの使用を検討できます。答えには 2 つのオプションが記載されています:
以上がdocument.createElement(\'script\') を使用して JavaScript を同期的にロードできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。