Dalam pembangunan web, caching ialah konsep yang sangat penting. Ia menyediakan cara untuk menyelesaikan masalah prestasi dan mengurangkan permintaan terhadap sumber pelayan. PHP ialah bahasa web yang popular, dan sudah tentu, ia juga boleh menyediakan caching. Artikel ini akan memperkenalkan cara menyediakan caching dalam halaman PHP.
1. Apakah itu cache
Cache ialah istilah yang sangat biasa dalam bidang komputer. Intipatinya adalah untuk menyimpan data atau program yang kerap digunakan berhampiran pengguna untuk meningkatkan kelajuan akses.
Dalam pembangunan web, caching biasanya merujuk kepada menyimpan halaman atau fail yang diproses dalam memori pelayan web untuk mengurangkan masa pemprosesan pada capaian berikutnya.
2. Mengapa menggunakan caching
Dalam pembangunan web, penjanaan halaman biasanya mengambil banyak masa. Apabila bilangan lawatan meningkat, beban pada pelayan web juga meningkat. Jika setiap permintaan halaman memerlukan pemprosesan lengkap, masa tindak balas pelayan mungkin menjadi sangat perlahan. Oleh itu, bagi halaman yang sering diminta, kita boleh memilih untuk menyimpan halaman ini dalam memori, yang boleh mengurangkan beban pada pelayan Web dan meningkatkan kelajuan tindak balas halaman.
3. Cara menetapkan cache
Dalam PHP, kami boleh mengawal cache dan masa cache penyemak imbas dengan menetapkan pengepala HTTP. Pelaksanaan khusus adalah seperti berikut:
Jika kita tahu bahawa kandungan halaman tidak akan berubah tidak lama lagi, kita boleh menetapkan masa tamat tempohnya kepada masa yang sangat singkat untuk mengurangkan masa tindak balas pelayan.
// 设置缓存时间为1小时 $expires = 3600; header("Pragma: public"); header("Cache-Control: max-age=".$expires); header('Expires: ' . gmdate('D, d M Y H:i:s', time() + $expires) . ' GMT');
Dalam contoh di atas, kami menggunakan Cache-Control
untuk menetapkan masa cache Di sini kami menetapkan masa cache kepada 1 jam.
Jika kami tahu bahawa halaman mungkin diubah suai pada masa tertentu, maka kami boleh menetapkan tag Last-Modified
untuk membantu penyemak imbas Tentukan sama ada halaman itu perlu diperoleh semula. Jika pelayan mengubah suai halaman semasa lawatan akan datang, teg akan dikira pada masa yang sama.
// 读取文件修改时间并设置 Last-Modified 标记 $lastModifiedTime = filemtime($filePath); $etag = md5_file($filePath); header("Last-Modified: " . gmdate("D, d M Y H:i:s", $lastModifiedTime) . " GMT"); header("Etag: $etag");
Dalam contoh di atas, kami menggunakan fungsi filemtime()
untuk mendapatkan masa pengubahsuaian terakhir fail dan fungsi md5_file()
untuk mendapatkan nilai Etag bagi fail.
Untuk mengurangkan masalah cache penyemak imbas, kami boleh mengemas kini nombor versi atau teg lain yang serupa apabila kandungan halaman berubah pelayar membaca semula halaman. Dengan cara ini, walaupun kandungan halaman tidak berubah, penyemak imbas masih boleh mendapatkan halaman baharu, dengan itu mengelakkan masalah halaman tamat tempoh.
// 增加版本号 $version = 1; $url = "http://www.example.com/index.php?v=".$version; header("Location: ".$url);
Dalam contoh di atas, kami menambah nombor versi pada URL yang diakses dan mengubah hala penyemak imbas ke URL, dengan itu memberitahu penyemak imbas untuk mengambil semula halaman apabila halaman dikemas kini .
4. Ringkasan
Dalam pembangunan web, caching ialah kaedah biasa untuk meningkatkan kelajuan respons halaman. Dalam PHP, kita boleh mengawal cache dan masa cache halaman dengan menetapkan pengepala HTTP. Walau bagaimanapun, caching juga boleh menyebabkan masalah jika tidak disediakan dengan betul, seperti menyebabkan sesetengah halaman tidak pernah dikemas kini. Oleh itu, apabila menggunakan cache, kita perlu memberi perhatian khusus kepada tetapan masa cache dan kemas kini tetap tanda perubahan kandungan halaman.
Atas ialah kandungan terperinci Bagaimana untuk menyediakan cache untuk halaman php (tiga kaedah). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!