15

私の質問は、複数のPHP include()を使用するのは悪い考えかどうかです。私が尋ねている唯一の理由は、サイトにスタイルシートやスクリプトが多すぎると、HTTPリクエストが増え、ページの読み込みが遅くなるといつも聞いているからです。PHPについても同じことを考えていました。

4

6 に答える 6

29

詳細な答え:

Webページで参照されるすべてのCSSまたはJSファイルは、実際にはブラウザによってネットワーク経由でフェッチされます。これには、多くの場合、数百ミリ秒以上のネットワーク遅延が含まれます。同じサーバーへのリクエストは、(必須ではありませんが、慣例により)一度に1つまたは2つシリアル化されるため、これらの遅延は積み重なっていきます。

一方、PHPインクルードファイルはすべてサーバー自体で処理されます。数百ミリ秒ではなく、ローカルディスクアクセスは数十ミリ秒以下になり、キャッシュされている場合は、さらに高速なダイレクトメモリアクセスになります。

http://eaccelerator.net/http://php.net/manual/en/book.apc.phpのようなものを使用する場合、PHPコードはすべてサーバー上で一度プリコンパイルされます。ファイルを含めるか、すべてを1か所にダンプするかは重要です。

簡単な答え:

ご心配なく。この問題で100回のうち99回、より良いコード編成の利点がパフォーマンスの向上を上回ります。

于 2010-08-28T02:12:53.780 に答える
5

includeを使用すると、コードの編成に役立ち、それ自体に支障はありません。必要のないものをたくさんロードしていると、速度が低下しますが、それは別の問題です。明確化:ページを含めるときは、負荷に何を追加するかに注意してください。不必要なリソースを不用意に含めないでください。

于 2010-08-28T01:53:05.407 に答える
1

すでに述べたように、複数のPHPインクルードを使用すると、コードを整理しておくのに役立つため、悪い考えではありません。インクルードが多すぎると、WebサーバーがインクルードごとにI / O操作を実行する必要があるため、問題になります。

大規模なWebアプリケーションがある場合は、PHPアクセラレーターを使用してそれをブーストできます。このアクセラレーターは、PHPバイトコードコンパイラーからのデータとコンパイル済みコードを共有メモリにキャッシュします。特定のファイルに多くのPHPインクルードがある場合、それらは1回だけ実行されます。そのファイルをさらに呼び出すとキャッシュにヒットするため、PHPの要件は実行されません。

于 2010-08-28T02:55:31.010 に答える
0

それは本当にあなたが何をしたいかに依存します。つまり、常に使用されているコードがある場合、常にコピーして貼り付けるのではなく、それを含めると非常に便利です。これにより、コードがより明確になり、遅くなりますが、ファイルに書き込んだすべての関数またはクラスを使用せずに含める場合は、もちろんそれは良い習慣ではありません...フレームワーク(codeigniterなどの便利なもの)を使用することをお勧めします。このことを片付ける...頑張ってください!

于 2010-08-28T02:00:30.670 に答える
0

私が尋ねている唯一の理由は、サイトにスタイルシートやスクリプトが多すぎると、HTTPリクエストが増え、ページの読み込みが遅くなるといつも聞いているからです。PHPについても同じことを考えていました。

HTTPリクエストは、PHPに含まれるものよりも数桁遅いことに注意してください。

いくつかのHTTPリクエスト->クライアントはネットワークを介していくつかのファイルをリクエストして受け入れる必要があります
いくつかのPHPには含まれています->クライアントは1つのファイルのみをリクエストして受け入れる必要があります

インクルードには、明らかにサーバーペナルティがあります。しかし、あなたの質問によって...それを発汗させないでください。本当に大規模なPHPプロジェクトでのみ、このような問題に直面します。

于 2010-08-28T02:26:54.467 に答える
-1

include()の代わりにinclude_once()関数を使用できるため、PHPは含まれるファイルを検出できます。

于 2010-08-28T04:18:02.207 に答える