ページ中にあなたのウェブサイト上でコンテンツのダウンロードをブロックするJavascript

StackOverflow https://stackoverflow.com/questions/658599

  •  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を含む)がいますオンラインおよびブックフォーム

他のヒント

万能な状況ではないようです。そのため、私はよくこの有名な記事に頼って、そのような質問に答えます:

http://developer.yahoo.com/performance/rules.html

ポッドキャストの1つで言及されましたが、javascriptを別のドメインまたはサブドメインでホストする場合、ブラウザーはさらに接続を開いてjsと残りのページの両方をダウンロードできます同時。これが、多くの人が自分のjQueryのインスタンスではなく、jQueryのインスタンスへのリンクを選択する理由です。この例にもマシンの利点がありますが、基本的な原則は保持されます。

一言で言えば、この記事では、スクリプトファイルの並列ダウンロードを実現するために、<script>DOMノードを動的に接続するように言っています。これは機能し、新しいものではありません。

ただし、この方法の最大の欠点については言及していません。スクリプトは並行してダウンロードされますが、実行順序は決定的ではありません。 IEはダウンロードを完了した順に実行しますが、FirefoxはDOMに添付された順に実行します。

これは問題です。たとえば、スクリプトAとスクリプトBがその手法を使用して追加されたとします。スクリプトAがjQueryであり、スクリプトBがこれを行うと想像してください。

$(document).ready(function(){...})

IEでは、何らかの理由(ネットワークトラフィック、キャッシュミスなど)でスクリプトAの前にスクリプトBのダウンロードが完了した場合、jQueryがロードされる前に実行されるため、混乱しています。

この記事を参照より良い説明があります。

Rex Mの答えは行く方法。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top