高性能なウェブサイトのための14のテクニック

高性能なウェブサイトのための14のテクニック

オリジナル: http://developer.yahoo.com/performance/rules.html
2007.3.20 スティーブ・サウダーズ
マスクによる翻訳
2004 年から、私は Yahoo のアウトライヤー パフォーマンス グループで働き始めました。私たちは、Yahoo 製品の品質検査と改善を専門とする非常に小さなチームです。私は現在、バックエンド エンジニアとして、フロントエンドのコード最適化プロジェクトに取り組んでいるため、これは改善のための絶好の機会だと考えています。私の目標はユーザー エクスペリエンスを向上させることだったので、さまざまな帯域幅でブラウザーの応答時間を測定し、http://yahoo.com からの http トラフィックを示す次のグラフを作成しました。

上記のアイコンの最初のラベルは html で、これは html ドキュメントで最初に読み込まれるものです。この例では、html コードの読み取りは、応答時間全体の 5% しか占めていません。この結果は、ほとんどの Web サイトに当てはまります。米国でサンプリングされた上位 10 の Web サイトのうち、5% を超えているものの 20% 未満の Web サイトは 1 つだけです。残りの 80% の時間は、Web ページ上の他のコンテンツ、つまりフロントエンド (元のテキストがフロントエンドであり、これは html コードを除く残りのコンテンツで、画像、スクリプト、フラッシュ、ビデオなど、さまざまなものになります) の読み取りに使用されます。これが、表示速度を向上させるためにこれらのことに重点を置く必要がある主な理由です。
フロントエンドから始めるべき主な理由は 3 つあります
    ここには改善と強化の可能性があります。サイズを半分に縮小できれば、応答時間を 40% 短縮できます。フロントエンドの改善には、バックエンドの改善よりも必要な時間とリソースが少なくて済みます。 (バックエンドを改善するには、アプリケーション計画、コードの再設計、コードの最適化方法の検討、ハードウェア構成の追加または変更、分散データベースなどが必要です。) フロントエンドの改善は、私たちの仕事で実証されています。Yahoo には、最高のパフォーマンス ルールに従ってユーザー側の応答時間を 25% 以上改善したチームが 50 あります。

私たちの黄金律は、まずフロントエンドのパフォーマンスを最適化することです。これは、ユーザー側の応答時間の 80% を占めるからです。
1. http リクエストの数を減らす<br />画像、CSS、スクリプト、フラッシュなどにより、http リクエストの数が増加します。これらの要素の数を減らすと、応答時間が短縮されます。
CSS Spritesテクノロジーは、画像リクエストの数を減らし、散らばった小さな画像をまとめ、background-positionを使用して背景画像の位置を変更することができます。 HTML要素の幅と高さが事前に定義されていることが前提です。 実際、それはマスクのようなものです。 背景を動かすと、さまざまなシーンが見られます。
埋め込み画像は、data: URL スキームを使用して画像コンテンツ コードを HTML コードに直接埋め込むため、HTML コードのサイズが大きくなります。改善された方法は、埋め込み画像を CSS に埋め込むことです (CSS はキャッシュされます)。これにより、HTML のサイズを増やすことなく、HTTP リクエストの数をより効果的に減らすことができます。
多くのユーザーはキャッシュが空の状態でサイトにアクセスするため、初回の速度は重要です。
最初のルールが最も重要です。
前のページ1 2 3 次のページ 続きを読む

<<:  XHTML の珍しいが便利なタグ

>>:  AngularJSループオブジェクトプロパティで動的列を実装するアイデアの詳細な説明

推薦する

前後の秒、分、時間、日数を取得するMySQLデータベース

現在の時刻を取得します: current_timestamp を選択します。出力: 2016-06-...

伝説的な VUE 構文シュガーは何をするのでしょうか?

目次1. 糖衣構文とは何ですか? 2. VUE の構文糖とは何ですか? 1. 最も一般的な構文シュガ...

docker mysqlの起動時に初期化SQLを実行する

1.Mysqlイメージを取得するdocker pull mysql:5.7 2. MySQLイメージ...

ROS2のインストールとdocker環境の使い方について

目次Docker を使用する理由は何ですか? DockerのインストールROSイメージを取得するRO...

html2canvas を使用して HTML コードを画像に変換する方法

コードを画像に変換するにはhtml2canvas は、ブラウザから Web ページのスクリーンショッ...

Django がローカル MySQL データベースに接続する手順 (pycharm)

ステップ1:setting.pyでデータベースを変更する # データベースを構成する DATABAS...

CSS3 フィルターを使用して PNG 画像の色を変更するサンプル コード

この方法は、CSS3のdrop-shadow filterを使用して、png画像の不透明部分に任意の...

MySQL 5.7.31 64 ビット無料インストール版チュートリアル図

1. ダウンロードダウンロードアドレス: https://dev.mysql.com/get/Dow...

jsを使用して簡単な抽選機能を実現する

この記事では、参考までに、簡単な抽選機能を実装するためのjsの具体的なコードを共有します。具体的な内...

JavaScriptは文字の出現回数をカウントします

この記事の例では、文字の出現回数をカウントするJavaScriptの具体的なコードを参考までに共有し...

CSS3 パッケージ化後にプレフィックスプラグインを自動的に追加する方法の詳細な説明: autoprefixer

vue-cli で構築されたプロジェクト スキャフォールディングでは、すでに autoprefix...

Vue カプセル化に基づくプルダウン更新およびプルアップ読み込みコンポーネント

VueとネイティブJavaScriptカプセル化に基づいて、プルダウンリフレッシュとプルアップロード...

Linuxシステムはポート3306、8080などを外部に開放します。ファイアウォール設定の詳しい説明

多くの場合、Linux システムに Web サービス アプリケーション (Tomcat、Apache...

mysql 5.7.11 winx64.zip インストールと設定方法のグラフィックチュートリアル

MySql データベース システムをインストールして構成します。 1. ダウンロード http://...

HTML で入力プロンプトのテキスト スタイルを変更するためのサンプル コード

多くのウェブサイトでは、入力ボックスにヒントテキストが表示されています。入力ボックスにヒントテキスト...