ページ中にあなたのウェブサイト上でコンテンツのダウンロードをブロックするJavascript
-
20-08-2019 - |
質問
これはあなたのウェブサイトにjavascriptを含める最良の方法ですか? http://www.webdigi.co.uk/blog/2009/avoid-javascript-blocking-content-download-on-your-website-during-page-load/
解決
ウェブサイトにJavaScriptを含める最善の方法は、できるだけ少ないファイルを含めることですすべてのマークアップおよびその他のアセットが読み込まれた後、ページの終わり *で。そのようにすると、<!> quot; プログレッシブな強化 < !> quot;開発モデル。
* Yahooはこれを研究するために多大なお金を積極的に費やしており、調査結果を公開する専任のフルタイムの人々(優秀なSteve Soudersを含む)がいますオンラインおよびブックフォーム。
他のヒント
万能な状況ではないようです。そのため、私はよくこの有名な記事に頼って、そのような質問に答えます:
ポッドキャストの1つで言及されましたが、javascriptを別のドメインまたはサブドメインでホストする場合、ブラウザーはさらに接続を開いてjsと残りのページの両方をダウンロードできます同時。これが、多くの人が自分のjQueryのインスタンスではなく、jQueryのインスタンスへのリンクを選択する理由です。この例にもマシンの利点がありますが、基本的な原則は保持されます。
一言で言えば、この記事では、スクリプトファイルの並列ダウンロードを実現するために、<script>
にDOM
ノードを動的に接続するように言っています。これは機能し、新しいものではありません。
ただし、この方法の最大の欠点については言及していません。スクリプトは並行してダウンロードされますが、実行順序は決定的ではありません。 IEはダウンロードを完了した順に実行しますが、FirefoxはDOMに添付された順に実行します。
これは問題です。たとえば、スクリプトAとスクリプトBがその手法を使用して追加されたとします。スクリプトAがjQueryであり、スクリプトBがこれを行うと想像してください。
$(document).ready(function(){...})
IEでは、何らかの理由(ネットワークトラフィック、キャッシュミスなど)でスクリプトAの前にスクリプトBのダウンロードが完了した場合、jQueryがロードされる前に実行されるため、混乱しています。
この記事を参照より良い説明があります。
Rex Mの答えは行く方法。