Tốc độ luôn luôn là vấn đề sống còn cho một website, bạn thử tưởng tượng xem, nếu bạn viếng thăm một trang web hay blog nào đó, mà thời gian load trang rất lâu thì ắt hẳn là bạn sẽ chẳng còn muốn quay lại website hay blog đó nữa. Có rất nhiều cách để cải thiện tốc độ load trang web, và một trong số đó là tạo cache.
Cache website giúp bạn cải thiện tốc độ load trang web, giảm tải cpu, ram và process của hosting, vps, server, đồng thời giảm truy vấn dữ liệu mysql, qua đó giúp bạn tiết kiệm tài nguyên server đến mức tối đa nhất
Mình sẽ không đi sâu quá nhiều về định nghĩa Cache, trong bài viết này, mình sẽ chia sẻ cho các bạn 3 bước để tạo cache cho trang web bằng PHP.
Bước 1 : Tạo file top-cache.php
- Các bạn tạo một file mới, và đặt tên cho file này là top-cache.php sau đó copy toàn bộ đoạn code bên dưới và dán (paste) vào nó.
Mã nguồn PHP:
<?php
$url = $_SERVER["SCRIPT_NAME"];
$break = Explode('/', $url);
$file = $break[count($break) - 1];
$cachefile = 'cached-'.substr_replace($file ,"",-4).'.html';
$cachetime = 18000;
// Serve from the cache if it is younger than $cachetime
if (file_exists($cachefile) && time() - $cachetime < filemtime($cachefile)) {
echo "<!-- Cached copy, generated ".date('H:i', filemtime($cachefile))." -->\n";
include($cachefile);
exit;
}
ob_start(); // Start the output buffer
?>
- 5 dòng đầu tiên trong đoạn code bên trên sẽ tạo tên cho file cache dựa vào tên php hiện tại. Giả sử bạn cần tạo cache cho file list.php, thì tên cache file được tạo sẽ là cached-list.html
- Dòng code thứ 6 sẽ tạo một biến $cachetime, biến này sẽ quyết định vòng đời tồn tại của cache tính theo giây. Từ dòng 9 – 13 là dòng điều kiện kiểm tra xem file cache đã được tạo trước đó hay chưa, nếu nó đã tồn tại thì nó sẽ được chèn vào (tại dòng 10) sau đó nó sẽ thoát với câu lệnh exit
Bước 2 : Tạo file bottom-cache.php
- Tương tự như bước 1 , các bạn tạo một file mới và đặt tên là bottom-cache.php, sau đó copy toàn bộ đoạn code sau và dán vào bên trong nó.
Mã nguồn PHP:
<?php
// Cache the contents to a file
$cached = fopen($cachefile, 'w');
fwrite($cached, ob_get_contents());
fclose($cached);
ob_end_flush(); // Send the output to the browser
?>
- Nếu tên file $cachefile không tìm thấy trên server, thì đoạn code bên trên sẽ được thực thi và nội dung sẽ được ghi vào file $cachefile này. Để lần gọi kế tiếp, thay vì phải thực thi lại toàn bộ file php thì file tĩnh $cachefile sẽ được trả về tại máy người dùng.
Bước 3 : Chèn cache files vào trang của các bạn
- Bây giờ, mỗi khi các bạn cần tạo cache cho trang nào, thì chỉ cần đặt như sau :
Mã nguồn PHP:
<?php
include('top-cache.php');
// PHP code thong thuong dat o day
include('bottom-cache.php');
?>
- Bây giờ các bạn có thể áp dụng ngay cache cho những trang có tốc độ load chậm và kiểm tra lại tốc độ cho những lần kế tiếp thử xem. Mình mong là với thủ thuật đơn giản này, sẽ giúp ích cho các bạn.