Cách chọn mục tiêu Cơ sở

Ngày xuất bản: 20 tháng 5 năm 2025

Khi một tính năng của nền tảng web được triển khai trong mọi trình duyệt, tính năng đó sẽ trở thành Baseline Newly available (Mới có trong đường cơ sở). Sau 30 tháng, tính năng đó sẽ trở thành Baseline Widely available (Được hỗ trợ rộng rãi ở mức cơ bản), tức là ngưỡng mà hầu hết các trang web có thể áp dụng các tính năng mà không lo ngại về khả năng tương thích. Hướng dẫn này giải thích cách sử dụng Baseline và cách chọn mục tiêu Baseline bằng cách sử dụng dữ liệu có sẵn từ người dùng trang web của bạn.

Mục tiêu cơ sở là gì?

Mục tiêu cơ sở là một nhóm các tính năng trên web mà nhà phát triển có thể chọn hỗ trợ, dựa trên trạng thái Cơ sở của các tính năng đó. Có hai loại mục tiêu cơ sở: mục tiêu di động và mục tiêu cố định.

Các mục tiêu có thể thay đổi (chẳng hạn như Đường cơ sở có phạm vi cung cấp rộng hoặc Đường cơ sở mới có phạm vi cung cấp) là những mục tiêu mà tập hợp các tính năng có thể thay đổi theo thời gian. Mục tiêu di động có ý nghĩa trong trường hợp bạn muốn tập hợp các tính năng được hỗ trợ tự động phát triển khi các phiên bản trình duyệt mới được phát hành.

Mục tiêu cố định là những mục tiêu mà tập hợp các đối tượng không thay đổi theo thời gian. Nhìn chung, mục tiêu cố định được tính theo năm dương lịch. Ví dụ: Giá trị cơ sở 2023 là một mục tiêu cố định chứa tập hợp các tính năng web đã trở thành Giá trị cơ sở mới có sẵn trong năm 2023. Giá trị cơ sở 2023 sẽ không bao gồm những tính năng trở thành Giá trị cơ sở sau năm 2023. Điều này có nghĩa là bộ tính năng Giá trị cơ sở 2023 sẽ không bao giờ thay đổi.

Mục tiêu cố định phù hợp trong trường hợp tính dự đoán và tính xác định là tối quan trọng, nhưng mục tiêu cố định có thể trở nên lỗi thời theo thời gian. Vì vậy, khi sử dụng mục tiêu cố định, bạn nên đánh giá lại mục tiêu của mình thường xuyên.

Tại sao nên chọn mục tiêu?

Việc áp dụng các tính năng trên web bị hạn chế do lo ngại về khả năng tương thích, điều này khiến web không thể phát triển hết tiềm năng. Baseline không chỉ làm rõ vấn đề về khả năng hỗ trợ tính năng trong trình duyệt mà còn có thể hữu ích trong việc làm rõ vấn đề về thời điểm bạn có thể sử dụng một số tính năng. Bằng cách chọn một mục tiêu phản ánh đối tượng và yêu cầu của bạn, bạn có thể tự tin sử dụng các tính năng trong nhóm mục tiêu đó mà không cần kiểm tra từng tính năng.

Sử dụng dữ liệu để chọn mục tiêu Cơ sở

Khi có thể, bạn nên đưa ra quyết định dựa trên dữ liệu để chọn đúng mục tiêu Cơ sở. Khi có dữ liệu, bạn sẽ dễ dàng hơn và đưa ra quyết định sáng suốt hơn về mục tiêu cần chọn.

Nếu có dữ liệu Giám sát người dùng thực cho trang web của mình, bạn có thể tìm hiểu cách các mục tiêu Cơ sở hoạt động tương ứng với người dùng. Ví dụ: nếu bạn sử dụng Google Analytics, thì bạn có thể sử dụng Google Analytics Baseline Checker (Trình kiểm tra đường cơ sở của Google Analytics) để lấy thông tin này miễn phí.

Để sử dụng tính năng này, bạn cần tạo một dữ liệu khám phá mới trong Google Analytics, thêm một số chỉ số và phương diện vào báo cáo, rồi xuất báo cáo dưới dạng tệp TSV. Quy trình này được mô tả chi tiết trong hướng dẫn này. Khi nhập tệp TSV vào trình kiểm tra, bạn sẽ nhận được đầu ra có dạng như sau:

Công cụ Google Analytics Baseline Checker cho thấy thông tin chi tiết về mức độ hỗ trợ cho nhiều mục tiêu Baseline theo tỷ lệ phần trăm. Mức hỗ trợ tăng từ các mục tiêu mới hơn đến các mục tiêu cũ hơn.
Kết quả của công cụ Trình kiểm tra đường cơ sở của Google Analytics. Công cụ này phân đoạn hoạt động hỗ trợ người dùng thực cho từng mục tiêu Cơ sở. Lưu ý rằng các mục tiêu Cơ sở cũ có mức độ hỗ trợ cao hơn trong số người dùng thực tế.

Chúng tôi đang bắt đầu thấy các công cụ khác triển khai tính năng hỗ trợ Baseline. Tính năng này có thể cung cấp cho bạn thông tin tổng quan linh hoạt về số lượng khán giả hỗ trợ một mục tiêu nhất định. Ví dụ: RUMvision có một trang tổng quan cho biết có bao nhiêu khán giả của bạn hỗ trợ từng năm trong Baseline.

Dữ liệu Baseline của RUMvision cho thấy dữ liệu hỗ trợ cho từng mục tiêu Baseline, bao gồm cả thông tin chi tiết về dữ liệu hỗ trợ ở cấp độ tính năng.

Nếu nhà cung cấp dịch vụ phân tích hoặc RUM của tôi chưa có Báo cáo mục tiêu cơ sở thì sao?

Nếu đang sử dụng một công cụ phân tích hoặc RUM chưa cung cấp Báo cáo mục tiêu cơ sở nhưng có dữ liệu về phiên bản trình duyệt, bạn có thể kết hợp dữ liệu thực tế với các bản ánh xạ phiên bản trình duyệt từ mô-đun baseline-browser-mapping. Mô-đun này cung cấp một hàm JavaScript – getAllVersions() – giúp lập bản đồ các trình duyệt theo tên và phiên bản đến năm Đường cơ sở và trạng thái hỗ trợ cho các trình duyệt có sẵn rộng rãi. Bạn có thể cung cấp các mối liên kết này dưới dạng mảng, đối tượng có khoá hoặc dưới dạng tệp CSV. Ví dụ: Google Analytics Baseline Checker sử dụng mô-đun này để kết hợp dữ liệu phân tích với các mục tiêu Cơ sở.

Đầu ra của hàm này cũng có sẵn dưới dạng tệp JSON hoặc CSV được lưu trữ và được cập nhật hằng ngày. Tệp all_versions_with_supports.csv chứa dữ liệu mà bạn có thể so khớp với dữ liệu phiên bản trình duyệt của nhà cung cấp dịch vụ phân tích bằng các trường sau:

  • browser: tên của trình duyệt được dùng trong baseline-browser-mapping
  • version: phiên bản của trình duyệt. Một số trình duyệt chỉ sử dụng số phiên bản chính, còn một số trình duyệt khác sử dụng số phiên bản major.minor.
  • year: bộ tính năng Baseline năm mà phiên bản trình duyệt này hỗ trợ. Nếu một phiên bản trình duyệt được phát hành trước khi có thể xác định mức hỗ trợ cơ bản vào tháng 7 năm 2015, thì trường này sẽ chứa pre_baseline
  • supports: trường này chứa widely hoặc newly cho các phiên bản trình duyệt hỗ trợ những bộ tính năng đó và trống đối với các phiên bản không hỗ trợ bất kỳ bộ tính năng nào trong số đó. Tất cả các phiên bản trình duyệt hỗ trợ trạng thái Mới ra mắt cũng hỗ trợ trạng thái Được cung cấp rộng rãi.
  • release_date: ngày phát hành phiên bản trình duyệt này (nếu có).
  • engine: Tên công cụ cho những trình duyệt là phiên bản hạ lưu của một trình duyệt cơ sở cốt lõi. Chỉ các trình duyệt dựa trên Blink mới được đưa vào, nhưng các công cụ trình duyệt khác có thể được đưa vào trong tương lai.
  • engine_version: phiên bản Chromium mà phiên bản trình duyệt này triển khai. Thông tin này được dùng để xác định phiên bản hạ lưu hỗ trợ Bộ tính năng cơ bản nào.

Tệp này thường xuyên được cập nhật khi các phiên bản trình duyệt mới được phát hành và trạng thái hỗ trợ của các trình duyệt thay đổi. Hãy nhớ làm mới dữ liệu hằng ngày.

Nếu tôi không có dữ liệu hỗ trợ từ người dùng thực thì sao?

Bạn có thể gặp phải tình huống không thể lấy dữ liệu người dùng thực khi nói đến các tính năng thuộc Baseline. Tin vui là bạn có thể nắm được thông tin tổng quan về khả năng hỗ trợ cho các mục tiêu Cơ sở thông qua Thông tin chi tiết về kho lưu trữ RUM, thậm chí cho phép bạn lọc xuống cấp quốc gia. Mặc dù dữ liệu này sẽ không dành riêng cho người dùng trang web của bạn. Đây là một công cụ thông tin chung minh hoạ những giả định sau đây là nhìn chung an toàn:

  • Các mục tiêu Cơ sở mới hơn (chẳng hạn như năm hiện tại hoặc năm trước) có thể có ít sự hỗ trợ nhất từ người dùng. Tuy nhiên, giống như mọi mục tiêu Baseline, các mục tiêu này sẽ được hỗ trợ tốt hơn theo thời gian.
  • Các mục tiêu Cơ sở cũ (đặc biệt là Cơ sở có phạm vi cung cấp rộng rãi) sẽ được hỗ trợ tốt. Nếu không chắc chắn, bạn có thể chọn mục tiêu Rộng rãi. Đây là một mục tiêu tuyệt vời và sẽ phát triển theo thời gian trong khoảng thời gian 30 tháng.
  • Ngay cả những mục tiêu Cơ sở cũ hơn (những mục tiêu vượt quá thời hạn 30 tháng có sẵn rộng rãi) cũng sẽ được hỗ trợ tốt nhất. Mặc dù Có sẵn trên diện rộng là mục tiêu mặc định phù hợp, nhưng có những trường hợp sử dụng đặc biệt đòi hỏi SLA nghiêm ngặt.

Rất có thể là ngay cả khi chọn một mục tiêu Cơ sở đã hơn 5 năm tuổi, bạn vẫn có thể áp dụng những tính năng mà bạn hiện không sử dụng. Trong trường hợp tốt nhất, bạn có thể đã sử dụng những tính năng này, nhưng với các polyfill mà bạn có thể không cần.

Làm cách nào để thực thi mục tiêu Đường cơ sở đã chọn trong dự án của tôi?

Browserslist là một phương pháp thường dùng để nhắm đến những trình duyệt mà bạn muốn hỗ trợ. Nó được dùng trong các trình đóng gói và những công cụ liên kết khác như BabelPostCSS để quyết định xem có cần chuyển đổi hoặc thậm chí là polyfill một số đoạn mã hay không.

Giờ đây, bạn có thể sử dụng Baseline với Browserslist để khi chọn một mục tiêu Baseline, bạn có thể chỉ định mục tiêu đó làm truy vấn Browserslist hợp lệ. Điều này đảm bảo rằng các công cụ trong dự án của bạn sẽ chuyển đổi mã theo mục tiêu mà bạn đã chọn. Để biết thêm thông tin, hãy đọc bài viết Sử dụng Baseline với Browserslist.

Còn những tính năng không đáp ứng mục tiêu Cơ bản của tôi thì sao?

Sau khi chọn một mục tiêu Cơ sở, bạn có thể có những tính năng mà bạn muốn sử dụng nhưng không nằm trong mục tiêu đó. Đường cơ sở không cho bạn biết bạn nên làm gì ở đây và việc bạn có muốn cân nhắc sử dụng các tính năng này hay không phụ thuộc vào loại trang web mà bạn đang xây dựng và đối tượng dự kiến.

Ví dụ: các trang web thương mại điện tử hoặc B2B có thể sẵn sàng có ngưỡng hỗ trợ thấp hơn và xử lý các vấn đề khi người dùng hỗ trợ họ, trong khi các trang web của chính phủ có thể yêu cầu ngưỡng hỗ trợ cao. Một nguyên tắc quan trọng ở đây là không phải tính năng nào trên web cũng gặp lỗi theo cùng một cách. Có nhiều cách để phân loại các tính năng theo cách chúng thất bại, nhưng một cách để phân loại các tính năng có thể hữu ích là:

  • Điểm cải tiến: Nếu tính năng này được dùng trong một trình duyệt không được hỗ trợ, thì trải nghiệm sẽ không bị gián đoạn. Trải nghiệm có thể bị giảm sút nhưng người dùng khó có thể nhận thấy. Ví dụ: loading="lazy".
  • Bổ sung: Tính năng này mang lại một số lợi ích bổ sung có thể nhận thấy được, chẳng hạn như thay đổi về kiểu trang hoặc một số chức năng. Người dùng có thể không nhận thấy sự khác biệt nếu tính năng này không được hỗ trợ, trừ phi họ so sánh trong một trình duyệt có hỗ trợ tính năng này. Ví dụ: Subgrid
  • Quan trọng: Nếu tính năng không được hỗ trợ, người dùng sẽ có trải nghiệm tiêu cực, thậm chí có thể là trải nghiệm hoàn toàn không hoạt động. Ví dụ: File System Access API được dùng làm một tính năng trung tâm và cần thiết.

Bạn cũng có thể thấy rằng các tính năng cụ thể bên ngoài mục tiêu của bạn có khả năng hỗ trợ tốt hơn bạn nghĩ. Bạn có thể biết được có bao nhiêu người dùng của bạn có hỗ trợ cho một tính năng cụ thể. Can I Use có khả năng kiểm tra mức độ hỗ trợ cho từng tính năng dựa trên dữ liệu phân tích của bạn. RUMvision cũng có khả năng đi sâu vào và khám phá dữ liệu ở cấp độ tính năng nếu điều đó hữu ích cho bạn.

Bằng cách này, bạn có thể sử dụng mục tiêu Cơ bản để giảm số lượng tính năng cần cân nhắc kỹ lưỡng. Bạn không cần lo lắng về mọi thứ bên trong mục tiêu của mình. Nếu có một hoặc hai tính năng bên ngoài mục tiêu của bạn nhưng đặc biệt hữu ích, thì bạn có các công cụ để khám phá thêm và quyết định có nên sử dụng polyfill hay dùng làm tính năng nâng cao tăng dần hay không.

Kết luận

Mỗi ứng dụng web đều có các yêu cầu khác nhau, từ một trang web thương mại điện tử có thể chấp nhận nhiều vấn đề về khả năng không tương thích, cho đến một trang web của chính phủ tuyệt đối phải có sẵn và hoạt động cho càng nhiều người dùng càng tốt. Đây là những phép tính mà bạn phải tự thực hiện. Mục tiêu của Baseline không phải là cho bạn biết những quyết định cần đưa ra khi áp dụng các tính năng mới trên web, mà là cách thực hiện.