01/10/2018, 08:35

Hỏi vấn đề cache trong PHP khó hiểu quá?

Các bạn cho mình hỏi chút. Mình mới học PHP và đang viết một dự án về PHP. Localhost mình sử du ngj là xampp nhé các bạn. Và trong quá trình viết code đôi lúc mình tải lại trang để xem kết quả thì trang không thay đổi, xóa hết file css đi và load lại trang cũng ko thay đổi (trang demo). Vậy cho mình hỏi có phải phàn mềm xampp đang tự động cache file dự án của mình ko, và làm cách nào để giải quyết vấn đề này. Cám ơn các bạn!

while (!(sucesecd = try())) viết 10:36 ngày 01/10/2018

bạn bật cosole lên check vào disable cache cache của trình duyệt sẽ tắt trong khi consle còn bật

Trần Hoàn viết 10:41 ngày 01/10/2018

cache của trình duyệt nhé bạn. Bạn xoá css rồi, thay vì F5 (refresh) thì bạn Ctrl + F5 sẽ thấy tác dụng ngay

Nguyễn Đức Hoàng viết 10:52 ngày 01/10/2018

Cho mình hỏi chút cache này là MẶC ĐỊNH của trình duyệt đúng ko ah. Vậy có hàm hay API nào để quản lý việc cache trong trình duyệt ko các bạn nhỉ. Chắc mình phải tìm hiểu thêm về vấn đề này

Son Tran viết 10:44 ngày 01/10/2018

Đây là vấn đề của trình duyệt chứ không phải của PHP.

Cache này theo mình hiểu là mặc định của trình duyệt để tiết kiệm băng thông. Bạn có thể quy định thời gian sống của cache này trên server (expired trong vòng bao lâu để khi refresh thông thường các static files sẽ được cập nhật).

Trong quá trình development thì bạn có thể dùng như bạn @Minh_Meo.

Nhưng khi đến giai đoạn staging để cho đội khác hay khách hàng kiểm thử, bạn không thể yêu cầu khách hàng làm theo cách trên mà thay vào đó bạn cần có tool tự động đổi tên các static file hay là thêm version cho các static file đó (ví dụ: http://localhost/mysyte/static/main.css?version=2, sau mỗi lần thay đổi file main.css này thì phải nâng cái version đó lên).

Hoặc sử dụng các meta tag để thông báo trình duyệt ko dùng cache:

<meta http-equiv="cache-control" content="max-age=0">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT">
<meta http-equiv="pragma" content="no-cache">

Điều đó giúp sau mỗi lần refresh trình duyệt sẽ tải về các file đó chứ ko lấy lên từ cache.

Bài liên quan
0