0

私は一日中、JavaScriptでの読み込みの延期について読んでレビューしましたが、何もありませんでした。defer / async属性とdeferredfunctions.js(?)を試してみました。私はそれをどうすればいいですか、そしてそれをどこに置くべきですか?私の無知でごめんなさい。

これが私のコードです:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js"></script>
<script src="http://mysite.com/files/js/mosaic.1.0.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
jQuery(function($){     $('.fade').mosaic();});</script>
4

1 に答える 1

2

質問は少し広すぎて、正しく答えることができません。JavaScriptコードを非同期/遅延してロードし、スクリプトロードを使用することには、さまざまな理由があります。

なぜ遅延してロードする必要があるのですか? 同じ理由で、すべての<script>タグを HTML マークアップの一番下に配置する必要があります。<script>要素はブラウザの HTML レンダラーの実行をブロックします。要素が検出される<script>と、HTML パーサーは停止し、続行する前にそのスクリプト ファイルをロードして評価します。これは、多かれ少なかれ、ページの読み込み時間のパフォーマンスに大きな影響を与える可能性があります (javascript ファイルの数とサイズによって異なります)。

<script>これが、要素にasyncand/ordeferr属性のタグを付ける必要がある理由です。ブラウザーがこれらの属性を理解する場合 (最近のほとんどのブラウザーは理解しています)、停止することはありませんが、リソースを非同期で読み込んで評価します。

あなたは今、「順序と依存関係はどうですか」と言うかもしれませんが、これは有効で適切な議論です。すべてのスクリプトに非同期ロードを許可するブラウザのフラグを付けると、順序が保証されなくなります。これは、スクリプトが他のスクリプトの存在に依存している場合に大きな問題になります。ここで、requireJSなどのサードパーティのスクリプト ローダーが登場します。

于 2012-12-02T20:29:19.510 に答える