0

Ruby on Rails 開発環境では、Firefox では 30 秒後にページが表示されますが、IE 8 (IE 7 互換モード) では 90 秒かかります。

詳細な調査により、ページの速度を低下させたのは Javascript であることがわかりました。Javascript がオフになっていると、ページのコンテンツも 30 秒で表示されるためです。

おそらく 7 つまたは 8 つの jQuery プラグイン、Facebook スクリプト、および Google アナリティクス スクリプトがあるため、すべての Javascript コードを HTML ファイルの最後に移動するにはかなりの時間がかかります (これにより、ページ コンテンツ ビューが高速化され、コンテンツが表示されるようになります)。 Firefox と同じように 30 秒後に表示されます)、すべての Javascript コードの実行が完了する前に IE に強制的にページ コンテンツを表示させる方法はありますか?

IE はすべての Javascript コードが最初に終了するのを待っている可能性があると思います。なぜならdocument.write()、HTML 内にあるはずのステートメントがある場合... Firefox または Chrome はそれを待たずにコンテンツをすぐに表示します。

(本番サーバーでは、多くの「部分」(HTML サブコンポーネント) がキャッシュされるため、5 ~ 7 秒後にページが Firefox に表示されます。IE 8 もかなり長く、約 40 秒ほどかかります。 )

PS Javascript が HTML 全体に埋め込まれている強力な理由は、たとえば「画像カルーセル」がある場合、HTML コードが HAML ファイルによって生成された HTML ファイルである「部分」にあり、すべてHTMLとJavascriptコードはこのファイルにあり、HTMLを1つのファイルに、Javascriptを別のファイルに入れるのではなく、カプセル化を改善しますが、これらすべてのJavascriptコードブロックがjQueryのみを使用する場合、これらの$(document).ready(function() { ... })コードはどうなるでしょうかブロックは IE でページ表示を遅くしますか?

4

2 に答える 2

0

残念ながら、jQuery プラグインはすべて DOM が IE に完全に読み込まれるのを待っていると考えて間違いありません。解決策の 1 つは、ページの読み込みを高速化することです。これを行うためのいくつかの良い方法を次に示します。

  1. jQuery を自分でホストしないでください。Google または Microsoft CDN からロードします。これにより、Web サーバーに関連付けられている接続が 1 つ少なくなります。
  2. jQuery を介してコンテンツを動的に読み込みます。事後に再配線するのは難しいですが、コンテンツを段階的に読み込み、ページの読み込みが速くなったという印象を確実に与えることができます.
  3. 可能であれば、すべての JavaScript をページの下部に配置してください。
  4. 可能であれば、jQuery での document.ready の呼び出しを削除します。
  5. この jQuery プラグインを使用して画像を遅延読み込みします: http://www.appelsiini.net/2007/9/lazy-load-images-jquery-plugin ページの最初の表示中にコンテンツのダウンロードが少なくなります。
  6. ホストされたスクリプトと画像、または少なくとも別のドメインで、サード パーティの CDN を使用します。同じドメインからのロードがボトルネック
于 2010-07-20T22:03:49.087 に答える
0

また、ポイント 3 で Nissan Fan が言ったことを提案しますが、1 つの修正があります。不要なスクリプトをすべてページの一番下に移動して、先頭に jquery とおそらくもう 1 つのスクリプトだけを残します。

もう 1 つ提案したいのは、LAB.js の使用を検討することです。これにより、ブラウザは JS と他のページ アイテムを並行して処理するようになり、ロード プロセスの時間を大幅に短縮できます。

http://labjs.com/

于 2011-02-01T19:12:03.247 に答える