Giảm request bằng cách gom icon SVG dùng chung

Trên các website hiện đại, icon SVG thường được sử dụng để thay thế icon ảnh PNG hoặc font-icon như Font Awesome. Tuy nhiên, nếu bạn nhúng mỗi SVG riêng lẻ cho từng biểu tượng, sẽ khiến số lượng request tăng lên đáng kể. Bài viết này hướng dẫn bạn gom các icon SVG vào một file sprite duy nhất để giảm request, tăng tốc độ tải trang.

Giảm request bằng cách gom icon SVG dùng chung

SVG Sprite là gì?

SVG Sprite là một file SVG duy nhất chứa nhiều biểu tượng (icon) khác nhau, mỗi biểu tượng được định nghĩa bằng thẻ <symbol>. Bạn chỉ cần tải file này một lần, sau đó có thể chèn icon ở bất kỳ đâu trên trang bằng cách gọi đến <use>.

“Gom icon SVG thành sprite giúp giảm HTTP request và tăng hiệu suất tải trang – đơn giản mà hiệu quả.”

Cách tạo SVG Sprite

Bước 1: Gom các SVG lại thành 1 file sprite

Bạn có thể dùng các công cụ như:

Ví dụ file icons.svg có thể như sau:

<svg xmlns="http://www.w3.org/2000/svg" style="display:none">
  <symbol id="icon-home" viewBox="0 0 24 24">
    <path d="..."/>
  </symbol>
  <symbol id="icon-user" viewBox="0 0 24 24">
    <path d="..."/>
  </symbol>
</svg>

Bước 2: Nhúng SVG sprite vào trang

Cách đơn giản nhất là chèn trực tiếp vào footer:

<?php include get_template_directory() . '/assets/icons.svg'; ?>

Hoặc bạn có thể dùng Ajax để load SVG 1 lần duy nhất vào DOM khi trang được tải.

Bước 3: Gọi icon bằng thẻ <use>

Ở bất cứ đâu trong HTML, bạn chỉ cần:

<svg width="24" height="24">
  <use xlink:href="#icon-home"></use>
</svg>

Với CSS, bạn có thể dễ dàng định dạng icon như màu, kích thước, hover v.v.

Lợi ích khi dùng SVG sprite

  • Chỉ tải 1 file SVG duy nhất thay vì nhiều icon nhỏ
  • Không cần dùng font-icon (đã lỗi thời)
  • Dễ kiểm soát, dễ styling bằng CSS
  • Thân thiện với màn hình Retina

Khi nào nên dùng SVG sprite?

Nên dùng khi:

  • Website có nhiều icon SVG lặp lại
  • Bạn muốn giảm request & tối ưu hiệu suất
  • Không muốn phụ thuộc vào bên thứ 3 như Font Awesome

Kết luận

SVG sprite là một giải pháp đơn giản nhưng rất hiệu quả giúp tối ưu hóa tốc độ website. Nếu bạn đang dùng nhiều SVG lẻ hoặc icon ảnh, hãy cân nhắc chuyển sang giải pháp này – vừa tiết kiệm request, vừa linh hoạt và dễ bảo trì hơn rất nhiều.

Bình luận


  • Không có bình luận.

Init Toolbox

Nhấn Ctrl + \ trên máy tính, hoặc vuốt sang trái ở bất kỳ đâu trên mobile.

Đăng nhập





Đang tải...