Dalam pembangunan web, caching halaman ialah teknologi penting yang boleh meningkatkan prestasi tapak web dan pengalaman pengguna. Dalam PHP, terdapat banyak cara untuk melaksanakan caching halaman Berikut akan memperkenalkan beberapa yang biasa.
1. Gunakan fungsi ob_start()
Fungsi ob_start() ialah fungsi yang digunakan dalam PHP untuk mendayakan cache output. Ia cache output halaman ke dalam memori dan kemudian output kandungan cache ke penyemak imbas pada akhir permintaan. Menggunakan fungsi ob_start() boleh menghalang kandungan output halaman daripada dipaparkan buat sementara waktu, tetapi cache ia dahulu dan kemudian keluarkannya apabila ia diperlukan kemudian.
Kaedah pelaksanaan adalah seperti berikut:
<?php // 开启输出缓存 ob_start(); // 这里书写正常的PHP页面代码 echo 'Hello World!'; // 将缓存的内容输出到浏览器 ob_flush(); ?>
Apabila menggunakan fungsi ob_start(), perhatian khusus harus diberikan kepada perkara berikut:
2. Gunakan cache HTTP
Caching HTTP ialah cara standard untuk melaksanakan cache dalam perkhidmatan web Ia menggunakan Cache-Control dan Tamat Tempoh dalam pengepala HTTP untuk mengawal masa cache dan Strategi caching. Jika data halaman yang dikembalikan oleh pelayan dicache, pada kali berikutnya klien meminta halaman yang sama, pelanggan akan membaca data terus dari cache setempat tanpa perlu meminta pelayan lagi, yang dapat meningkatkan kelajuan akses halaman dengan baik. .
Dalam PHP, cache HTTP boleh dicapai dengan menetapkan Kawalan Cache dan Tamat Tempoh dalam pengepala respons. Antaranya, Cache-Control boleh menetapkan umur maksimum, yang menunjukkan masa berkesan cache, dalam beberapa saat. Tamat tempoh menetapkan masa tamat tempoh cache, iaitu masa GMT pada tarikh yang ditentukan.
Contoh pelaksanaan:
<?php // 设置缓存时间,如下设置了缓存10分钟 header('Cache-Control: max-age=600'); // 设置缓存过期时间,如下设置了缓存到2022年1月1日 header('Expires: Sun, 01 Jan 2022 00:00:00 GMT'); // 这里书写正常的PHP页面代码 echo 'Hello World!'; ?>
Perlu diambil perhatian bahawa cache HTTP memerlukan pelayan bahagian belakang untuk mengembalikan pengepala respons sebelum penyemak imbas boleh cache halaman, jadi ia mesti digunakan dalam fail PHP dan tidak boleh digunakan dalam digunakan dalam fail HTML.
3. Gunakan cache fail
Cache fail adalah untuk menyimpan halaman ke dalam fail cakera pada pelayan apabila halaman itu diminta semula, fail dibaca secara langsung tanpa menghurai PHP. yang boleh meningkatkan kelajuan akses halaman.
Pelaksanaan adalah seperti berikut:
<?php // 设置缓存文件名 $cacheFile = 'cache.html'; // 设置缓存时间,如下设置了缓存30分钟 $cacheTime = 1800; // 如果缓存文件存在并且缓存未过期 if (file_exists($cacheFile) && (time() - filemtime($cacheFile) < $cacheTime)) { // 直接读取缓存文件内容 echo file_get_contents($cacheFile); exit(); } // 开启输出缓存 ob_start(); // 这里书写正常的PHP页面代码 echo 'Hello World!'; // 获取输出缓存并清空缓存 $content = ob_get_clean(); // 把输出缓存写入到缓存文件中 file_put_contents($cacheFile, $content); // 输出内容到浏览器 echo $content; ?>
Dalam kod di atas, kami mula-mula menentukan sama ada fail cache wujud dan sama ada cache telah tamat tempoh Jika syarat dipenuhi, kandungan cache fail dikeluarkan terus ke penyemak imbas. Jika syarat tidak dipenuhi, halaman akan dikeluarkan mengikut proses halaman PHP biasa, dan kandungan cache output akan ditulis ke fail cache.
Satu perkara yang memerlukan perhatian khusus ialah cache fail akan menduduki ruang cakera pelayan Anda mesti menetapkan tempoh sah cache atau menggunakan tugas berjadual untuk membersihkan fail cache yang telah tamat tempoh secara kerap.
Ringkasnya, terdapat banyak cara untuk melaksanakan caching halaman PHP, dan setiap kaedah mempunyai senario, kelebihan dan keburukan yang berkenaan. Dalam pembangunan sebenar, adalah perlu untuk membuat pilihan yang fleksibel berdasarkan keadaan sebenar dan menggunakan teknologi caching secara rasional untuk meningkatkan prestasi laman web dan pengalaman pengguna.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan caching halaman dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!