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ể thực hiện mọi thứ trên web mà ứng dụng dành riêng cho nền tảng có thể, họ đang bận rộn bổ sung các tính năng còn thiếu mà các nhà phát triển web cần thiết để thu hẹp khoảng cách về ứng dụng. Nếu không tin thì bạn chỉ cần xem phần "Đã vận chuyển" của trình theo dõi API Fugu. Dưới đây là 55 API đã vận chuyển, theo thứ tự ít nhất cho đến gần đây nhất được vận chuyển:
Đây là một danh sách dài và còn nhiều thứ khác nữa. Vẫn còn một số API và tính năng hiện đang ở trong bản dùng thử dành cho nhà phát triển (tức là đã được triển khai, nhưng sau một cờ tính năng), một số API và một số tính năng chúng tôi đã bắt đầu phát triển và nhiều API đang được xem xét. Như bạn có thể thấy, đã chưa đến lúc ngả người ra sau và nói rằng chúng ta đã hoàn tất.
Các phương thức tệp đồng bộ cho hệ thống tệp riêng tư gốc
Hoàn toàn ngược lại, thay vì tuyên bố nỗ lực của mình là đã hoàn tất, thực ra chúng ta chỉ mới bắt đầu. Ví dụ: hãy xem xét biểu đồ dưới đây cho thấy mức tăng về mức sử dụng tương đối của phương thức navigator.storage.getDirectory()
, được dùng làm điểm truy cập vào hệ thống tệp riêng tư gốc (OPFS). Ví dụ: phương thức này được sử dụng cho nhu cầu lưu trữ hiệu suất cao của Photoshop, và là điều mà cộng đồng bộ nhớ rất quan tâm kể từ khi Web SQL bắt đầu ngừng hoạt động và thậm chí trước đó.
Giờ đây, khi nhiều người sử dụng OPFS hơn thì các yêu cầu bổ sung đã xuất hiện. Ví dụ: nhu cầu về một tập hợp các phương thức tệp đồng bộ hoàn toàn trong ngữ cảnh worker (xem whatwg/fs#7 để biết nền). Mặc dù các API web mới thường không đồng bộ, nhưng việc có các phương thức đồng bộ sẽ giúp quá trình làm việc với OPFS đơn giản hơn nhiều trong ngữ cảnh Wasm và vì điều này diễn 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à các API phần cứng cho phép bạn kết nối với các thiết bị HID, serial, USB, Bluetooth và NFC. Mặc dù một số API này đã hoạt động được một thời gian, nhưng cho đến gần đây thì vẫn chưa có cách nào để quên thiết bị mà bạn đã kết nối trước đó. Hiện nay, nhờ các phương thức forget()
dành cho một số API. Ví dụ: dưới đây là cách xoá thiết bị nối tiếp đã kết nối trước đó, 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ổ đa màn hình
Ví dụ cuối cùng là API Vị trí cửa sổ đa 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 trong quá trình thiết lập nhiều màn hình.
Kết luận
Như bạn có thể thấy qua ba ví dụ này, Project Fugu vẫn chưa hoàn thành. Tiếp tục hoặc bắt đầu sử dụng các API của chúng tôi và gửi ý kiến phản hồi. Vì tất cả các thông số kỹ thuật Fugu đều được phát triển trong phiên bản mở trên GitHub, nên bạn có thể gửi vấn đề về thông số kỹ thuật trên kho lưu trữ GitHub tương ứng hoặc thêm ý kiến vào vấn đề hiện tại. Nếu bạn phát hiện lỗi trong quá trình triển khai của Chrome hoặc phát hiện ra rằng cách triển khai khác với thông số kỹ thuật, hãy báo cáo lỗi tại new.crbug.com. Hãy nhớ cung cấp nhiều thông tin chi tiết nhất có thể và cung cấp hướng dẫn đơn giản để tái tạo.
Và, nếu bạn lo ngại về khả năng hỗ trợ của trình duyệt, nhiều API Fugu tạo ra các tính năng nâng cao tiến bộ tuyệt vời. Hãy xem bài viết của tôi SVGcode: một PWA để chuyển đổi hình ảnh đường quét sang đồ hoạ vectơ SVG để lấy cảm hứng. Chúng tôi cũng chưa coi việc làm của mình là hoàn tất