Web パフォーマンス最適化ソリューションの詳細な紹介
第 1 章 Web サイトを開いて遅いステータス分析
会社が IDC コンピューター ルームに展開されている VIP Web サイトにアクセスすると、次のように感じられます。非常に遅い。これは何が原因でしょうか?ページの応答時間を短縮し、ユーザー エクスペリエンスを向上させるには、ユーザーが何に待ち時間を費やしているかを知る必要があります。
下の図に示すように、ログイン ページを追跡できます
上の図から、HTML ドキュメントが総応答時間の 20% のみを占めていることが分析でき、他の 80% 応答時間は、JS、CSS、画像、その他のコンポーネントのダウンロードに使用されます。したがって、WEBのフロントエンドには最適化の余地がたくさんあります。WEBのフロントエンド最適化とバックエンド最適化を総合的に考慮して、WEBのパフォーマンス最適化計画を立てます。
1. 最小化 HTTP リクエスト
1、 スクリプトとスタイル ファイルを結合する たとえば、複数の CSS ファイルを 1 つに結合したり、複数の JS ファイルを 1 つに結合したりできます。
2、 CSS スプライト CSS 背景 関連要素を使用して背景画像 、 を絶対的に配置し、複数の画像を 1 つの画像に結合します。
2.ブラウザキャッシュを使用する
ユーザーが Web サイトの異なるページを閲覧すると、同じ JS、CSS、写真など、多くのコンテンツが繰り返されます。これらのファイルをローカルにキャッシュすることをブラウザーに提案したり強制したりできれば、ページによって生成されるトラフィック量が大幅に削減され、ページの読み込み時間が短縮されるでしょう。
サーバー側の応答 header によると、ファイルにはブラウザーのキャッシュ ステータスがいくつかの異なるレベルがあります。
1. サーバーはブラウザに対し、このファイルをキャッシュせず、サーバー上のファイルを毎回更新するように指示します。
2. サーバーはブラウザに指示を与えません。
3。最後の送信で、サーバーは Last-Modified または Etag データをブラウザに送信し、再度閲覧するときに、ブラウザはローカル バージョンが最新かどうかを確認するためにこれらのデータをサーバーに送信します。最新のものは、サーバーが 304 コードを返し、ブラウザーにローカル バージョンを直接使用するか、そうでない場合は新しいバージョンをダウンロードするように指示します。一般に、静的ファイルのみが存在する場合、サーバーはこれらのデータを提供します。
4. サーバーはブラウザにファイルを強制的にキャッシュし、有効期限を設定します。キャッシュの有効期限が切れる前に、ブラウザはサーバーと通信せずにローカル キャッシュ ファイルを直接使用します。
私たちがしなければならないことは、特にJS、CSS、画像などの変更が少ないファイルに対して、ブラウザを強制的に4番目の状態にしようとすることです。
3. 圧縮コンポーネントを使用する
IE と Firefox ブラウザは両方ともクライアント GZIP をサポートし、クライアントが受信した後、クライアントに送信します。解凍には、サーバーとクライアントの CPU の一部がわずかに消費されますが、帯域幅の使用率が高くなります。プレーンテキストの場合、圧縮率は非常に優れています。各ユーザーが帯域幅の 50% を節約すると、レンタルした帯域幅で 2 倍の顧客にサービスを提供でき、データ送信時間が短縮されます。 4.
画像とJS
画像をプリロードする最も簡単な方法は、JavaScript で新しいImage() オブジェクトをインスタンス化し、画像の URL をロードすることです。パラメータとして渡されます。 function preLoadImg(url) {
var img = new Image();
img.src = url;
}
JSと画像をプリロードできます 5.
スクリプトを下部に配置スクリプトを上部に配置することによって生じる問題
1,
スクリプトを使用する場合、スクリプトの下にあるコンテンツのプログレッシブレンダリングがブロックされます2,
スクリプトのダウンロード時に並列ダウンロードがブロックされます
一番下に置くとが発生する可能性がありますJS エラーの問題。スクリプトが読み込まれていない場合、ユーザーがスクリプト イベントをトリガーします。
状況を総合的に考えてください。6.
スタイルファイルをページの上部に配置しますスタイルシートがロードされていない場合、レンダリングツリーを構築するのは無駄です。スタイルファイルがページの下部に配置される場合、 1、白い画面 2、スタイルなし コンテンツのフラッシュ 7. 外部JSとCSS を使用して、インラインJSとCSSを外部JSに作成します、 CSS。インライン JS と CSS の繰り返しダウンロードを減らします。 8. コンポーネントを複数のドメインに分割する
ページのリクエスト分析 A . ブラウザは、DNS、3と組み合わせた アドレスに基づいて、URLに対応するIPアドレスを解析します。 HTTPリクエスト を送信4。 リクエストされたサーバーへの接続を開始し、関連コンテンツをリクエストします 5. ブラウザはサーバーから返されたコンテンツを解析し、ページを表示します 上記は基本的にリクエストから実装までのページの基本的なプロセスです。以下ではこのプロセスを分析します。 URLを入力すると、ブラウザは、IPアドレスを知ることによってのみ、このURLに対応するIPが何であるかを知ることができます。指定されたサーバーの特定の IP とポート番号にリクエストを送信します。ブラウザの DNS パーサーは、URL を正しい IP アドレスに解析する役割を果たします。この解析プロセスには時間がかかり、この解析期間中、ブラウザはサーバーから何もダウンロードできません。ブラウザとオペレーティング システムは、DNS 解像度キャッシュ サポートを提供します。 IPアドレスを取得した後、ブラウザはHTTPリクエストをサーバーに送信します。プロセスは次のとおりです: 1 TCPパケットを送信して、サーバーに接続2 3 HTTP の GET リクエストを送信します。このリクエストには、共通の cookie やその他の head ヘッダー情報など、多くのものが含まれています。 リクエストが送信された後は、サーバー側のプログラムが最終結果をクライアントに送信します。 html ドキュメントです。いわゆる html ドキュメントは純粋な html コードであり、画像、スクリプト、 CSS などは含まれません。 。それがページの html 構造です。なぜなら、この時に返されるのはページのhtml構造だけだからです。この html ドキュメントがブラウザに送信されるのにかかる時間は非常に短く、通常、応答時間全体の約 10% を占めます。 html のスケルトンを上から下まで段階的に解析することです。 この時点で html ドキュメント内で img タグに遭遇すると、ブラウザはこの img レスポンスの URL アドレスに HTTP リクエストを送信して、画像を取得して表示します。 html ドキュメント、flash に多数の画像がある場合、ブラウザはそれらを 1 つずつリクエストしてからレンダリングします。すべての画像をリクエストする必要がある場合は、前述の手順を実行する必要があります。つまり、 を解析します。 URL 、オープン tcp 接続など。データベースにアクセスする場合と同様に、接続を開くとリソースも消費されます。できるだけ少ないデータベース接続を開き、接続プール内のより多くの接続を使用するようにします。同様に、tcp接続も再利用できます。 http1.1 は、永続的な接続 (永続接続) の概念を提案しました。これは、同じ HTTP 接続で同時に複数のリクエストを処理でき、 tcp 接続を削減できることを意味します。 ページのhtmlスケルトンがロードされると、ブラウザはページ内のタグの解析を開始します、は上から下へ解析を開始します。 最初は head タグの解析で、head で引用される JS スクリプトがあることが判明した場合、ブラウザはこの時点でスクリプトのリクエストを開始します。 JS リクエストが完了するまで、ページ全体の解析プロセスが停止します。次に、bodyタグの解析など、ページが下方向に解析されます。bodyにimgタグがある場合、imgが複数ある場合、ブラウザはimgの対応するリソースをリクエストします。 img タグを追加すると、ブラウザはそれらを 1 つずつ解析します。解析は JS のように待機せず、同時にダウンロードされます。
URL
1に従ってください。 URLアドレスを入力するか、
URL
2
以上がWeb パフォーマンス最適化ソリューションの詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Caddy の概要 Caddy は強力で拡張性の高い Web サーバーであり、現在 Github 上に 38,000 以上のスターが付いています。 Caddy は Go 言語で書かれており、静的リソースのホスティングとリバース プロキシに使用できます。 Caddy には以下の主な特徴があります: Nginx の複雑な構成と比較して、元の Caddyfile 構成は非常にシンプルです; 提供する AdminAPI を通じて構成を動的に変更できます; デフォルトで自動 HTTPS 構成をサポートし、自動的に適用して構成できますHTTPS 証明書; 数万のサイトのデータに拡張可能; 追加の依存関係なしでどこでも実行可能; Go 言語で記述されているため、メモリの安全性がより保証されます。まずはCentOに直接インストールします

顔面遮蔽弾幕とは、映像内の人物を遮ることなく大量の弾幕が浮遊し、人物の背後から浮遊しているように見せることです。機械学習は数年前から普及していますが、これらの機能がブラウザでも実行できることは多くの人に知られていません。この記事では、ビデオ連発における実際的な最適化プロセスを紹介します。記事の最後に、適用可能なシナリオをいくつか示します。このソリューションを開くことを望んでいます。いくつかのアイデアがあります。 mediapipeDemo (https://google.github.io/mediapipe/) は、顔ブロック弾幕のオンデマンドアップアップロードの主流の実装原理を示していますサーバーのバックグラウンド計算により、ビデオ画面内のポートレート領域を抽出し、SVG ストレージに変換しますクライアントがビデオを再生している間、サーバーから SVG をダウンロードし、弾幕、ポートレートと組み合わせる

JavaAPI 開発における Web サーバー処理に Jetty7 を使用する インターネットの発展に伴い、Web サーバーはアプリケーション開発の中核部分となり、多くの企業でも注目を集めています。増大するビジネス ニーズを満たすために、多くの開発者が Web サーバー開発に Jetty の使用を選択しており、その柔軟性と拡張性は広く認識されています。この記事では、JavaAPI 開発における Jetty7 の使用方法を紹介します。

フォーム検証は Web アプリケーション開発において非常に重要なリンクであり、フォーム データを送信する前にデータの有効性をチェックして、アプリケーションのセキュリティ脆弱性やデータ エラーを回避できます。 Web アプリケーションのフォーム検証は、Golang を使用すると簡単に実装できます。この記事では、Golang を使用して Web アプリケーションのフォーム検証を実装する方法を紹介します。 1. フォーム検証の基本要素 フォーム検証の実装方法を紹介する前に、フォーム検証の基本要素が何であるかを知る必要があります。フォーム要素: フォーム要素は

まず、frpって何?という疑問があると思います。簡単に言うと、frp はイントラネット侵入ツールであり、クライアントを設定すると、サーバー経由でイントラネットにアクセスできるようになります。現在、私のサーバーは Web サイトとして nginx を使用しており、ポート 80 が 1 つだけあります。では、FRP サーバーもポート 80 を使用したい場合はどうすればよいでしょうか?クエリ後、nginx のリバース プロキシを使用してこれを実現できます。追加: frps はサーバー、frpc はクライアントです。ステップ 1: サーバーの nginx.conf 構成ファイルを変更し、次のパラメータを nginx.conf の http{} に追加します。server{listen80

Web 標準は、W3C およびその他の関連組織によって策定された一連の仕様とガイドラインです。HTML、CSS、JavaScript、DOM、Web アクセシビリティおよびパフォーマンスの最適化の標準化が含まれます。これらの標準に従うことで、ページの互換性を向上させることができます。 、メンテナンス性とパフォーマンス。 Web 標準の目標は、Web コンテンツをさまざまなプラットフォーム、ブラウザー、デバイス上で一貫して表示および操作できるようにして、より優れたユーザー エクスペリエンスと開発効率を提供することです。

Cockpit は、Linux サーバー用の Web ベースのグラフィカル インターフェイスです。これは主に、初心者/熟練ユーザーにとって Linux サーバーの管理を容易にすることを目的としています。この記事では、Cockpit アクセス モードと、CockpitWebUI から Cockpit への管理アクセスを切り替える方法について説明します。コンテンツ トピック: コックピット エントリ モード 現在のコックピット アクセス モードの確認 CockpitWebUI からコックピットへの管理アクセスを有効にする CockpitWebUI からコックピットへの管理アクセスを無効にする まとめ コックピット エントリ モード コックピットには 2 つのアクセス モードがあります。 制限付きアクセス: これは、コックピット アクセス モードのデフォルトです。このアクセス モードでは、コックピットから Web ユーザーにアクセスできません。

nginx はバージョン情報を非表示にするだけでなく、カスタム Web サーバー情報もサポートしています。最終的な非表示結果を見てみましょう。それを実現する方法は何ですか? それは実際には非常に簡単です。下を見てください 1. 最新の安定バージョンをダウンロードするための公式 Web サイト wgethttp ://nginx.org/ download/nginx-1.14.1.tar.gz2 tar-xfnginx-1.14.1.tar.gzcdnginx-1.14.13 を解凍します。 c ファイルを修正します (1) vimsrc/http/ngx_http_header_filter_module.c #Modify 49行目 staticu_charngx_http_
