Y遅い推奨事項。それらはどの程度必要なのでしょうか?
-
16-09-2019 - |
質問
それで今ダウンロードしました Firebug の yslow 私が構築しているサイトの結果を見てみましょう。
たとえば、静的コンポーネントに ETag、Cookie フリー ドメインを使用し、有効期限ヘッダーを追加するなどの推奨事項が表示されています。
私は、これらを修正することもできますが、データベース呼び出しなどの結果のキャッシュなど、最初に実行できる他の最適化がたくさんある可能性が高いと考えています。
このサイトが YSlow の推奨を保証するほど「それほど」利用されるとは思えません。
必要性を知る前に最適化をすべきではないことはわかっていますが、ETag や有効期限ヘッダーのようなものは、確かにトラフィックが非常に多いサイトでのみ機能するのではないかと考えています。
たとえば、リクエストごとにデータベースに対して 5 回 (比較的小規模な) 呼び出しを行う貧弱な実装を作成し、YSlow が 14 枚の画像が Cookie フリー ドメイン上にないことを通知した場合、これら 2 つの最適化のうちどちらを行うべきですか。最初に取り組むべきですか?
解決
YSlowのは、あなたのユーザーが見ている「ユーザー体験」をチェックすると良いです。その勧告がページを作るためにあるの表示されますをより速くロードします。例えば。 1枚の画像及びspriting 14枚の画像は、純粋に視覚的なものです。ブラウザだけ一度に並行していくつかの画像をダウンロードすることができますので、ルールがあります。
それは今までに大きなことを得れば、彼らは、あなたのサイトは、スケーラブルな作りに向けて、あなたを助けることができるように、私はいつも最初のバックエンドの最適化に取り組むだろう。
他のヒント
無YSlowの当社の.htaccessの第一人者で。しかし、私は最近、Joomlaのウェブサイトを構築し、改善の領域を見つけるために、YSlowのを使用しました。あなたは上記について尋ねたYSlowのの二つの領域 - と「設定エンティティタグ(てETag)」「を追加しますが、ヘッダーの有効期限」 - 。私は自分のドメインのルートに.htaccessファイルを介してアドレス指定を
ヘッダ
を期限切れ追加ヤフーは言う:「Webページは、それらの複数のスクリプト、スタイルシート、画像、Flashでますます複雑になってきているページへの初めての訪問は、すべてのコンポーネントをロードするには、いくつかのHTTPリクエストを必要とするかもしれないヘッダを期限切れに使用します。これらのコンポーネントは、後続のページビュー上の不要なHTTPリクエストを回避する、キャッシュ可能になります。ヘッダは、ほとんどの場合、画像に関連付けられている有効期限が、彼らはやスクリプト、スタイルシート、およびFlashを含むすべてのページのコンポーネントで使用する必要がありますすることができます。 "
これに対処するためには、私が見つかりました。そして、私の.htaccessファイルに次のコードブロックを追加しました(注:変更OPENANGLEBRACKETに「<」とCLOSEDANGLEBRACKETへ「>」):
########## Begin - Expires Headers
#
OPENANGLEBRACKET IfModule mod_expires.c CLOSEDANGLEBRACKET
ExpiresActive On
ExpiresDefault "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType application/x-javascript "access plus 1 week"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/ico "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 month"
ExpiresByType text/css "access plus 1 week"
ExpiresByType text/html "access plus 1 day"
ExpiresByType text/plain "access plus 1 week"
ExpiresByType video/x-flv "access plus 1 month"
OPENANGLEBRACKET /IfModule CLOSEDANGLEBRACKET
#
########## End - Joomla! core SEF Section
設定エンティティタグ(てETag)
ヤフーは言う:「エンティティタグ(てETagは)てETagは、典型的には、それらを一意にする属性を使用して構築されているので、ブラウザのキャッシュ内のコンポーネントは、オリジンサーバ上のいずれかと一致するかどうかを判断するためのメカニズムのウェブサーバとブラウザを使用しています。ブラウザ1つのサーバーから元のコンポーネントを取得し、後で別のサーバー上で、そのコンポーネントを検証しようとすると、サイトをホスティングしている特定のサーバ、タグが一致しません。 "
私は私の.htaccessファイルにこれを追加することによって、私にAグレードを与えたすべてのEtagsとを、削除することを決定します:
########## Begin - Remove Etags
#
FileETag none
#
########## End - Remove Etags
私の.htaccessファイルにこれらの2つの変更が私にこれら二つのYSlowのカテゴリの等級を与えます。
のプロファイリング方1あなたの修正ページビューのための最も減速を引き起こしていると言います。
は、データベースの最適化が進行中の作業になり、一方、YSlowのは、あなたは再びそれを行うことなく、後でについて最も可能性の高い支援をします不平を言っていることを修正どのようなことに注意してください。
あなたが複数のドメイン上に画像を分割し、それらをクッキーレスにする場合、すなわち、あなたはより多くの画像を追加すると、彼らはそれらのドメインに分割されなければならない(うまくいけば、の自動的の)と再び労力を必要としません。
また、ヘッダは、の皆のための訪問のをスピードアップするであろう、(応答をキャッシュできるので)サーバー上の要求の低いレベルにつながる有効期限ます。
YSlowのは、あなたのバックエンドのコードを見ることができないことに注意してください、それはあなたのサイトでブラウザの相互作用に関する勧告をのみをベースにすることができます。あなたは確かにあなたのデータベースが最初の呼び出しを修正する必要があります。複数の要求に関するYSlowのの推奨、GZIPなどはかなり固体であるが、永遠にコンテンツ配信ネットワークを使用するために私に言っています - 小さなサイトには意味がありません。ただ、すべての盲目的勧告、とあなたが知っているとYSlowのではない何をするかの要因に時間/たくさんのお金を費やすことはありません。
あなたは完全に正しいです、次のようなアプリケーションコード内で最適化します。
- 遅いデータベースクエリの最適化
- 頻繁に実行されるクエリのキャッシュ
- 頻繁に使用されるコンポーネントのコンポーネントレベルのキャッシュ
- 高価なアプリケーション コードの一般的な速度の最適化
ほとんどの場合、YSlow の推奨事項よりもパフォーマンスが大幅に向上します。
YSlow の最適化は、通常、サイトの静的部分のパフォーマンスを向上させることに取り組みます。通常、静的部分は、調整する前にすでに動的部分よりも優れたパフォーマンスを発揮します。
、はは何のクッキーを使用しないと、あなたの静的コンテンツのための有効期限してくださいしてください。
それはちょうどあなたを助けていない、それは助けの私の。
私は、自宅で144 Kbpsのを遅くインターネットリンクを使用します。私は、多くの場合、それは更新やビデオファイルをダウンロードし、容量にロードされています。それは、その待ち時間が800ミリ秒かそこらまで行くことができます。
変更された場合は、-のでチェックは非常にゆっくりとロード時間のためのラウンドトリップの多くを要求するWebサイト。使用するサイトは、動的コンテンツが実際に中にロードすることがあるため、すぐにロードし、適切に有効期限ます。
バックエンドのコードが高速フロントエンドのコードよりも頻繁にあります。最小まで外部リソース(CSSの背景画像、CSSファイルやJavaScriptファイル)の量を維持してみます。
これは、1つの私見を行うことができます最も重要な最適化となります。