เป้าหมายหนึ่งของทีม Project Fugu คือ ช่วยให้นักพัฒนาซอฟต์แวร์ทำสิ่งต่างๆ บนเว็บได้เหมือนกับที่แอปเฉพาะแพลตฟอร์มทำได้ ทางทีมจึงทุ่มเทให้กับการเพิ่มฟีเจอร์ที่ขาดหายไป ซึ่งนักพัฒนาเว็บต้องใช้เพื่อปิดช่องโหว่ของแอปนี้ ถ้าคุณไม่เชื่อ ก็ดูได้ที่ส่วน "จัดส่งแล้ว" ของเครื่องมือติดตาม Fugu API ต่อไปนี้คือ API ที่จัดส่งแล้ว 55 รายการ โดยเรียงลำดับจากล่าสุดที่จัดส่งเป็นอย่างน้อย
รายชื่อนั้นยาวเหยียดแล้วล่ะ ยังมี API และฟีเจอร์อยู่ 2-3 รายการ ที่อยู่ในการทดลองใช้สำหรับนักพัฒนาซอฟต์แวร์ในขณะนี้ (ซึ่งมีการใช้งาน แต่อยู่ภายใต้แฟล็กฟีเจอร์) บางรายการที่เราเริ่มต้องพัฒนา และอีกหลายรายการอยู่ระหว่างการพิจารณา จะเห็นได้ว่าตอนนี้ยังไม่ถึงเวลาที่เราจะเอนหลังและบอกว่าเราทำเสร็จแล้ว
เมธอดไฟล์แบบซิงโครนัสสำหรับระบบไฟล์ส่วนตัวต้นทาง
ในทางตรงกันข้าม แทนที่จะประกาศว่าเราเสร็จสมบูรณ์แล้ว จริงๆ แล้วเราเพิ่งเริ่มต้นเท่านั้น ลองดูแผนภูมิด้านล่างที่แสดงการเติบโตแบบสัมพัทธ์ในการใช้งานแบบพุ่งสูงขึ้นของเมธอด navigator.storage.getDirectory()
ซึ่งใช้เป็นจุดเข้าถึงระบบไฟล์ส่วนตัวต้นทาง (OPFS) วิธีการนี้ใช้สำหรับผู้ที่ต้องการพื้นที่เก็บข้อมูลประสิทธิภาพสูงของ Photoshop และชุมชนพื้นที่เก็บข้อมูลให้ความสนใจอย่างมาก ตั้งแต่เริ่มเลิกใช้งาน Web SQL และแม้แต่ก่อนหน้า
เนื่องจากตอนนี้มีคนใช้ OPFS มากขึ้น ข้อกำหนดเพิ่มเติมจึงเกิดขึ้น เช่น ความต้องการชุดเมธอดไฟล์แบบซิงโครนัสทั้งหมดในบริบทของผู้ปฏิบัติงาน (โปรดดูข้อมูลเบื้องต้นใน whatwg/fs#7) แม้ว่าโดยทั่วไปแล้ว API ของเว็บใหม่ๆ จะเป็นแบบไม่พร้อมกัน แต่การใช้เมธอดแบบซิงโครนัสจะทำให้การทำงานกับ OPFS ทำได้ง่ายขึ้นในบริบทของ Wasm และเนื่องจากการดำเนินการนี้เกิดขึ้นในผู้ปฏิบัติงาน เทรดหลักจะไม่สามารถบล็อกได้
การปรับปรุงความเป็นส่วนตัวสำหรับ API ของฮาร์ดแวร์
อีกตัวอย่างหนึ่งคือ API ฮาร์ดแวร์ที่ช่วยให้คุณเชื่อมต่อกับอุปกรณ์
HID, serial, USB,
บลูทูธ และ NFC แม้ว่า API เหล่านี้บางส่วนจะใช้งานได้มาสักพักแล้ว แต่ก่อนหน้านี้ยังไม่มีวิธีทำให้ลืมอุปกรณ์ที่เคยเชื่อมต่อได้ ตอนนี้เรามีเมธอด forget()
สำหรับ API บางรายการแล้ว ตัวอย่างเช่น ต่อไปนี้คือวิธีไม่จำอุปกรณ์ซีเรียลที่เชื่อมต่อไว้ก่อนหน้านี้ ซึ่งจะช่วยเพิ่มความเป็นส่วนตัวของ API
// Request a serial port.
const port = await navigator.serial.requestPort();
// Then later revoke permission to the serial port.
await port.forget();
การปรับแต่ง API ตำแหน่งหน้าต่างหลายหน้าจอ
ตัวอย่างสุดท้ายคือ API ตำแหน่งหน้าต่างสำหรับหลายหน้าจอ ซึ่งอิงจากความคิดเห็นของนักพัฒนาแอป ป้ายกำกับหน้าจอทั่วไปก่อนหน้านี้ เช่น "Internal Display 1"
ถูกแทนที่ด้วยป้ายกำกับที่มีความหมายมากขึ้น เช่น "Built-in Retina Display"
เพื่อให้ผู้ใช้เชื่อมโยงป้ายกำกับเหล่านี้กับหน้าจอของการตั้งค่าหลายหน้าจอได้ง่ายขึ้น
บทสรุป
คุณจะเห็นจาก 3 ตัวอย่างนี้ว่า Project Fugu ยังอยู่อีกมากมาย เริ่มใช้ API ของเราต่อไปหรือ ส่งความคิดเห็น เนื่องจากข้อมูลจำเพาะทั้งหมดของ Fugu พัฒนาขึ้นมาในรูปแบบโอเพ่นบน GitHub คุณจึงส่งปัญหาเกี่ยวกับข้อมูลจำเพาะเกี่ยวกับที่เก็บ GitHub ที่เกี่ยวข้องหรือเพิ่มความคิดเห็นเกี่ยวกับปัญหาที่มีอยู่แล้วได้ หากคุณพบข้อบกพร่องในการใช้งาน Chrome หรือพบว่าการใช้งานแตกต่างจากข้อกำหนด ให้รายงานข้อบกพร่องที่ new.crbug.com อย่าลืมใส่รายละเอียดให้มากที่สุดเท่าที่จะทำได้และให้วิธีการที่ง่ายในการทำซ้ำ
และถ้าคุณกังวลเกี่ยวกับการสนับสนุนเบราว์เซอร์ API ของ Fugu จำนวนมากก็ช่วยเพิ่มประสิทธิภาพแบบก้าวหน้าได้เป็นอย่างดี อ่านบทความของฉัน SVGcode: PWA สำหรับแปลงรูปภาพแรสเตอร์เป็นกราฟิกเวกเตอร์ SVG เพื่อหาแรงบันดาลใจ นอกจากนี้ เราจะยังไม่ถือว่างานของเราเสร็จสมบูรณ์จนกว่า API เหล่านี้จะทำงานร่วมกัน และเราจะผลักดันให้มีการปรับมาตรฐาน การทดสอบ และการนำไปใช้โดยเบราว์เซอร์อื่นๆ ต่อไป