Baseline Widely available *
ÐбÑÐµÐºÑ SharedArrayBuffer
подобен ArrayBuffer, Ñо еÑÑÑ ÑÑо бÑÑÐµÑ ÑикÑиÑованной длинÑ, иÑполÑзÑÑÑийÑÑ Ð´Ð»Ñ Ñ
ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð»ÑбÑÑ
бинаÑнÑÑ
даннÑÑ
. Ðлавное оÑлиÑие SharedArrayBuffer
Ð¾Ñ ArrayBuffer
заклÑÑаеÑÑÑ Ð² Ñом, ÑÑо он иÑполÑзÑеÑÑÑ Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑазделÑемой облаÑÑи памÑÑи. РоÑлиÑие Ð¾Ñ ArrayBuffer
SharedArrayBuffer
не Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¾ÑкÑеплÑн Ð¾Ñ ÑооÑвеÑÑÑвÑÑÑей ÐµÐ¼Ñ Ð¾Ð±Ð»Ð°ÑÑи памÑÑи.
ÐÐ»Ñ ÑовмеÑÑного иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð¾Ð±ÑекÑа SharedArrayBuffer
Ð¼ÐµÐ¶Ð´Ñ Ð¾Ð´Ð½Ð¸Ð¼ агенÑом в клаÑÑеÑе и дÑÑгим (агенÑом Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÐºÐ°Ðº оÑÐ½Ð¾Ð²Ð½Ð°Ñ Ð¿ÑогÑамма ÑÑÑаниÑÑ ÑайÑа, Ñак и один из ÐµÑ Ð²ÐµÐ±-воÑкеÑов) иÑполÑзÑÑÑÑÑ postMessage
и алгоÑиÑм ÑÑÑÑкÑÑÑиÑованного клониÑованиÑ.
ÐлгоÑиÑм ÑÑÑÑкÑÑÑиÑованного клониÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¿ÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ SharedArrayBuffers
и TypedArrays
, оÑобÑажÑннÑй в SharedArrayBuffers
. РобоиÑ
ÑлÑÑаÑÑ
обÑÐµÐºÑ SharedArrayBuffer
пеÑедаÑÑÑÑ Ð¿Ð¾Ð»ÑÑаÑелÑ, ÑÑо пÑÐ¸Ð²Ð¾Ð´Ð¸Ñ Ðº поÑÐ²Ð»ÐµÐ½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ пÑиваÑного обÑекÑа SharedArrayBuffer внÑÑÑи агенÑа-полÑÑаÑÐµÐ»Ñ (Ñак же как Ð´Ð»Ñ ArrayBuffer
). Ðба обÑекÑа SharedArrayBuffer
ÑÑÑлаÑÑÑÑ Ð½Ð° один и ÑÐ¾Ñ Ð¶Ðµ блок обÑиÑ
даннÑÑ
, и побоÑнÑй ÑÑÑекÑ, изменÑÑÑий блок даннÑÑ
в одном из агенÑов, в иÑоге пÑоÑвиÑÑÑ Ð² дÑÑгом агенÑе.
var sab = new SharedArrayBuffer(1024);
worker.postMessage(sab);
Ðбновление и ÑинÑ
ÑонизаÑÐ¸Ñ ÑазделÑемой памÑÑи Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð°ÑомаÑнÑÑ
опеÑаÑий
РазделÑемÑÑ Ð¿Ð°Ð¼ÑÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑоздаваÑÑ Ð¸ изменÑÑÑ Ð¾Ð´Ð½Ð¾Ð²Ñеменно в воÑкеÑÐ°Ñ Ð¸Ð»Ð¸ оÑновном поÑоке. РзавиÑимоÑÑи Ð¾Ñ ÑиÑÑÐµÐ¼Ñ (ЦÐУ, ÐС, бÑаÑзеÑа), ÑаÑпÑоÑÑÑанение изменений по вÑем конÑекÑÑам Ð¼Ð¾Ð¶ÐµÑ Ð·Ð°Ð½ÑÑÑ Ð½ÐµÐºÐ¾ÑоÑое вÑемÑ. ÐÐ»Ñ ÑÐ¸Ð½Ñ ÑонизаÑии Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ñ Ð°ÑомаÑнÑе опеÑаÑии .
ТÑÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑÑиРазделÑÐµÐ¼Ð°Ñ Ð¿Ð°Ð¼ÑÑÑ Ð¸ ÑаймеÑÑ Ð²ÑÑокого ÑазÑеÑÐµÐ½Ð¸Ñ Ð±Ñли оÑклÑÑÐµÐ½Ñ Ð² наÑале 2018 года из-за аÑаки Spectre. Ð 2020 Ð³Ð¾Ð´Ñ Ð±Ñл ÑÑандаÑÑизиÑован новÑй, безопаÑнÑй Ð¿Ð¾Ð´Ñ Ð¾Ð´, ÑÑÐ¾Ð±Ñ Ð²ÐºÐ»ÑÑиÑÑ ÑазделÑемÑÑ Ð¿Ð°Ð¼ÑÑÑ Ð¾Ð±ÑаÑно.
ÐÑновное ÑÑебование â Ð²Ð°Ñ Ð´Ð¾ÐºÑÐ¼ÐµÐ½Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑÑ Ð² безопаÑном конÑекÑÑе.
ÐÐ»Ñ Ð´Ð¾ÐºÑменÑов веÑÑ Ð½ÐµÐ³Ð¾ ÑÑÐ¾Ð²Ð½Ñ Ð½Ñжно ÑÑÑановиÑÑ Ð´Ð²Ð° заголовка, ÑÑÐ¾Ð±Ñ Ð¸Ð·Ð¾Ð»Ð¸ÑоваÑÑ Ð²Ð°Ñ ÑÐ°Ð¹Ñ Ð¾Ñ Ð´ÑÑÐ³Ð¸Ñ Ð¸ÑÑоÑников:
Cross-Origin-Opener-Policy
Ñо знаÑением `same-origin`` (заÑиÑÐ°ÐµÑ Ð²Ð°Ñ Ð¸ÑÑоÑник Ð¾Ñ Ð°Ñаки)Cross-Origin-Embedder-Policy
Ñо знаÑением require-corp
или credentialless
(заÑиÑÐ°ÐµÑ Ð¶ÐµÑÑв Ð¾Ñ Ð²Ð°Ñего иÑÑоÑника)ЧÑÐ¾Ð±Ñ Ð¿ÑовеÑиÑÑ, ÑÑо изолÑÑÐ¸Ñ Ð¾Ñ Ð´ÑÑгиÑ
иÑÑоÑников пÑоÑла ÑÑпеÑно, пÑоÑеÑÑиÑÑйÑе ÑвойÑÑво crossOriginIsolated
, доÑÑÑпное Ð´Ð»Ñ ÐºÐ¾Ð½ÑекÑÑов окна и воÑкеÑа:
const myWorker = new Worker("worker.js");
if (crossOriginIsolated) {
const buffer = new SharedArrayBuffer(16);
myWorker.postMessage(buffer);
} else {
const buffer = new ArrayBuffer(16);
myWorker.postMessage(buffer);
}
СпеÑиÑикаÑии СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами СмоÑÑиÑе Ñакже
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4