با توجه به اینکه یکی از اهداف تیم Project Fugu این است که برنامهنویسان بتوانند هر کاری را که برنامههای پلتفرم خاص میتوانند در وب انجام دهند ، این تیم مشغول اضافه کردن ویژگیهای گمشده توسعهدهندگان وب برای رفع این شکاف برنامه بوده است. اگر من را باور ندارید، فقط به بخش «ارسال شده» ردیاب Fugu API نگاه کنید. در اینجا 55 API ارسال شده به ترتیب حداقل تا اخیراً ارسال شده است:
این یک لیست طولانی است، و چیزهای بیشتری در بشقاب ما وجود دارد. هنوز چند API و ویژگی در حال حاضر در مرحله آزمایشی توسعهدهنده وجود دارد (یعنی پیادهسازی شده، اما پشت پرچم ویژگی)، برخی از آنها شروع به کار کردهایم، و بسیاری از آنها در دست بررسی هستند . همانطور که می بینید، وقت آن نیست که به عقب خم شویم و بگوییم کارمان تمام شده است.
روش های فایل همزمان برای سیستم فایل خصوصی مبدا
کاملا برعکس، به جای اینکه تلاش خود را تکمیل شده اعلام کنیم، در واقع تازه شروع کرده ایم. به عنوان مثال، نمودار زیر را در نظر بگیرید که رشد سرسام آور استفاده نسبی متد navigator.storage.getDirectory()
را نشان می دهد که به عنوان نقطه ورود به سیستم فایل خصوصی مبدا (OPFS) استفاده می شود. این روش، به عنوان مثال، برای نیازهای ذخیره سازی با کارایی بالا فتوشاپ استفاده می شود، و جامعه ذخیره سازی علاقه زیادی به آن از زمان شروع به کارگیری Web SQL و حتی قبل از آن دارد.
اکنون که افراد بیشتری از OPFS استفاده میکنند، الزامات اضافی ظاهر شده است. به عنوان مثال، نیاز به مجموعه ای کاملاً همزمان از روش های فایل در یک زمینه کارگر (به whatwg/fs#7 برای پس زمینه مراجعه کنید). در حالی که APIهای وب جدید عموماً ناهمزمان هستند، داشتن روشهای همزمان کار با OPFS را در زمینه Wasm بسیار سادهتر میکند، و از آنجایی که این در یک کارگر اتفاق میافتد، رشته اصلی را نمیتوان مسدود کرد.
بهبود حریم خصوصی برای APIهای سخت افزاری
مثال دیگر API های سخت افزاری هستند که به شما امکان می دهند به دستگاه های HID ، سریال ، 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"
جایگزین شدند تا کاربران بتوانند راحتتر با هم ارتباط برقرار کنند. این برچسب ها با صفحه نمایش های نصب چند صفحه ای آنها.
نتیجه گیری
همانطور که فقط از این سه مثال می بینید، پروژه فوگو تا انجام شدن فاصله زیادی دارد. نگه دارید یا شروع به استفاده از API های ما کنید و بازخورد ارسال کنید. از آنجایی که تمام مشخصات Fugu به صورت باز در GitHub توسعه یافته است، می توانید یک مشکل مشخصات را در مخزن GitHub مربوطه ثبت کنید یا افکار خود را به یک مشکل موجود اضافه کنید. اگر اشکالی در پیادهسازی Chrome پیدا کردید، یا متوجه شدید که پیادهسازی با مشخصات آن متفاوت است، یک اشکال را در new.crbug.com ثبت کنید. اطمینان حاصل کنید که تا جایی که می توانید جزئیات را درج کنید و دستورالعمل های ساده ای برای بازتولید ارائه دهید.
و اگر نگران پشتیبانی مرورگر هستید، بسیاری از APIهای Fugu پیشرفتهای پیشرونده بزرگی را ایجاد میکنند. به مقاله SVGcode من مراجعه کنید: یک PWA برای تبدیل تصاویر شطرنجی به گرافیک های برداری SVG برای الهام گرفتن. ما همچنین تا زمانی که این APIها قابل همکاری نباشند، کار خود را تمام شده نمی دانیم و همچنان به دنبال استانداردسازی، آزمایش و پذیرش بیشتر توسط مرورگرهای دیگر خواهیم بود.