Кратко
СкопированоОбъект, который содержит буфер фиксированной длины с бинарными данными. Используется для доступа к разделяемой памяти и не может быть откреплён от неё, в отличие от Array. Является частью типизированного массива Typed.
Типизированные массивы упрощают работу с тяжёлыми данными, например, видео, аудио и анимациями. Их часто используют с различными API — WebGL, Canvas 2D, XMLHttpRequest2 и так далее.
Пример
Скопировано
const sab = new SharedArrayBuffer(1024)worker.postMessage(sab)
const sab = new SharedArrayBuffer(1024)
worker.postMessage(sab)
Как пишется
СкопированоВсегда используйте оператор new для создания SharedArray. В скобках указывают размер буфера в байтах. В качестве второго значения можно указать дополнительные свойства. Например, максимальный размер, до которого может увеличиться SharedArray.
const buffer = new SharedArrayBuffer(8, { maxByteLength: 16 })buffer.grow(12)
const buffer = new SharedArrayBuffer(8, { maxByteLength: 16 })
buffer.grow(12)
Так как SharedArray может работать сразу с несколькими тредами в памяти, его используют для Service Worker. В этом случае SharedArray используют вместе с методом postи алгоритмами структурированного клонирования.
Из-за рисков, связанных с информационной безопасностью, к SharedArray не всегда стоит предоставлять глобальный доступ. Чтобы максимально обезопасить данные на сайте или в приложении, не забывайте про CORS (Cross-origin Resource Sharing, совместное использование ресурсов между разными источниками).
Свойства
Скопированоbyte— размер буфера в байтах.Length constructor— создаёт экземпляр объекта.growable— увеличивается или нет длина буфера. Возвращаетtrueилиfalse.max— максимальный размер, до которого может увеличитьсяByte Length SharedArray.Buffer
Методы
Скопировано.grow— расширяет размеры объекта( ) SharedArrayв байтах до установленного значения.Buffer .slice— возвращает копию( ) SharedArrayс таким же количеством байтов, как оригинальный объект.Buffer
Как понять
СкопированоБуфер — пространство в памяти, где хранятся бинарные данные. Разделяемая память (shared memory) означает, что для чтения и записи информации из буфера обращаются не к ядру, а к отдельным сегментам памяти. Про память подробнее узнаете из статьи «Как устроена память».