SharedStorageSelectURLOperation
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Die SharedStorageSelectURLOperation
-Schnittstelle der Shared Storage API repräsentiert eine URL Auswahl-Ausgabe-Gate-Operation.
Instanzmethoden
run()
Experimentell-
Definiert die Struktur, der die
run()
-Methode innerhalb einer URL Auswahl-Ausgabe-Gate-Operation entsprechen sollte.
Beispiele
In diesem Beispiel wird eine Klasse namens SelectURLOperation
in einem Worklet definiert und unter Verwendung von SharedStorageWorkletGlobalScope.register()
mit dem Namen ab-testing
registriert. SharedStorageSelectURLOperation
definiert die Struktur, der diese Klasse entsprechen muss, und legt im Wesentlichen die Parameter fest, die für die run()
-Methode erforderlich sind. Abgesehen von dieser Anforderung kann die Funktionalität der Klasse flexibel definiert werden.
// 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);
Hinweis:
Es ist möglich, mehrere Operationen im gleichen Shared-Storage-Worklet-Modulskript mit verschiedenen Namen zu definieren und zu registrieren; siehe SharedStorageOperation
für ein Beispiel.
Im Hauptbrowserkontext wird die ab-testing
-Operation über die WindowSharedStorage.selectURL()
-Methode aufgerufen:
// 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();
Weitere Details zu diesem Beispiel und Links zu anderen Beispielen finden Sie auf der Shared Storage API-Startseite.
Spezifikationen
Specification |
---|
Shared Storage API # sharedstorageselecturloperation |
Browser-Kompatibilität
BCD tables only load in the browser