2011-08-14 11 views
8

は本当に物事をスピードアップこれは最適化ですか?

<script type="text/javascript" src="jquery.js"></script> 

から

<script type="text/javascript"> 
    <?php echo file_get_contents('jquery.js'); ?> 
</script> 

に行くのでしょうか?

phpがネットワークを経由していないので、phpがファイルの内容をフェッチして埋め込むことができるため、クライアントのブラウザがファイルの完全な要求を行うことができるためです。

伝統的な方法をキャッシュする主な違いはありますか?

+2

しかし、_will_はキャッシュに影響します。 – GWW

+2

@GWWは「may」を「will」に置き換えます。 :) – nickf

+1

@nickf:Fixed;) – GWW

答えて

11

それは速く最初ページロードのかもしれないが、すべての後続のロードにはずっと遅くなります。最初の例では、クライアントブラウザは結果をキャッシュします。第二に、それはできません。

2

どちらの場合も、バイトをブラウザに転送する必要があります。唯一の違いは、後者の場合にHTTPリクエストを保存することです。 また、CDATAでJavaScriptをエスケープするか、htmlspecialcharsを使用してエスケープしてください。

JSのlibをHTMLページに含めると、ブラウザによってキャッシュされることはありません。ブラウザは通常のHTMLコードをキャッシュすることができ、後続のリクエストでJSをフェッチする必要がないため、通常はJSを通常のHTMLコードと区別しておくことをお勧めします。

これを短縮するには、ページがユーザーによって一度呼び出され、jqueryが他のページで使用されない場合にのみ機能する最適化です。


また、あなたはgoogle apisからjqueryのを使用することもできます - 彼らはとにかくブラウザのキャッシュであることが多い影響で、これは全くのlibを転送する必要はありません。

+1

HTML 4.01では、要素型 'SCRIPT'がすでにコンテンツタイプCDATAを宣言しています。 –

+1

...と 'htmlspecialchars'は' if(a

+0

私はそのページがXHTMLであることを期待していましたが、XHTMLではエスケープする必要があります。 – cweiske

0

同じファイルを使用するファイルの数によって異なります。しかし、ほとんどの場合、これはコードの最初の部分よりも遅くなります。ほとんどの場合、jquery.jsがキャッシュされるためです。

4

クライアントの生活の中で1つのウェブサイトを提供するのは、2つではなく1つのHTTPリクエストしかないためです。

すべて同じJavaScriptファイルにリンクする複数のサイトを提供する場合は、このすべての冗長なデータを複製して、クライアントにファイルをキャッシュする機会を与えません。

0

はい、初めてページを配信するために使用されているHTTPリクエストの数に関するパフォーマンスの最適化になります - 最初のダウンロード後にjquery.jsがブラウザにキャッシュされるため、ページロードはページごとに少し大きくなります。

0

あなたのページが静的である場合はどうなりますか?
しかし、jqueryが変更されていないのにあなたのブラウザがそのページをダウンロードするのは非常に時間がかかるのですが、まだ含まれていません。 src="jquery.js"を使用してページが変更された場合、ブラウザはキャッシュからjqueryをロードし、再度ダウンロードしないので、実際にはsrc="jquery.js"を使用する方が高速です。

2

これはその1ページのためです。

同じライブラリ(jquery.jsが同じURLからダウンロードされたもの)を使用している後続のすべてのページは、外部ファイルへの参照を含めると、余分な接続でダウンロードする必要がありますHTTP \ 1.1とパイプライン処理)、あなたのWebサーバが有用なヘッダ(Expires:〜将来はヘッダー)をブラウザに提供し、ブラウザはそのキャッシュをキャッシュし、 "最適化"ページ。

また、このようなページを参照してください。最初のものは、ブラウザがキャッシュすることができますので、より良いです http://www.stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/

(ここでのキーワードは、これらの遠未来の有効期限に関連して「回転を増す」される)

2

をスクリプト。 2番目のバージョンでは、スクリプトが変更されなくても、ページを読み込むたびにスクリプトを再ダウンロードする必要があります。

2番目のバージョンは、ブラウザでキャッシュできないスクリプトの改善点です。

関連する問題