תמיכה במספר קוראי וכותבי 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
ל-Enabled. כך תוכלו לבדוק את התכונה באופן מקומי במחשב.
אישורים
הבדיקה של המאמר בוצעה על ידי Daseul Lee, Nathan Memmott ו-Rachel Andrew.