CodeIgniter cho phép bạn lưu cache các trang nhằm
mục đích đạt tối ưu hóa hiệu năng.
Mặc dù CodeIgniter hoạt động khá là nhanh, lưu
lượng thông tin động mà bạn hiển thị trong các trang sẽ liên quan trực tiếp đến
tài nguyên máy chủ, bộ nhớ, và chu kỳ của tiến trình , là những thứ sẽ ảnh
hưởng đến tốc độ tải trang. Bằng cách caching các trang,do đó chúng sẽ không
phải tải lại toàn bộ, vì thế bạn có thể đạt hiệu năng gần như là các trang tĩnh.
Tính năng Caching có thể được kích hoạt cho từng
trang cơ bản, và bạn có thể thiết lập khoảng thời gian 01 trang phải chờ cached
trước khi được làm mới lại. Khi 01 trang được tải lần đầu, tập tin cache sẽ
được ghi vào thư mục application/cache
. Ở lần tải sau, tập tin cache sẽ được nhận và gửi tới theo yêu cầu từ trình
duyệt người dùng. Nếu hết hạn, nó sẽ bị xóa và làm mới lại trước khi được gửi
tới trình duyệt.
Để kích hoạt caching, đặt đoạn mã sau vào bất kỳ
phương thức controller nào:
$this->output->cache($n);
Với $n là số phút
bạn muốn trang vẫn nằm trong cached giữa các lần refreshes.
Đoạn mã trên không quan tâm đến thứ tự bạn đặt nó
trong phương thức, vì thế ta có thể đặt nó ở đâu miễn thấy hợp lý là được. 01
khi đã có đoạn mã này các trang của bạn sẽ bắt đầu lưu cached.
Điểm quan trọng:
·
Bởi
vì cách CodeIgniter lưu trữ nội dung xuất, việc caching sẽ chỉ hoạt động nếu
bạn hiển thị từ controller thông qua 01 view.
·
Nếu
bạn thay đổi các tùy chọn cấu hình sẽ ảnh hưởng đến việc xuất dữ liệu, bạn phải
xóa thủ công các tập tin cache.
Ghi chú:
Trước khi các tập tin cache có thể ghi được bạn
phải phân quyền cho thư mục application/cache/ là có thể ghi được.
Nếu bạn không còn muốn lưu cache 01 tập tin nữa bạn
có thể xóa phần lưu caching và nó sẽ không còn khi ta làm mới trình duyệt
(refresh) lúc trang đã hết hạn.
Ghi chú:
Xóa đoạn mã sẽ không xóa cache ngay. Thông thường
nó sẽ cần 01 khoảng thời gian hết hạn.
Nếu bạn muốn xóa cache thủ công, bạn có thể dùng
phương thức delete_cache()
//
Xóa cache cho URI đã yêu cầu hiện hành
$this->output->delete_cache();
//
Xóa cache cho /foo/bar
$this->output->delete_cache('/foo/bar');
Nếu vẫn chưa rõ các bạn xem thêm video clip sau:
By #tiensim
Nguồn: User Guide – General Topics
Không có nhận xét nào:
Đăng nhận xét