私はいくつかのスクリプトが特定のページの他のスクリプトの前に呼び出されるように見えた、私はスクリプトが読み込まれる特定の順序は何ですか?参照先の.jsスクリプトのページはめ込みですか?それらは最初に<script>
からページ順に実行されていますか、またはこのブラウザに依存していますか?特定のスクリプトがページ内で最初に実行されることを確認するにはどうすればよいですか?Javascriptスクリプトが最初に実行されていることを確認しますか?
答えて
特定の ページのスクリプトよりも先に呼び出されるスクリプトがあるようです。私はスクリプトが読み込まれる特定の順序はなんですか?
これは、彼らの言語仕様にW3Cによって設定されています。 HTML 4.01 Specificationの場合、たとえば、Section 18.2.4 Dynamic modification of documents, item 1で定義されています。インページの前にスクリプトの.js参照
?
上記を参照してください。いいえ。インラインスクリプトとリンクスクリプトは同じように扱われます。
最初に言及したページから最後にページの最後まで実行されますか? ですか、このブラウザに依存しますか?
この仕様では、上から下に順番に実行する必要があります。仕様に従って言語を実装するブラウザを見つける必要があります。私はSCRIPTタグを別の方法で扱っているとは思えませんが、可能です。
もう1つ考慮すべきことは、「実行」の定義です。セマンティック解析のように聞こえるかもしれませんが、そうではありません。 JavaScriptは、他のプログラミング言語と同様に、それ自体が標準に従って動作するように設計されています。 JavaScriptは、ECMA-262 5.1 Edition/June 2011 standardで指定され、第7章字句規則の左から右へ評価されます。 (行末は、次の行の一番左の文字として扱われます。)また、WHILEやFOR文など、文やその他の演算が評価される順序の規則も提供されています。
特定のスクリプトがページ内で最初に実行されることを確認する方法を教えてください。
(1)上部に置き、(2)言語仕様を実装するブラウザを選択します。
しかし、私はこの質問の背後に何かがあるかもしれないと感じています。予期しないコードの実行を停止しようとしている場合は、ONLOADイベントハンドラがページの完了を登録するまで、予期しないコードをブロックする必要があります。 (関数内に操作を囲むか、ブール値フラグをチェックするためにIFで囲みます。つまり、isLoadedはONLOADによってtrueに設定されます)。次に、ONLOADイベントハンドラが起動すると、インスタンス化されていないDOMオブジェクトのようなものについては心配する必要があります。
スクリプトが動的にロードされたり非同期または遅延としてマークされていない限り、スクリプトはページ内で発生した順序で実行または評価されます。したがって、最初に実行されたスクリプトが最初に実行されます。ロードされなければならない
アン外部参照スクリプトファイルには、その外部参照ファイルがロードされ、解析され、実行されるまで、すべてのさらなるJavaScriptの実行を待つことになります。
したがって、通常の(非非同期、非延期)のJavaScriptの評価順序は、それがページに遭遇するため、100%の確定です。デフォルトでは
、script
タグがダウンロードされ、それらがHTML文書に遭遇しているよう順番に評価されます。
async
またはdefer
属性を使用すると、スクリプトのダウンロードが完了した後(async)またはページのロードが完了した後(延期)に実行されます。
解析後まで* defer *属性の実行を停止しないでください(そうしないと、loadイベントとreadyイベントの代わりになります)。 HTML 4では、[defer](http://www.w3.org/TR/html401/interact/scripts.html#adef-defer)は、スクリプトがコンテンツを作成していないというヒントであったため、ブラウザは継続して読み込むことができましたそれを実行しながら。 HTML5では、[defer](http://www.w3.org/TR/html5/scripting-1.html#attr-script-defer)は「解析が完了するまで待つ」という意味です。 HTML5は、指定された振る舞いに依存することが十分にサポートされていません。 – RobG
スクリプトは、上から見たときと同じように、htmlファイルで評価された順に実行されます。
ただし、asyncとdeferは、実装されているブラウザでこれを無効にできます。
- 1. サービスが実行されていることを確認しますか?
- 2. アプリケーションがFlutterで最初に実行されているかどうか確認してください
- 3. スクリプトが実行されている場所を確認
- 4. ブランチが実行されていることを確認してください。
- 5. Python:サービスが実行されていることを確認します
- 6. プロセスが実行されているかどうかを確認するpowershellスクリプト
- 7. rubyスクリプトが既に実行されているかどうかを確認
- 8. ahk(autohotkey)スクリプトが実行されていることを確認してください
- 9. cronを使ってスクリプトが常に実行されていることを確認するには?
- 10. cronjobでPythonプロセスを実行し、それが毎分実行されていることを確認します。
- 11. PHP array_slice() - 最初と最後の要素が最後に選択されていることを確認する
- 12. PHPスクリプトがcron経由で別のスクリプトから実行されているか確認してください
- 13. linuxで実行されているMATLABスクリプトを確認してください
- 14. 特定のマシンでスクリプトが既に実行されているかどうかを確認しますか?
- 15. locationManager(_:変更を承認しました:)は、アプリを最初に実行すると実行されますか?
- 16. 他のアプリが実行されていることを確認するにはxcodeを使用しますか?
- 17. SQL文が実行されたことを確認してください
- 18. スクリプトが5分ごとに実行されているかどうかを確認するには、
- 19. pythonスクリプトが正しく実行されているかどうか、再実行されていないかどうかを確認します。
- 20. Oracleバックアップが実行されていることを確認する
- 21. アプリケーションがアプリケーションサーバーで実行されていることを確認する
- 22. herokuでインスタンスが実行されていることを確認する方法
- 23. Gridviewの最初の5行を確認してください
- 24. ユーザーがfirebaseで確認されていることを確認します。android
- 25. 関数のインスタンスが1つしか実行されていないことを確認しますか?
- 26. BigQueryの最初のネストされたページ行にカスタムディメンション値が含まれているかどうかを確認
- 27. スタートスリープを使用した後にサービスが実行されていることを確認してください
- 28. チェックボックスがチェックされていることを確認します。
- 29. まだ1つのスクリプトを実行しているスクリプトの順序の設定が最初に実行されているのはなぜですか?
- 30. 最初にかっこ内のすべてが実行されますか?
ECMA-262エディション5+からの参照を提供してください。このリファレンスは、規格に従って指定された動作です。すべてのブラウザとプラットフォームでこのように動作していると確信していますか? – ingyhere
@ingyhere - 参照がどこにあるのかわかりませんが、今見たい時間がありません。これはWAYのjavascriptの動作です - あなたはそれに挑戦する何らかの理由があるなら、その理由を述べてください。 Javascriptはトップ/ダウンから実行されます。ブラウザ間で一貫性を持たなければならず、多くのページが壊れてしまうのは、常にトップからボトムまで実行しているJavaScriptに頼っているからです。ほとんどの言語は、ロジックの作業をするためにしばしば必要となるため、コードの異なる部分間で保証された実行順序を提供する必要があります。 – jfriend00
ここに1つのリファレンスがあります:http://docstore.mik.ua/orelly/webprog/jscript/ch12_03.htm – jfriend00