WorkletSharedStorage
Экспериментально: Это экспериментальная технология
Перед использованием в производстве внимательно изучите таблицу совместимости браузеров.
Интерфейс WorkletSharedStorage API общего хранилища представляет общее хранилище для определенного источника в контексте работы.
На него можно получить доступ через SharedStorageWorkletGlobalScope.sharedStorage.
Свойства экземпляра
-
contextЭкспериментально Нестандартно -
Содержит контекстные данные, переданные в работу общего хранилища из связанного контекста просмотра через метод
FencedFrameConfig.setSharedStorageContext().
Методы экземпляра
WorkletSharedStorage наследует свойства от своего родительского интерфейса, SharedStorage.
-
get()Экспериментально -
Извлекает значение из общего хранилища.
-
length()Экспериментально -
Возвращает количество записей, хранящихся в настоящее время в общем хранилище для текущего источника.
-
remainingBudget()Экспериментально -
Возвращает оставшийся бюджет навигации для текущего источника.
WorkletSharedStorage также включает следующие методы, так как у него определен асинхронный итератор:
-
entries()Экспериментально -
Возвращает новый асинхронный итератор для пар ключ-значение перечисляемых свойств экземпляра объекта
WorkletSharedStorage. -
keys()Экспериментально -
Возвращает новый асинхронный итератор, содержащий ключи для каждого элемента в экземпляре объекта
WorkletSharedStorage. -
Возвращает функцию
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.
Совместимость браузеров
См. также
© 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