دعم العديد من القراء والمؤلفين لـ 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
على مفعّلة. سيتيح لك هذا اختبار الميزة محليًا على جهازك.
شكر وتقدير
تمت مراجعة هذه المقالة من قِبل داسول لي وناثان ميموت وراشيل أندرو.