Có một sự thật là khi vào một trang web bất kỳ, thứ đầu tiên thu hút bạn là video và hình ảnh, sau đó bạn mới đọc các thông tin dạng text trong đó. Số lượng video và hình ảnh hiển thị càng nhiều thì dung lượng mà thiết bị của bạn phải tải xuống (image loading) càng lớn. Và khi dung lượng lớn tốc độ load trang web sẽ chậm hơn do giới hạn băng thông. Khi người dùng gặp vấn đề thì những nhà cung cấp và phát triển web phải đi tìm giải pháp. Lazy loading là một kỹ thuật giúp cải thiện vấn đề trên. Trong bài viết này, ICANTECH sẽ giới thiệu với các bạn những kiến thức cơ bản về Lazy loading.
Trong thời đại công nghệ số hiện nay, hiệu suất hoạt động, tốc độ của các trang web trực tuyến là cực kỳ quan trọng: đảm bảo hoạt động kinh doanh liên tục, thu hút khách hàng, tăng lợi thế cạnh tranh,...Kể từ năm 2020, các trình duyệt web lớn (như chrome, firefox) đều bật tính năng Lazy loading là chế độ mặc định. Điều này cho phép tăng tốc độ duyệt web bằng cách tích hợp Lazy loading vào các thuộc tính html (Lazy loading html).
Lazy loading là một thuật ngữ tiếng anh chuyên ngành lập trình web, thường được gọi là tải từng phần, tải không đồng bộ hay tải lười. Lazy loading là một kỹ thuật được sử dụng phổ biến trong khoa học máy tính, đặc biệt là trong thiết kế, lập trình website để trì hoãn việc sử dụng một đối tượng nào đó cho đến khi cần thiết.
Chúng ta có thể hiểu đơn giản đó là một kỹ thuật giúp tăng tốc độ duyệt web, bạn sẽ chỉ tải dữ liệu từ một website mà bạn đang truy cập khi nào bạn cần sử dụng đến chúng, còn bình thường bạn sẽ duyệt web trong trạng thái lười (tức là bạn xem phần nào của trang web thì phần đó hoạt động, các phần khác của trang web sẽ không hoạt động). Ngược lại với Lazy loading là Eager loading (tải tích cực hay tải háo hức) sẽ được áp dụng trong một số trường hợp riêng. Thông thường Lazy loading sẽ áp dụng trên 2 phương diện, ảnh và video:
Như đã trình bày ở trên, kỹ thuật Lazy loading được sử dụng để tăng tốc độ duyệt web, giảm thiểu tối đa thời gian tải nội dung từ server, nâng cao trải nghiệm của người dùng. Rõ ràng, trong định nghĩa thuật ngữ này đã bao hàm phần nào bản chất của nó.
Khi tải một trang web, phần mà người dùng đang xem được gọi là above the fold (thư mục bên trên), còn phần mà người dùng đang không xem được gọi là below the fold (thư mục bên dưới). Và người ta sẽ áp dụng Lazy loading cho phần thư mục bên dưới. Lazy loading còn được biểu hiện ở việc giảm kích thước ảnh hay video, chỉ hiển thị ở chất lượng cao hơn khi người dùng kích vào ảnh.
Có 2 cách phổ biến để Lazy loading cho hình ảnh trên web, đó là:
Một trang web, nếu phải tải toàn bộ các dữ liệu khi có người truy cập đã tốn thời gian rồi, nếu lượng người truy cập lớn có thể dẫn đến tình trạng lag trang, thậm chí treo phải tải lại từ đầu. Thêm vào đó, khi trình duyệt phải thực hiện trong tình trạng luôn quá tải sẽ dẫn đến việc bị lỗi và nhiều vấn đề không mong muốn phát sinh. Lazy loading là giải pháp hữu hiệu giúp hạn chế vấn đề này. Có thể tóm lược 2 lý do chính cần phải sử dụng Lazy loading:
Với kỹ thuật Lazy loading, một trang web sẽ khởi động với dung lượng nhỏ hơn dung lượng đầy đủ của nó. Trang web sẽ nhanh hơn, trải nghiệm người dùng tốt hơn dẫn đến tỉ lệ truy cập tăng cao, SEO tốt hơn. Những nội dung không quan trọng sẽ bị làm mờ đi, điều này cũng giúp tiết kiệm thời gian và năng lượng. Có thể tóm lược lợi ích mà Lazy loading mang lại cho người dùng và nhà cung cấp web ở 2 điểm chính:
Trên thực tế, không phải tất cả người dùng đều đặt tiêu chí tốc độ tải web lên trên hết mà cần nội dung đầy đủ, chất lượng ảnh cao (ví dụ làm nghiên cứu cần tư liệu tốt). Khi đó việc giảm chất lượng, kích thước ảnh sẽ làm họ không thoải mái. Đối với những hình ảnh không quan trọng trong bài đăng trên Facebook hay các trang cá nhân thì sử dụng kỹ thuật Lazy loading là một ý tưởng phù hợp.
Tuy nhiên, với các trang mua sắm online chẳng hạn, mà chất lượng ảnh thấp hay thiếu thì sẽ giảm khả năng cạnh tranh. Và chắc chắn người dùng cũng không thích điều này do tìm kiếm khó khăn hơn. Ngoài ra, đối với lập trình web khi thêm vào các dòng lệnh Javascript để phát hiện thao tác người dùng cho kỹ thuật Lazy load thì lại làm tăng khối lượng code cần tải và xử lý.
Cách đơn giản nhất để áp dụng Lazy loading là thông qua frameworks và thư viện tài nguyên. Ví dụ:
Chúng ta thấy rằng Lazy loading rất hữu ích và nó liên quan chủ yếu đến Lazy loading image. Khi sử dụng Lazy loading cần chú ý một số điểm sau:
Như vậy, trong bài này ICANTECH đã giới thiệu với các bạn những vấn đề cơ bản về Lazy loading . Hi vọng bài viết đã mang lại cho các bạn những kiến thức bổ ích.
Nếu bạn đang quan tâm đến lập trình web thì hãy tham khảo ngay khóa học lập trình Web toàn diện tại ICANTECH nhé
Nguồn ảnh: ICANTECH.