SharedStorageSelectURLOperation
Экспериментально: Это экспериментальная технология
Перед использованием в производстве внимательно проверьте таблицу совместимости с браузерами.
Интерфейс SharedStorageSelectURLOperation API общего хранилища представляет собой операцию выбора URL.
Методы экземпляра
-
run()Экспериментально -
Определяет структуру, которой должен соответствовать метод
run()внутри операции выбора URL.
Примеры
В этом примере класс SelectURLOperation определен в модуле worklet и зарегистрирован с помощью SharedStorageWorkletGlobalScope.register() под именем ab-testing. SharedStorageSelectURLOperation определяет структуру, которой должен соответствовать этот класс, по существу определяя параметры, необходимые для метода run(). Помимо этого требования, функциональность класса может быть определена гибко.
// ab-testing-worklet.js
class SelectURLOperation {
async run(urls, data) {
// Read the user's experiment group from Shared Storage
const experimentGroup = await this.sharedStorage.get("ab-testing-group");
// Return the group number
return experimentGroup;
}
}
// Register the operation
register("ab-testing", SelectURLOperation);
Примечание: Можно определить и зарегистрировать несколько операций в одном модуле сценария общего хранилища worklet с различными именами; см. SharedStorageOperation для примера.
В основном контексте просмотра операция ab-testing вызывается с помощью метода WindowSharedStorage.selectURL():
// Randomly assigns a user to a group 0 or 1
function getExperimentGroup() {
return Math.round(Math.random());
}
async function injectContent() {
// Register the Shared Storage worklet
await window.sharedStorage.worklet.addModule("ab-testing-worklet.js");
// Assign user to a random group (0 or 1) and store it in Shared Storage
window.sharedStorage.set("ab-testing-group", getExperimentGroup(), {
ignoreIfPresent: true,
});
// Run the URL selection operation
const fencedFrameConfig = await window.sharedStorage.selectURL(
"ab-testing",
[
{ url: `https://your-server.example/content/default-content.html` },
{ url: `https://your-server.example/content/experiment-content-a.html` },
],
{
resolveToConfig: true,
},
);
// Render the chosen URL into a fenced frame
document.getElementById("content-slot").config = fencedFrameConfig;
}
injectContent();
Дополнительные сведения об этом примере и ссылки на другие примеры см. на странице документации API общего хранилища.
Спецификации
Данные спецификации для api.SharedStorageSelectURLOperation не найдены.
Проверьте наличие проблем на этой странице или внесите недостающую 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/SharedStorageSelectURLOperation