1

私はphpベースのウェブサイトを持っています。スイッチケースを使用して、さまざまなページを含めてナビゲートします。インデックス ページにナビゲーション バーとフッターを含める方法を採用しました

私の問題は、あるページから別のページに移動するたびに、すべてが再度読み込まれ、Web サイトが重くなることです。

<?php include('models/header.php'); ?>
<div id="content">
<center>

<div id="switch" align="center">

<?php
switch($view)
{
case 'Index':
    include('pages/index.php');
    break;

case 'Services':
    include('pages/Services.php');
    break;

case 'About':
    include('pages/about.php');
    break;

case 'Contact':
    include('pages/contact.php');
    break;

case 'Download':
    include('pages/download.php');
    break;

default:
    include('pages/error.php');
}
?>
</div>
</div>
</center>
<br>
<?php include('models/footer.php'); ?>
</div>

これらの要素が一度プリロードされてキャッシュにとどまり、新しいページに移動するたびにロードする必要がないように設定する方法はありますか...?

4

3 に答える 3

3

コードを考えると、実際には何もキャッシュする必要はありません。そうすると、実際に必要なオーバーヘッドが増える可能性があります。

キャッシュされているかどうかに関係なく、ファイルにアクセスする必要があります。これにより、オペコードが生成されます。ただし、 RAMFSでmemcachedソリューションを使用する場合を除いて、PHP は依然としてファイルシステムにアクセスする必要があります。実際の変更には気付かないでしょう。

しかし、実際にはコードをキャッシュする必要があります。明らかな理由から、PHP のオペコード キャッシュであるAPCを確認する必要があります。

基本的に、インクルードされたファイルに対して行った呼び出しをキャッシュし、PHP インタープリターの結果をキャッシュします。

最後に、 Web サイトをスピードアップするためのベスト プラクティスを読むことをお勧めします。

于 2011-03-28T20:11:07.850 に答える
1

ブラウザが選択した場合、ページ内の要素 (画像など) は完全に再読み込みされます。要素が PHP ファイルの場合、PHP ページが頻繁に変更されるため、通常は完全に再読み込みされます。

ただし、一定時間ページをキャッシュするようブラウザに指示するヘッダーを PHP で設定することはできます。詳細については、 http://php.net/manual/en/function.header.phpを参照してください。

于 2011-03-28T20:04:55.497 に答える
0

これを行うには、さまざまな方法があります。Smarty の使用をお勧めします。

switch(strtolower($view)) {
     case "download":
            $smarty->assign("download_var", $downloadvar);
            $smarty->display("Download.tpl");
            break;
     .....
}

アップデート

これはまだ少し曖昧だと思います。Smarty には実際にコンパイル済みのテンプレート ディレクトリがあり、手元に置いておくことができます。さまざまな方法でキャッシュするように smarty を構成できますが、基本的な考え方は、セッション ID に基づいてプリコンパイルおよび保存されたフラット ファイルを使用することです。

于 2011-03-28T20:02:54.173 に答える