تحسينات واجهة برمجة التطبيقات للعمل مع الملفات في المتصفح

دعم العديد من القراء والمؤلفين لـ FileSystemSyncAccessHandle والكاتب الحصري لـ FileSystemWritableFileStream.

العديد من برامج القراءة والكتّاب لـ FileSystemSyncAccessHandle

يسمح نظام الملفات الخاصة المصدر (يُشار إليه أحيانًا باسم نظام حزمة الملفات) للمطوّرين بالوصول إلى الملفات التي تم تحسينها لتحقيق أفضل أداء للقراءة والكتابة. يحدث ذلك من خلال عناصر FileSystemSyncAccessHandle. في الوقت الحالي، يتعذّر فتح كائنات FileSystemSyncAccessHandle متعددة لإدخال الملف نفسه باستخدام NoModificationAllowedError. وبما أنّ هناك حالات استخدام تؤدي فيها إلى الحدّ من هذا القيد، يقدّم Chrome 121 مَعلمة mode جديدة لطريقة FileSystemFileHandle.createSyncAccessHandle() مع قيم السلسلة المسموح بها التالية:

  • "readwrite": هذا هو الخيار التلقائي حاليًا. بعد فتح التطبيق، يُسمَح باستخدام أي طرق على FileSystemSyncAccessHandle. يُسمح بمثيل واحد فقط من FileSystemSyncAccessHandle.
  • "read-only" : يتيح هذا الإذن لعدة قرّاء. بعد الفتح، يُسمح فقط بالطرق المشابهة للقراءة على FileSystemSyncAccessHandle: read() وgetSize() وclose(). يمكن إنشاء نُسخ متعددة من FileSystemSyncAccessHandle شرط أن تكون جميعها في وضع القراءة فقط.
  • "readwrite-unsafe": السماح للعديد من المؤلفين بعد فتح التطبيق، يُسمَح باستخدام أي طرق على FileSystemSyncAccessHandle. قد يتم إنشاء عدّة مثيلات من FileSystemSyncAccessHandle ما دامت جميعها في الوضع المخصَّص للقراءة غير الآمن.

ويتم الحفاظ على السلوك الحالي من خلال الإبقاء على الخيار "readwrite" كالخيار التلقائي، ما يسمح بمثيل واحد فقط في كل مرة. إذا كان الموقع الإلكتروني يحتاج إلى فتح كائنات FileSystemSyncAccessHandle متعدّدة ولا يحتاج إلى إجراء عمليات كتابة، يجب استخدام الخيار "read-only". أخيرًا، يسمح الخيار الأخير "readwrite-unsafe" بمثيلات متعددة بالإضافة إلى القراءة والكتابة. في هذه الحالة، يمكن أن تكون الكتابة للبالغين إذا تمت من علامات تبويب متعددة، وقد تحتاج المواقع الإلكترونية إلى توفير نظام الإغلاق الخاص بها.

const handle1 = await handle.createSyncAccessHandle({mode: 'readwrite-unsafe'});
// This will succeed:
const handle2 = await handle.createSyncAccessHandle({mode: 'readwrite-unsafe'});

كاتب حصري لـ FileSystemWritableFileStream

على عكس FileSystemSyncAccessHandle، يمكن اليوم إنشاء نُسخ متعددة من FileSystemWritableFileStream لكل إدخال ملف. ما ينقص هو توفير خيار لكاتب حصري. يضيف Chrome 121 مَعلمة mode اختيارية إلى طريقة FileSystemAccessFileHandle.createWritable() التي تحتوي على القيم التالية:

  • الوضع "exclusive": لا يمكن استخدام أكثر من كاتب واحد في كل مرة.
  • الوضع التلقائي حاليًا هو "siloed". سيكون لكل كاتب تم إنشاؤه ملف تبديل خاص به.
const writable1 = await handle.createWritable({mode: 'exclusive'});
// This will fail:
const writable2 = await handle.createWritable();

المتصفحات المتوافقة

تتوفّر كلتا الميزتَين، بالإضافة إلى إمكانية قراءة العديد من القرّاء والمؤلفين في FileSystemSyncAccessHandle والمؤلف الحصري لـ FileSystemWritableFileStream، وذلك اعتبارًا من الإصدار 121 من Chrome.

المشاركة في تجربة المطوّر

للدخول في الفترة التجريبية للمطوّر من أجل اختبار الميزة قبل إطلاق Chrome 121، اضبط علامة #file-system-access-locking-scheme في chrome://flags على مفعّلة. سيتيح لك هذا اختبار الميزة محليًا على جهازك.

شكر وتقدير

تمت مراجعة هذه المقالة من قِبل داسول لي وناثان ميموت وراشيل أندرو.