0

タグで使用されるasyncとの違いを理論的に知っています。defer<script>

async:スクリプトは、ページの残りの部分と非同期で実行されます (スクリプトは、ページが解析を続行している間に実行されます)。

defer:ページの解析が完了すると、スクリプトが実行されます。

しかし、彼らが従うメカニズムを理解することはできません。

次の 2 つのファイルが1.jsあり1.htmlます。

1.js

alert('Running external JS');

1.html

<html>
    <body>
        <script src="1.js" async></script>
        <script>
            for(var i=0;i<5;i++)
            {
                alert('HTML code1');
            }
        </script>
        <script>
            for(var i=0;i<5;i++)
            {
                alert('HTML code2');
            }
        </script>
    </body>
</html>

html ファイルが実行alertされ、最初にすべてのステートメントが実行され、最後にスクリプトが実行されます。つまり、 -tagの代わりにin1.jsを使用した場合と同様に動作します。deferasync<script>

私の予想によると、外部スクリプトは HTML 自体のコードよりもはるかに小さいため、使用している HTML ドキュメントのステートメントの間のどこかでトリガーされているはずalertですasyncが、使用の効果と同様に動作しdeferます。

ここで何が起こったのか説明してください。また、間違っている場合は修正してください。

4

0 に答える 0