Ondersteuning voor meerdere lezers en schrijvers voor FileSystemSyncAccessHandle en exclusieve schrijver voor FileSystemWritableFileStream.
Meerdere lezers en schrijvers voor FileSystemSyncAccessHandle
Het oorspronkelijke private bestandssysteem (soms ook wel het bucketbestandssysteem genoemd) stelt ontwikkelaars in staat toegang te krijgen tot bestanden die geoptimaliseerd zijn voor maximale lees- en schrijfprestaties. Dit gebeurt via FileSystemSyncAccessHandle
-objecten. Momenteel mislukt het openen van meerdere FileSystemSyncAccessHandle
-objecten voor dezelfde bestandsvermelding met een NoModificationAllowedError
. Omdat er use cases zijn waarin deze beperking beperkend is, introduceert Chrome 121 een nieuwe mode
voor de FileSystemFileHandle.createSyncAccessHandle()
-methode met de volgende toegestane tekenreekswaarden:
-
"readwrite"
: Dit is de huidige standaard. Eenmaal geopend, zijn alle methoden opFileSystemSyncAccessHandle
toegestaan. Slechts één instantie vanFileSystemSyncAccessHandle
is toegestaan. -
"read-only"
: Staat meerdere lezers toe. Eenmaal geopend, zijn alleen lees-achtige methoden opFileSystemSyncAccessHandle
toegestaan:read()
,getSize()
enclose()
. Er kunnen meerdere instanties vanFileSystemSyncAccessHandle
worden aangemaakt, zolang ze allemaal in de alleen-lezen-modus staan. -
"readwrite-unsafe"
: Staat meerdere schrijvers toe. Eenmaal geopend, zijn alle methoden opFileSystemSyncAccessHandle
toegestaan. Er kunnen meerdere instanties vanFileSystemSyncAccessHandle
worden aangemaakt, zolang ze allemaal in de readwrite-unsafe modus staan.
Het huidige gedrag blijft behouden door de optie "readwrite"
als standaard te behouden, die slechts één instance tegelijk toestaat. Als een site meerdere FileSystemSyncAccessHandle
objecten moet openen, maar geen schrijfbewerkingen hoeft uit te voeren, moet de optie "read-only"
worden gebruikt. De laatste optie, "readwrite-unsafe"
staat meerdere instances toe, evenals zowel lezen als schrijven. In dit geval kunnen schrijfbewerkingen riskant zijn als ze vanaf meerdere tabbladen worden uitgevoerd, en moeten sites hun eigen vergrendelingsschema opgeven.
const handle1 = await handle.createSyncAccessHandle({mode: 'readwrite-unsafe'});
// This will succeed:
const handle2 = await handle.createSyncAccessHandle({mode: 'readwrite-unsafe'});
Exclusieve schrijver voor FileSystemWritableFileStream
In tegenstelling tot FileSystemSyncAccessHandle
kunnen er tegenwoordig meerdere instanties van FileSystemWritableFileStream
per bestandsitem worden aangemaakt. Wat ontbreekt, is een manier om een optie voor een exclusieve schrijver te bieden. Chrome 121 voegt een optionele mode
toe aan de FileSystemAccessFileHandle.createWritable()
-methode met de volgende waarden:
-
"exclusive"
modus: Er kan maar één schrijver tegelijk bestaan. -
"siloed"
-modus: Dit is de huidige standaard. Elke aangemaakte writer heeft zijn eigen wisselbestand.
const writable1 = await handle.createWritable({mode: 'exclusive'});
// This will fail:
const writable2 = await handle.createWritable();
Browserondersteuning
Beide functies, meerdere lezers en schrijvers voor FileSystemSyncAccessHandle
en exclusieve schrijver voor FileSystemWritableFileStream
, worden ondersteund vanaf Chrome 121.
Doe mee aan de dev-proefperiode
Om deel te nemen aan de dev-test om de functie te testen voordat Chrome 121 wordt gelanceerd, stelt u de vlag #file-system-access-locking-scheme
in chrome://flags
in op ' Ingeschakeld '. Zo kunt u de functie lokaal op uw computer testen.
Dankbetuigingen
Dit artikel is beoordeeld door Daseul Lee , Nathan Memmott en Rachel Andrew .
,Ondersteuning voor meerdere lezers en schrijvers voor FileSystemSyncAccessHandle en exclusieve schrijver voor FileSystemWritableFileStream.
Meerdere lezers en schrijvers voor FileSystemSyncAccessHandle
Het oorspronkelijke private bestandssysteem (soms ook wel het bucketbestandssysteem genoemd) stelt ontwikkelaars in staat toegang te krijgen tot bestanden die geoptimaliseerd zijn voor maximale lees- en schrijfprestaties. Dit gebeurt via FileSystemSyncAccessHandle
-objecten. Momenteel mislukt het openen van meerdere FileSystemSyncAccessHandle
-objecten voor dezelfde bestandsvermelding met een NoModificationAllowedError
. Omdat er use cases zijn waarin deze beperking beperkend is, introduceert Chrome 121 een nieuwe mode
voor de FileSystemFileHandle.createSyncAccessHandle()
-methode met de volgende toegestane tekenreekswaarden:
-
"readwrite"
: Dit is de huidige standaard. Eenmaal geopend, zijn alle methoden opFileSystemSyncAccessHandle
toegestaan. Slechts één instantie vanFileSystemSyncAccessHandle
is toegestaan. -
"read-only"
: Staat meerdere lezers toe. Eenmaal geopend, zijn alleen lees-achtige methoden opFileSystemSyncAccessHandle
toegestaan:read()
,getSize()
enclose()
. Er kunnen meerdere instanties vanFileSystemSyncAccessHandle
worden aangemaakt, zolang ze allemaal in de alleen-lezen-modus staan. -
"readwrite-unsafe"
: Staat meerdere schrijvers toe. Eenmaal geopend, zijn alle methoden opFileSystemSyncAccessHandle
toegestaan. Er kunnen meerdere instanties vanFileSystemSyncAccessHandle
worden aangemaakt, zolang ze allemaal in de readwrite-unsafe modus staan.
Het huidige gedrag blijft behouden door de optie "readwrite"
als standaard te behouden, die slechts één instance tegelijk toestaat. Als een site meerdere FileSystemSyncAccessHandle
objecten moet openen, maar geen schrijfbewerkingen hoeft uit te voeren, moet de optie "read-only"
worden gebruikt. De laatste optie, "readwrite-unsafe"
staat meerdere instances toe, evenals zowel lezen als schrijven. In dit geval kunnen schrijfbewerkingen riskant zijn als ze vanaf meerdere tabbladen worden uitgevoerd, en moeten sites hun eigen vergrendelingsschema opgeven.
const handle1 = await handle.createSyncAccessHandle({mode: 'readwrite-unsafe'});
// This will succeed:
const handle2 = await handle.createSyncAccessHandle({mode: 'readwrite-unsafe'});
Exclusieve schrijver voor FileSystemWritableFileStream
In tegenstelling tot FileSystemSyncAccessHandle
kunnen er tegenwoordig meerdere instanties van FileSystemWritableFileStream
per bestandsitem worden aangemaakt. Wat ontbreekt, is een manier om een optie voor een exclusieve schrijver te bieden. Chrome 121 voegt een optionele mode
toe aan de FileSystemAccessFileHandle.createWritable()
-methode met de volgende waarden:
-
"exclusive"
modus: Er kan maar één schrijver tegelijk bestaan. -
"siloed"
-modus: Dit is de huidige standaard. Elke aangemaakte writer heeft zijn eigen wisselbestand.
const writable1 = await handle.createWritable({mode: 'exclusive'});
// This will fail:
const writable2 = await handle.createWritable();
Browserondersteuning
Beide functies, meerdere lezers en schrijvers voor FileSystemSyncAccessHandle
en exclusieve schrijver voor FileSystemWritableFileStream
, worden ondersteund vanaf Chrome 121.
Doe mee aan de dev-proefperiode
Om deel te nemen aan de dev-test om de functie te testen voordat Chrome 121 wordt gelanceerd, stelt u de vlag #file-system-access-locking-scheme
in chrome://flags
in op ' Ingeschakeld '. Zo kunt u de functie lokaal op uw computer testen.
Dankbetuigingen
Dit artikel is beoordeeld door Daseul Lee , Nathan Memmott en Rachel Andrew .