إتاحة قراء وكاتبين متعدّدين لواجهة FileSystemSyncAccessHandle وكاتب حصري لواجهة FileSystemWritableFileStream
قراء وكاتبون متعدّدون لـ FileSystemSyncAccessHandle
يسمح نظام الملفات الخاص بالمصدر (المعروف أحيانًا أيضًا باسم نظام ملفات الحزمة) للمطوّرين بالوصول إلى الملفات المحسّنة لتحقيق أفضل أداء للقراءة والكتابة. ويتم ذلك من خلال عناصر FileSystemSyncAccessHandle
. في الوقت الحالي، تؤدي محاولة فتح عناصر FileSystemSyncAccessHandle
متعددة لإدخال الملف نفسه إلى ظهور خطأ NoModificationAllowedError
. بما أنّ هناك حالات استخدام يكون فيها هذا القيد محدودًا، يقدّم الإصدار 121 من Chrome مَعلمة 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
لكل إدخال ملف اليوم. وما ينقصه هو توفير خيار لكاتب حصري. يضيف الإصدار 121 من Chrome مَعلمة mode
اختيارية إلى طريقة FileSystemAccessFileHandle.createWritable()
التي تحتوي على القيم التالية:
- وضع
"exclusive"
: لا يمكن إنشاء أكثر من كاتب واحد في كل مرة. - وضع
"siloed"
: هذا هو الوضع التلقائي الحالي. سيكون لكل كاتب تم إنشاؤه ملف تبادل خاص به.
const writable1 = await handle.createWritable({mode: 'exclusive'});
// This will fail:
const writable2 = await handle.createWritable();
دعم المتصفح
تتوفّر كلتا الميزتَين، أي ميزة "قارئون وكاتبون متعدّدون" في FileSystemSyncAccessHandle
وميزة "كاتب حصري" في FileSystemWritableFileStream
، اعتبارًا من الإصدار 121 من Chrome.
الدخول إلى الفترة التجريبية للمطوّر
للدخول إلى الإصدار التجريبي للمطوّرين لاختبار الميزة قبل إطلاق الإصدار 121 من Chrome، اضبط العلامة #file-system-access-locking-scheme
في chrome://flags
على مفعّل. سيتيح لك ذلك اختبار الميزة على جهازك.
الشكر والتقدير
تمت مراجعة هذه المقالة بواسطة داسول لي وناثان ميموت وراشيل أندرو.