Với một trong những mục tiêu của nhóm Project Fugu là giúp các nhà phát triển có thể bất cứ thứ gì trên web mà các ứng dụng dành riêng cho nền tảng có thể, nhóm đã bận rộn bổ sung những tính năng còn thiếu nhà phát triển web cần thu hẹp khoảng cách ứng dụng này. Nếu không tin tôi, bạn chỉ cần xem "Đã giao hàng" của trình theo dõi Fugu API. Sau đây là 55 đã vận chuyển, theo thứ tự ít nhất đến gần đây nhất được vận chuyển:
Danh sách rất dài và còn nhiều món khác nữa. Vẫn còn một số API và tính năng hiện ở trong bản dùng thử dành cho nhà phát triển (tức là được triển khai, nhưng đằng sau một cờ tính năng), một số tính năng mà chúng tôi đã bắt đầu bạn cần cải thiện, và nhiều yếu tố khác đang được cân nhắc. Khi bạn có thể thấy, đã đến lúc bạn nên tận hưởng rồi nói rằng chúng ta đã xong.
Phương thức tệp đồng bộ cho hệ thống tệp riêng tư gốc
Ngược lại, thay vì tuyên bố nỗ lực của chúng ta là đã hoàn thành, chúng ta thực sự chỉ nhận được
đầu. Ví dụ: hãy xem xét biểu đồ dưới đây thể hiện
mức sử dụng tương đối tăng vọt
của
navigator.storage.getDirectory()
, được dùng làm điểm truy cập đến hệ thống tệp riêng tư gốc (OPFS). Phương pháp này được sử dụng cho
ví dụ: cho
Bộ nhớ hiệu suất cao của Photoshop
cũng như nhu cầu của cộng đồng về bộ nhớ
rất quan tâm đến
kể từ khi Web SQL bắt đầu ngừng hoạt động và thậm chí là trước đó.
Giờ đây, khi có nhiều người sử dụng OPFS hơn, các yêu cầu bổ sung đã xuất hiện. Ví dụ: nhu cầu về một tập hợp phương thức tệp hoàn toàn đồng bộ trong ngữ cảnh worker (xem whatwg/fs#7 cho nền). Mặc dù API web mới đang nói chung là không đồng bộ, nên việc có các phương thức đồng bộ sẽ giúp làm việc với OPFS đơn giản hơn rất nhiều trong ngữ cảnh Wasm và vì điều này xảy ra trong một worker nên không thể chặn luồng chính.
Cải thiện quyền riêng tư cho API phần cứng
Một ví dụ khác là API phần cứng cho phép bạn kết nối với
HID, sổ nối tiếp, USB,
Thiết bị Bluetooth và NFC. Mặc dù một số
các API này đã xuất hiện được một thời gian, cho đến gần đây, không có cách nào để quên một thiết bị mà
đã kết nối trước đó. Giờ đây, nhờ có
Phương thức forget()
cho một số API. Cho
ví dụ: dưới đây là cách quên một thiết bị nối tiếp đã kết nối trước đó, cách này giúp cải thiện tính bảo mật của
API.
// Request a serial port.
const port = await navigator.serial.requestPort();
// Then later revoke permission to the serial port.
await port.forget();
Tinh chỉnh cho API Vị trí cửa sổ nhiều màn hình
Ví dụ cuối cùng là
API Vị trí cửa sổ nhiều màn hình, trong đó, dựa trên
phản hồi của nhà phát triển, các nhãn màn hình chung trước đây như "Internal Display 1"
đã được thay thế
bằng các nhãn có ý nghĩa hơn như "Built-in Retina Display"
để người dùng có thể dễ dàng liên kết
các nhãn này với màn hình thiết lập nhiều màn hình của chúng.
Kết luận
Như bạn có thể thấy chỉ trong ba ví dụ này, Dự án Fugu vẫn chưa thể hoàn thành. Giữ lại hoặc bắt đầu thông qua API của chúng tôi và gửi phản hồi. Vì tất cả thông số của Fugu đều được phát triển công khai trên GitHub, nên bạn có thể báo cáo vấn đề thông số kỹ thuật trên kho lưu trữ GitHub tương ứng hoặc bổ sung ý kiến về vấn đề hiện có. Nếu bạn tìm lỗi trong quá trình triển khai Chrome hoặc phát hiện ra rằng cách triển khai khác với spec, sau đó báo cáo lỗi tại new.crbug.com. Hãy nhớ cung cấp càng nhiều thông tin chi tiết càng tốt và cung cấp những hướng dẫn đơn giản về cách tái sản xuất.
Và nếu bạn lo ngại về việc hỗ trợ trình duyệt, nhiều API Fugu tạo ra sự tiến bộ các tính năng nâng cao. Xem bài viết của tôi Mã SVG: PWA để chuyển đổi hình ảnh đường quét thành đồ họa vectơ SVG cho nguồn cảm hứng. Chúng tôi cũng chưa xem xét công việc của mình cho đến khi các API này có khả năng tương tác và chúng tôi sẽ tiếp tục thúc đẩy tiêu chuẩn hoá, thử nghiệm và áp dụng hơn nữa cho các trình duyệt khác.