Tuesday, July 9, 2013

Xóa Cache trình duyệt bằng PHP

Đối với 1 lập trình viên website, đặc biệt là lập trình PHP thì cache là 1 điều rất quan trọng. Vì nó có thể ảnh hưởng rất nhiều đến tốc độc của ứng dụng web.

Thường thì 1 website được chia ra 2 thành phần mà người dùng bình thường hầu  như ít người biết đến.
Đó là Front EndBack End (có thể hiểu nôm na là phần TrướcSau). Vậy Trước là gì? và Sau là gì?

Trước:
Đó là phần hiện thị khi bạn gõ tên miên và bấm enter.
Sau:
Đó là phần điều khiển của người quản trị, nó chỉ dành cho nhóm Admin (quản trị) mà thôi. Muốn sử dụng thành phần này thì cần phải biết được dẫn bí mật và bắt buộc phải có tài khoản đăng nhập admin.

Nhưng tôi sẽ không nói đến vấn đề này, mà chỉ đề cập đến vấn đề Cache mà thôi. Nhưng tại sao tôi lại nói về TrướcSau?

Đơn giản là vì khi sử dụng Cache người lập trình luôn cố gắng để tối ưu cho phần Trước nên sử dụng Cache là rất cần thiết. Tất nhiên còn phụ thuộc vào hoàn cảnh để áp dụng cache.

Còn phần Sau thì sao?
Vì đây là khu vực chỉ dảnh cho những người đặc biệt nên bắt buộc nó phải được bảo mật nên việc lưu Cache có lẽ rất ít lập trình viên nào áp dụng cho khu vực này. Vậy làm sao để làm được điều này?

Thật đơn giản!

Với HTML thì chỉ việc thêm đoạn code sau vào giữa cặp thẻ Header.
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="no-cache">
<meta http-equiv="Expires" content="-1">
<meta http-equiv="Cache-Control" content="no-cache">
Nhưng bạn hoàn toàn có thể linh động sử dụng với PHP, và hãy chèn đoạn code này vào dòng đầu tiên của tập tin .php
header ("Expires: ".gmdate("D, d M Y H:i:s", time())." GMT");
header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header ("Cache-Control: no-cache, must-revalidate");
header ("Pragma: no-cache");
Mục đích việc làm này là nó sẽ không lưu cache các Form trong Admin mà bạn thường xuyên thay đổi.
Tôi đã gặp phải tình trạng bị luu cache này khi cố gắng thay đổi nội dụng 1 record, nhưng thật không may vì lưu cache nên sau khi submit form rồi xem lại thì thấy mọi thứ không hề thay đổi. Nhưng thực ra thì mọi thứ đã thay đổi theo ý mình, nhưng vì bị cache nên mới bị thế, và cứ phải refresh lại trình duyệt thì mới có thể thấy sự thay đổi.

Đây là kinh nghiệm tôi muốn chia sẻ với các bạn khi muốn tối ưu website bằng Cache, hy vọng nó giúp ích được nhiều cho các bạn.

1 comment :

  1. em dùng chrome, đã thử cách của anh nhưng chỉ F5 thôi vẫn ko đc, cứ phải clear cache xong F5 mới đc là sao ạ
    Mong anh chỉ giáo !

    ReplyDelete