Web サイトのパフォーマンスを向上させる PHP の詳細

小云云
リリース: 2023-03-21 21:36:01
オリジナル
1444 人が閲覧しました

この記事では主に、PHP を使用して Web サイトのパフォーマンスを向上させる詳細について説明し、皆様のお役に立てれば幸いです。

最初の 1 つは、HTTP リクエストの数をできる限り減らすことです (HTTP リクエストの数を減らす)

http リクエストはコストがかかるため、リクエストの数を減らす方法を見つけると、Web ページの速度が自然に向上します。一般的に使用される方法には、css、js のマージ (css ファイルと js ファイルをそれぞれ 1 つのページにマージする)、イメージ マップ、CSS スプライトなどが含まれます。もちろん、css と js ファイルを複数のファイルに分割するのは、css の構造や共有などの考慮事項によるものかもしれません。当時のアリババの中国 Web サイトのアプローチは、Web サイトを個別に開発し、バックグラウンドで JS と CSS をマージすることでした。この方法では、ブラウザーに対するリクエストは 1 つでしたが、開発中に複数のリクエストに復元できるため、管理が容易になりました。繰り返しの参照。 Yahoo では、ホームページの CSS と JS を外部参照ではなくページ ファイルに直接書き込むことを推奨しています。ホームページへのアクセス数が多すぎるため、リクエストの数を 2 件減らすこともできます。実際、多くの国内ポータルがこれを行っています。

CSS スプライトとは、ページ上の背景画像を 1 つにマージし、CSS のbackground-position 属性では定義できない値を介して背景を取得することを意味します。タオバオとアリババの中国サイトは現在これを行っています。興味があれば、タオバオとアリババの背景画像をご覧ください。

http://www.csssprites.com/ これは、アップロードした画像を自動的に結合し、対応する背景の位置座標を与えることができるツール Web サイトです。そして、結果を png および gif 形式で出力します。

2 番目に、コンテンツ配信ネットワークを使用します。コンテンツ配信ネットワークを使用します

正直に言うと、私は CDN についてあまり知りません。簡単に言うと、既存のインターネットに新しいレイヤーを追加することで、ネットワーク アーキテクチャによってコンテンツが公開されます。 DNS 負荷分散技術を通じて、ユーザーのソースを特定し、杭州のユーザーは、杭州に最も近いサーバー上のコンテンツにアクセスして、必要なコンテンツを取得します。北京では杭州に最も近いサーバー上のコンテンツにアクセスします。北京に近いサーバー上のコンテンツにアクセスします。これにより、ネットワーク上のデータ送信時間が効果的に短縮され、速度が向上します。さらに詳しい情報については、Baidu Encyclopedia の CDN の説明を参照してください。 Yahoo! は静的コンテンツを CDN に配信し、ユーザーの影響時間を 20% 以上短縮します。

記事 3、Expires ヘッダーの追加: Expires ヘッダーの追加

現在、ますます多くの画像、スクリプト、CSS、フラッシュがページに埋め込まれており、それらにアクセスする際に必然的に http リクエストを何度も実行することになります。実際、Expires ヘッダーを設定することで、これらのファイルをキャッシュできます。 Expire は実際には、ヘッダー メッセージを通じてブラウザー内の特定の種類のファイルのキャッシュ時間を指定します。 Flash 内のほとんどの画像は、キャッシュ後は頻繁に変更する必要がなく、今後、ブラウザはこれらのファイルをサーバーからダウンロードする必要がなくなり、キャッシュから直接読み取るようになります。これにより、アクセスが高速化されます。ページが再び大幅に高速化されます。一般的な HTTP 1.1 プロトコルによって返されるヘッダー情報:

HTTP/1.1 200 OK   
Date: Fri, 30 Oct 1998 13:19:41 GMT   
Server: Apache/1.3.3 (Unix)   
Cache-Control: max-age=3600, must-revalidate   
Expires: Fri, 30 Oct 1998 14:19:41 GMT   
Last-Modified: Mon, 29 Jun 1998 02:28:12 GMT   
ETag: “3e86-410-3596fbbc”   
Content-Length: 1040   
Content-Type: text/html
ログイン後にコピー

これは、サーバー側スクリプトを通じてキャッシュ制御と有効期限を設定することで実行できます。

たとえば、php

<!--pHeader("Cache-Control: must-revalidate");   
$offset = 60 * 60 * 24 * 30;   
$ExpStr = "Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT";   
Header($ExpStr);-->
ログイン後にコピー

で30日後の有効期限を設定することは、サーバー自体を設定することによって行うこともできます。これについてはよくわかりません(笑)。さらに詳しく知りたい友人は、http://www.web-caching.com/

を参照してください。私の知る限り、Alibaba 中国 Web サイトの現在の Expires 有効期限は 30 日です。ただし、この期間中に問題が発生しました。特にスクリプトの有効期限の設定は慎重に検討する必要があります。そうしないと、対応するスクリプト関数が更新された後、クライアントがそのような変更を「認識」するまでに長い時間がかかる可能性があります。以前 [suggest project] に取り組んでいたときにこの問題に遭遇しました。したがって、何をキャッシュすべきか、何をキャッシュすべきでないのかを慎重に検討する必要があります。

記事 4. Gzip 圧縮を有効にする: Gzip コンポーネント

Gzip の考え方は、まずサーバー側でファイルを圧縮してから送信することです。これにより、ファイル転送のサイズを大幅に削減できます。送信完了後、ブラウザは圧縮コンテンツを再度解凍して実行します。現在のすべてのブラウザは gzip を「適切に」サポートしています。ブラウザだけでなく、大手の「クローラー」も認識できるので安心です。さらに、gzip の圧縮率は非常に高く、一般的な圧縮率は 85% です。これは、サーバー側で 100K のページをクライアントに送信する前に約 25K に圧縮できることを意味します。特定の Gzip 圧縮原理については、csdn の記事「Gzip 圧縮アルゴリズム」を参照してください。 Yahoo は、HTML (php)、js、css、xml、txt など、すべてのテキスト コンテンツを gzip 圧縮する必要があることを特に強調しています。当社の Web サイトはこの点で良い仕事をしており、A です。以前は、当社のホームページは A ではありませんでした。ホームページには広告コードによって配置された JS が多数あり、これらの広告コードの所有者の Web サイトの JS は gzip 圧縮されておらず、これも当社の Web サイトのダウンにつながりました。

上記3点のほとんどはサーバーサイドの内容であり、私も表面的な理解しかできません。間違っていたら訂正してください。

第5条:CSSをページの上部に置く(スタイルシートを上部に置く)

CSS をページの上部に配置します。なぜですか? IE や Firefox などのブラウザでは、すべての CSS が送信されるまで何も表示されないためです。理由はマー兄弟が言ったように単純です。 css、正式名称はCascading Style Sheets(カスケード スタイル シート)です。カスケードとは、次の CSS が前の CSS をカバーし、上位レベルの CSS が下位レベルの CSS をカバーできることを意味します。 【CSSで!重要] この階層関係については、この記事の最後で簡単に説明しましたが、ここでは CSS をオーバーライドできることだけを知っておく必要があります。以前のスタイル シートは上書きできるため、IE などの多くのブラウザでは、スタイル シートをページの下部に配置することが禁止されるという問題が発生します。 Web コンテンツの連続表示。ブラウザーはページ要素の再描画を避けるために表示をブロックし、ユーザーには空白のページのみが表示されます。 Firefox は表示をブロックしませんが、スタイルシートのダウンロード後に一部のページ要素を再描画する必要がある可能性があり、ちらつきの問題が発生する可能性があります。なので、できるだけ早くCSSを読み込ませる必要があります

この意味に従って、もっと注意深く研究すると、実際には最適化できる領域があります。たとえば、このサイトに含まれる 2 つの CSS ファイル、ウェブサイトのパフォーマンス開発を改善するための 10 のヒント

以上がWeb サイトのパフォーマンスを向上させる PHP の詳細の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!