![Bulbgraph.png](https://tusach.thuvienkhoahoc.com/images/thumb/6/60/Bulbgraph.png/32px-Bulbgraph.png)
VLOS:Extensions/PurgeCache
Lâu lâu không code. Sử dụng biến $dir mà quên không gán giá trị, làm mất cả buổi tối tìm lỗi để fix. :D
Vấn đề[sửa]
Do VLOS sử dụng file cache html cho các trang, nhằm giảm gánh nặng cho máy chủ và tăng tốc độ truy cập với khách vô danh. Điều này dẫn đến 2 tình huống mà hệ thống Mediawiki hiện tại đang bỏ sót?
Tình
huống
1:
Một
số
trang
XYZ
có
liên
kết
đến
trang
ABC
và
trang
ABC
chưa
được
tạo
thì
các
liên
kết
tới
trang
ABC
trên
các
trang
XYZ
sẽ
có
màu
đỏ.
Vấn
đề
là
khi
trang
ABC
được
tạo
thì
các
liên
kết
kia
vẫn
có
màu
đỏ
khi
khách
vô
danh
ghé
thăm
các
trang
XYZ.
Nguyên
nhân
là
do
Mediawiki
không
update
các
file
cache
của
các
trang
XYZ
khi
trang
ABC
được
tạo.
Tình
huống
2:
Khi
trang
ABC
được
cập
nhật
nội
dung
(edit)
thì
Mediawiki
cũng
không
update
file
cache
của
nó
nên
nếu
khách
vô
danh
đọc
trang
ABC
thì
sẽ
không
nhận
được
bản
mới
nhất.
Làm gì[sửa]
Hai tình huống trên là lí do cho ext này ra đời. Hơn thế nữa, ext này còn xử lý thêm các tình huống khác nữa.
Tình
huống
3:
Khi
trang
ABC
bị
xóa
(delete)
thì
cũng
cập
nhật
file
cache
cho
các
trang
XYZ
Tình
huống
4:
Khi
trang
ABC
được
khôi
phục
(undelete)
thì
cũng
cập
nhật
file
cache
cho
các
trang
XYZ.
Tình
huống
5:
Khi
trang
ABC
được
tạo
thì
cập
nhật
file
cache
cho
trang
VLOS:Trang
Chính
(mainpage),
nhằm
để
khi
người
dùng
truy
cập
trang
chủ
thì
luôn
nhận
được
danh
sách
các
trang
mới
nhất.
Tình
huống
6:
Khi
cập
nhật
1
trang
thuộc
không
gian
Bản
mẫu
(Tiêu
bản)
thì
cập
clear
cache
cho
các
trang
có
nhúng
bản
mẫu
này.
Phát triển[sửa]
- Tôi đánh giá đây là một ext không thể thiếu với mediawiki nên tuơng lai mediawiki sẽ bổ sung nó vào core.
- Hiện tại việc clear file cache diễn ra tức thì sau khi lưu trang. Điều này sẽ làm tăng thời gian xử lý sau khi submit lưu trang nên tuơng lai có thể dụng Job để giảm thời gian submit này.
- Việc clear file cache sẽ khiến khách vô danh đầu tiên đọc trang XYZ sẽ hơi chậm so với các trang đã được cache khác. Nên tuơng lai có thể sẽ tạo luôn file cache XYZ luôn. Nhưng điều này có thể gây tốn tài nguyên mà không có giá trị, vì tạo ra file cache mà có thể không có khách vô danh nào đọc.
- Việc update file cache, hiện tại Mediawiki thực hiện bằng cách xóa file cache XYZ và khi khách vô danh đầu tiên truy cập thì mới tạo lại file cache. Điều này có nghĩa là rebuild lại toàn file html. Tương lai sẽ chỉ rebuild lại các thành phần của trang chứ không full. Điều này có thể làm các ext trong tương lai sẽ có modul cache riêng.
- Đã có trang XYZ, giờ tạo/sửa trang ABC link đến trang XYZ thì có cần clear file cache cho trang XYZ không? Nếu không clear thì mục Liên kết đến đây tại trang XYZ sẽ không xuất hiện trang ABC.
- Khi import trang ABC thì cũng cần clear file cache cho XYZ
-
Thêm tab
Purge
xóa cache ở mỗi trang, dành cho bảo quản viên