TIL]JavaScript-defer,asyncスクリプト
🌼Scriptタグの特徴
ブラウザがHTMLファイルを読み込むときに、Inline/External Scriptタグを作成すると、DOMの生成が停止し、スクリプト実行またはダウンロード操作が最初に実行されます.この動作は2つの重要な話題を生み出す.
//internal script 방식
<script>
function sayHi() {
console.log('여기는 index.html파일입니다.');
}
sayHi();
</script>
🌼defer、asyncスクリプトの設定
head 안에 script로 연결
:HTMLの解析中に作業を停止し、JavaScriptファイルを取得/実行するため、jsファイルの容量が大きい場合は、Webサイトを表示するのに長い時間がかかる場合があります.body 안에 script로 연결
:Webページがjsに依存している場合(サーバデータを受信したり、jsによってDOM要素を装飾したりするなど)、jsの完了/実行を待つ時間が必要です.head + async로 설정
:HTML을 parsing 하는 동안 async 속성이 있는 스크립트를 '백그라운드'에서 다운로드 한다. 하지만 HTML이 parsing 되기 전에 js가 실행되므로 js를 이용해 DOM 요소를 조작하거나 할 때 HTML 요소 정의가 안 됐을 수 있어 js 코드가 정상적으로 동작하지 않는 단점이 있다.
(async:boolean、trueとしてのみ宣言)asyncプロパティを持つscriptは、他のscriptのダウンロードを待たない.したがって、複数のタグがある場合、ファイルはダウンロードが完了したスクリプトの順序で実行され、実行順序は保証されません.head + defer로 설정
:HTML을 parsing 하는 동안 defer 속성이 있는 스크립트를 '백그라운드'에서 다운로드 한다. 즉, fetching이 병렬로 이뤄지고 실행은 HTML 페이지 구성이 끝날때까지 지연되는 방식이다. 가장 안정적인 방법으로 이 방법을 추천한다.
遅延スクリプトは、ページの生成をブロックしませんが、DOMContent Loadedイベントが発生する前に実行されます.出典:YOUTUBE-DREAMコード、JAVASCRIPT.INFO
Reference
この問題について(TIL]JavaScript-defer,asyncスクリプト), 我々は、より多くの情報をここで見つけました https://velog.io/@link717/TIL-JavaScript-asyn-vs-defer-k65fhsfzテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol