0

メイン レイアウト ページがあり、ページが ajax 経由で読み込まれた後に読み込まれるいくつかの外部スクリプトがあります。それらのいくつかは、socket.io 接続を開いているため、非常に遅いです。これにより、ページ全体の読み込みが遅くなります。

いくつか質問があります:

  1. 外部ウィジェットの本体に 5 つ以上のスクリプトが含まれていても問題ありませんか? サービスごとのスクリプトの数に対して、どのような合理的な制限を設ける必要がありますか?

  2. <script src="/path/to.js"></script>ajax をロードした html に埋め込まれています - サーバーへの同期または非同期クエリを作成しますか?

  3. 外部スクリプトの読み込み中にブラウザのブロックを回避する方法は?

  4. 多くの外部スクリプトがある場合、読み込み時間を短縮するにはどうすればよいですか?

更新:最後に、HeadJSライブラリを使用します。

4

1 に答える 1

1
  1. 多くの異なるスクリプトをロードすることは問題ありませんが、ほとんどのブラウザはドメインごとに最大2つの同時接続を許可するため、異なるHTTP呼び出しを減らすことをお勧めします。これは、コードがスクリプトを2つずつロードすることを意味します。それらがロードされるまで実行を続けます。ベストプラクティスは、すべてのスクリプトを縮小して、より少ないファイルに連結することです。
  2. 私の知る限り、通常のスクリプトタグは通常同期的に読み込まれ、ajaxで読み込まれたhtmlでも速度が低下します。
  3. ブラウザのブロックを回避するためのいくつかの良い提案があります。重いスクリプトで作業する前にすべてを確実に解析するために、bodyタグの下部にスクリプトをロードしてください。また、deferタグとasyncタグ(後者はHTML5)を使用するか、ドキュメントが「準備完了」イベントを送信した後にスクリプトをロードしてみることもできます。
  4. HTTP呼び出しを減らし、必要に応じて一部のJSの解析を延期し、JavaScriptの外部をdefer + asyncでロードして、ブラウザーがフリーズしないようにします。

良い読み物はこれです:http ://www.sitepoint.com/a-detailed-breakdown-of-the-ltscriptgt-tag/

スクリプトタグ自体の歴史と進化を説明するのに非常に徹底的であり、いくつかのベストプラクティスがあります。

于 2012-07-19T13:16:52.823 に答える