Spec-Zone.ru › Web APIs

WorkletSharedStorage

Экспериментально: Это экспериментальная технология
Перед использованием в производстве внимательно изучите таблицу совместимости браузеров.

Интерфейс WorkletSharedStorage API общего хранилища представляет общее хранилище для определенного источника в контексте работы.

На него можно получить доступ через SharedStorageWorkletGlobalScope.sharedStorage.

Свойства экземпляра

context Экспериментально Нестандартно

Содержит контекстные данные, переданные в работу общего хранилища из связанного контекста просмотра через метод FencedFrameConfig.setSharedStorageContext().

Методы экземпляра

WorkletSharedStorage наследует свойства от своего родительского интерфейса, SharedStorage.

get() Экспериментально

Извлекает значение из общего хранилища.

length() Экспериментально

Возвращает количество записей, хранящихся в настоящее время в общем хранилище для текущего источника.

remainingBudget() Экспериментально

Возвращает оставшийся бюджет навигации для текущего источника.

WorkletSharedStorage также включает следующие методы, так как у него определен асинхронный итератор:

entries() Экспериментально

Возвращает новый асинхронный итератор для пар ключ-значение перечисляемых свойств экземпляра объекта WorkletSharedStorage.

keys() Экспериментально

Возвращает новый асинхронный итератор, содержащий ключи для каждого элемента в экземпляре объекта WorkletSharedStorage.

WorkletSharedStorage[Symbol.asyncIterator]() Экспериментально

Возвращает функцию entries() по умолчанию.

Примеры

Передача контекстных данных через setSharedStorageContext()

Вы можете использовать API частной агрегации, чтобы создавать отчеты, объединяющие данные на уровне событий внутри фреймов с контекстными данными из документа-встраивающего элемента. setSharedStorageContext() можно использовать для передачи контекстных данных от встраивающего элемента к работетам общего хранилища, инициированным API защищенной аудитории.

В этом примере мы храним данные как из страницы-встраивающей, так и из фрейма, используя общее хранилище.

На странице-встраивающей мы устанавливаем имитационный идентификатор события как контекст общего хранилища с помощью setSharedStorageContext():

const frameConfig = await navigator.runAdAuction({ resolveToConfig: true });

// Data from the embedder that you want to pass to the shared storage worklet
frameConfig.setSharedStorageContext("some-event-id");

const frame = document.createElement("fencedframe");
frame.config = frameConfig;

Внутри фрейма, после добавления модуля работы с window.sharedStorage.worklet.addModule(), мы отправляем данные уровня события в модуль работы общего хранилища с помощью window.sharedStorage.run() (это не связано с контекстными данными из встраивающего документа):

const frameData = {
  // Data available only inside the fenced frame
};

await window.sharedStorage.worklet.addModule("reporting-worklet.js");

await window.sharedStorage.run("send-report", {
  data: {
    frameData,
  },
});

В работете reporting-worklet.js мы считываем идентификатор события документа-встраивающего элемента из sharedStorage.context и данные уровня фрейма из объекта данных. Затем мы сообщаем об этих данных через частную агрегацию:

class ReportingOperation {
  convertEventIdToBucket(eventId) { ... }
  convertEventPayloadToValue(info) { ... }

  async run(data) {
    // Data from the embedder
    const eventId = sharedStorage.context;

    // Data from the fenced frame
    const eventPayload = data.frameData;

    privateAggregation.sendHistogramReport({
      bucket: convertEventIdToBucket(eventId),
      value: convertEventPayloadToValue(eventPayload)
    });
  }
}

register('send-report', ReportingOperation);

Спецификации

Спецификация не найдена

Данные спецификации для api.WorkletSharedStorage не найдены.
Проверьте наличие проблем на этой странице или внесите отсутствующую spec_url в mdn/browser-compat-data. Также убедитесь, что спецификация включена в w3c/browser-specs.

Совместимость браузеров

См. также

  • API общего хранилища

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/WorkletSharedStorage

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API