پشتیبانی از چندین خواننده و نویسنده برای 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"
: این حالت پیش فرض فعلی است. هر نویسنده ایجاد شده فایل swap خود را خواهد داشت.
const writable1 = await handle.createWritable({mode: 'exclusive'});
// This will fail:
const writable2 = await handle.createWritable();
پشتیبانی از مرورگر
هر دو ویژگی، چندین خواننده و نویسنده برای FileSystemSyncAccessHandle
و نویسنده انحصاری برای FileSystemWritableFileStream
، در Chrome 121 پشتیبانی میشوند.
وارد نسخه آزمایشی برنامه نویس شوید
برای ورود به نسخه آزمایشی توسعهدهنده برای آزمایش این ویژگی قبل از راهاندازی Chrome 121، پرچم #file-system-access-locking-scheme
در chrome://flags
روی Enabled تنظیم کنید. این به شما امکان می دهد ویژگی را به صورت محلی روی دستگاه خود آزمایش کنید.
قدردانی
این مقاله توسط Daseul Lee , Nathan Memmott و Rachel Andrew بررسی شده است .