Tính năng mới trong Chrome 72

Trong Chrome 72, chúng tôi đã thêm tính năng hỗ trợ cho:

Và còn nhiều tính năng khác!

Tôi là Pete LePage. Hãy cùng tìm hiểu những tính năng mới dành cho nhà phát triển trong Chrome 72!

Nhật ký thay đổi

Phần này chỉ đề cập đến một số điểm nổi bật chính. Hãy xem các đường liên kết bên dưới để biết thêm các thay đổi khác trong Chrome 72.

Trường lớp công khai

Ngôn ngữ đầu tiên của tôi là Java và việc học JavaScript đã khiến tôi gặp một chút khó khăn. Làm cách nào để tạo một lớp? Hay tính kế thừa? Còn các thuộc tính và phương thức công khai và riêng tư thì sao? Nhiều bản cập nhật gần đây cho JavaScript giúp việc lập trình hướng đối tượng trở nên dễ dàng hơn nhiều.

Giờ đây, tôi có thể tạo các lớp hoạt động như mong đợi, hoàn chỉnh với hàm khởi tạo, phương thức getter và setter, phương thức tĩnh và thuộc tính công khai.

Nhờ V8 7.2 đi kèm với Chrome 72, giờ đây, bạn có thể khai báo các trường lớp công khai trực tiếp trong định nghĩa lớp, không cần phải khai báo trong hàm khởi tạo.

class Counter {
  _value = 0;
  get value() {
    return this._value;
  }
  increment() {
    this._value++;
  }
}

const counter = new Counter();
console.log(counter.value);
// → 0
counter.increment();
console.log(counter.value);
// → 1

Chúng tôi đang hỗ trợ các trường lớp riêng tư!

Để biết thêm thông tin chi tiết, hãy xem bài viết của Mathias về các trường lớp.

User Activation API

Bạn có nhớ thời điểm các trang web có thể tự động phát âm thanh ngay khi trang được tải không? Bạn vội vã nhấn phím tắt tiếng hoặc tìm ra thẻ đó rồi đóng thẻ. Đó là lý do một số API yêu cầu kích hoạt bằng cử chỉ của người dùng để có thể hoạt động. Rất tiếc, các trình duyệt xử lý việc kích hoạt theo nhiều cách.

API kích hoạt người dùng trước và sau khi người dùng tương tác với trang.

Chrome 72 ra mắt User Activation v2 (Kích hoạt người dùng phiên bản 2), giúp đơn giản hoá việc kích hoạt người dùng cho tất cả API có kiểm soát. Tính năng này dựa trên một quy cách mới nhằm mục đích chuẩn hoá cách hoạt động của tính năng kích hoạt trên tất cả trình duyệt.

Có một thuộc tính userActivation mới trên cả navigatorMessageEvent, thuộc tính này có hai thuộc tính: hasBeenActiveisActive:

  • hasBeenActive cho biết liệu cửa sổ được liên kết có từng thấy một lượt kích hoạt người dùng trong vòng đời của cửa sổ đó hay không.
  • isActive cho biết liệu cửa sổ liên kết hiện có hoạt động kích hoạt của người dùng trong vòng đời của cửa sổ hay không.

Bạn có thể xem thêm thông tin chi tiết trong phần Đảm bảo tính nhất quán của hoạt động kích hoạt người dùng trên các API

Bản địa hoá danh sách các mục bằng Intl.format

Tôi rất thích các API Intl. Chúng rất hữu ích cho việc bản địa hoá nội dung sang các ngôn ngữ khác! Trong Chrome 72, có một phương thức .format() mới giúp hiển thị danh sách dễ dàng hơn. Giống như các API Intl khác, API này chuyển gánh nặng sang công cụ JavaScript mà không làm giảm hiệu suất.

Hãy khởi động công cụ này bằng ngôn ngữ bạn muốn, sau đó gọi format và phương thức này sẽ sử dụng các từ và cú pháp chính xác. Công cụ này có thể thực hiện các liên kết – thêm nội dung tương đương được bản địa hoá của and (và xem những dấu phẩy oxford tuyệt đẹp đó). Hàm này có thể phân biệt - thêm tương đương cục bộ của or. Và bằng cách cung cấp một số tuỳ chọn bổ sung, bạn thậm chí có thể làm được nhiều việc hơn nữa.

const opts = {type: 'disjunction'};
const lf = new Intl.ListFormat('fr', opts);
lf.format(['chien', 'chat', 'oiseau']);
// → 'chien, chat ou oiseau'
lf.format(['chien', 'chat', 'oiseau', 'lapin']);
// → 'chien, chat, oiseau ou lapin'

Hãy xem bài đăng về Intl.ListFormat API để biết thêm thông tin chi tiết!

Và nhiều tính năng khác!

Tất nhiên, đây chỉ là một vài thay đổi trong Chrome 72 dành cho nhà phát triển, còn rất nhiều thay đổi khác nữa.

  • Chrome 72 thay đổi hành vi của Cache.addAll() để phù hợp hơn với thông số kỹ thuật. Trước đây, nếu có các mục trùng lặp trong cùng một lệnh gọi, thì các yêu cầu sau đó sẽ chỉ ghi đè yêu cầu đầu tiên. Để khớp với thông số kỹ thuật, nếu có mục nhập trùng lặp, thì thông số kỹ thuật sẽ từ chối bằng InvalidStateError.
  • Giờ đây, trình chạy dịch vụ sẽ xử lý yêu cầu tạo biểu tượng trang web, miễn là URL yêu cầu có cùng nguồn gốc với trình chạy dịch vụ.

Đăng ký

Nếu muốn cập nhật video của chúng tôi, hãy đăng ký kênh YouTube dành cho nhà phát triển Chrome. Bạn sẽ nhận được thông báo qua email mỗi khi chúng tôi ra mắt video mới.

Tôi là Pete LePage. Ngay khi Chrome 73 được phát hành, tôi sẽ quay lại đây để giới thiệu cho bạn những tính năng mới trong Chrome!