Explore all courses in this category.
Explore all courses in this category.
Nguyễn Đình Cường
0 comment
09 Nov, 2026
Có những website bạn có thể thêm vào màn hình chính, mở như ứng dụng, thậm chí dùng khi mất mạng. Đó là PWA (Progressive Web App). Với lập trình viên web, đây là cách mang trải nghiệm gần ứng dụng di động mà không cần học thêm ngôn ngữ mới hay qua cửa hàng ứng dụng.
PWA là website được xây dựng với một số công nghệ cho phép nó cài đặt được, chạy toàn màn hình, tải nhanh và hoạt động tốt khi mạng yếu. Nó vẫn là web, chỉ được "nâng cấp dần" (progressive) trên những trình duyệt hỗ trợ, còn trình duyệt cũ vẫn dùng được như trang bình thường.
Ví dụ file manifest.webmanifest tối giản:
{
"name": "Ghi chú nhanh",
"short_name": "Ghi chú",
"start_url": "/",
"display": "standalone",
"background_color": "#ffffff",
"theme_color": "#2563eb",
"icons": [
{ "src": "/icon-192.png", "sizes": "192x192", "type": "image/png" },
{ "src": "/icon-512.png", "sizes": "512x512", "type": "image/png" }
]
}
Liên kết nó trong HTML bằng <link rel="manifest" href="/manifest.webmanifest">.
Đăng ký service worker trong trang:
if ("serviceWorker" in navigator) {
navigator.serviceWorker.register("/sw.js");
}
Và file sw.js lưu đệm vài tài nguyên cốt lõi, ưu tiên bản đã lưu khi mất mạng:
const CACHE = "v1";
const FILES = ["/", "/style.css", "/app.js"];
self.addEventListener("install", (e) => {
e.waitUntil(caches.open(CACHE).then((c) => c.addAll(FILES)));
});
self.addEventListener("fetch", (e) => {
e.respondWith(
caches.match(e.request).then((cached) => cached || fetch(e.request))
);
});
Chiến lược "cache trước, mạng sau" này phù hợp với tài nguyên tĩnh. Với dữ liệu thay đổi thường xuyên, bạn cần chiến lược khác như "mạng trước, cache dự phòng".
Công cụ Lighthouse trong Chrome DevTools có mục kiểm tra PWA và hiệu năng, giúp bạn biết còn thiếu gì. Hãy thử trên điện thoại thật và bật chế độ máy bay để xem trải nghiệm ngoại tuyến.
start_url đúng.Đi hết danh sách này, trang của bạn đã đạt phần lớn trải nghiệm mà người dùng kỳ vọng ở một ứng dụng cài đặt được.
PWA là bước nâng cấp hợp lý cho nhiều website: ít công sức, trải nghiệm tốt hơn, tiếp cận nhiều nền tảng. Bạn có thể bắt đầu bằng cách thêm manifest, sau đó từng bước thêm service worker khi đã hiểu rõ chiến lược lưu đệm.
Muốn nắm HTML, CSS, JavaScript chắc tay trước khi làm PWA, mời bạn xem khóa học web tại codebem.com.
Nguyễn Đình Cường
0 comment