Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. URIs
  3. Reference
  4. Scheme
  5. blob:

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.

View in EnglishAlways switch to English

blob: URLs

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.

Blob- (oder Objekt-)URLs, URLs mit dem Präfixblob:, ermöglichen die Integration vonBlobs undMediaSources mit anderen APIs, die nur für die Verwendung mit URLs entworfen wurden, wie etwa das<img>-Element. Blob-URLs können auch verwendet werden, um zu navigieren sowie Downloads von lokal generierten Daten auszulösen. Sie sind als opake Bezeichner konzipiert (das heißt, Sie sollten sie nicht manuell schreiben) und sollten mit den FunktionenURL.createObjectURL() undURL.revokeObjectURL() verwaltet werden.

Blob-URLs sind ähnlich wieData-URLs, da beide ermöglichen, im Speicher befindliche Ressourcen als URLs darzustellen; der Unterschied besteht darin, dass Data-URLs Ressourcen in sich selbst einbetten und strikte Größenbeschränkungen haben, während Blob-URLs ein unterstützendesBlob oderMediaSource erfordern und größere Ressourcen darstellen können.

Syntax

url
blob:<origin>/<uuid>
blob:

Das Schema der URL.

<origin>

DerUrsprung des Erstellers dieser URL. Wenn der Ursprung des Erstellers opak ist, dann ist dieser Teil implementierungsdefiniert.

<uuid>

EineUUID.

Nutzungshinweise

Speicherverwaltung

Jedes Mal, wenn SiecreateObjectURL() aufrufen, wird eine neue Objekt-URL erstellt, selbst wenn Sie bereits eine für dasselbe Objekt erstellt haben. Jede davon muss durch Aufruf vonURL.revokeObjectURL() freigegeben werden, wenn Sie sie nicht mehr benötigen. Solange eine Objekt-URL aktiv ist, kann das zugrunde liegende Objekt nicht durch den Garbage Collector entfernt werden und könnte zu Speicherlecks führen.

Browser werden Objekt-URLs automatisch freigeben, wenn das Dokument entladen wird; jedoch sollten Sie, für optimale Leistung und Speichernutzung, wenn es sichere Zeitpunkte gibt, an denen Sie sie explizit entladen können, dies tun.

Dennoch sollten Sie vermeiden, die Objekt-URL zu früh freizugeben. Ein häufiges Anti-Muster ist das folgende:

js
const url = URL.createObjectURL(blob);img.src = url;img.addEventListener("load", () => {  URL.revokeObjectURL(url);});document.body.appendChild(img);

Das sofortige Widerrufen der Blob-URL, nachdem das Bild gerendert wurde, würde das Bild für Benutzerinteraktionen unbrauchbar machen (zum Beispiel, wenn man mit der rechten Maustaste klickt, um das Bild zu speichern oder in einem neuen Tab zu öffnen). Für langlebige Anwendungen sollten Sie Objekt-URLs nur widerrufen, wenn die Ressource für den Benutzer nicht mehr zugänglich ist (zum Beispiel, wenn das Bild aus dem DOM entfernt wird).

Speicherpartitionierung

Der Zugriff auf Ressourcen über Blob-URLs unterliegt denselben Einschränkungen wie alle anderen Speichermethoden, das heißt,Statuspartitionierung. Blob-URLs haben einen zugeordneten Ersteller-Ursprung (der in der URL selbst gespeichert ist) und können nur aus Umgebungen abgerufen werden, in denen der Speicher-Schlüssel mit dem der Erstellungsumgebung übereinstimmt. Blob-URL-Navigierungen unterliegen nicht dieser Einschränkung, obwohl Browser möglicherweise Datenschutzmaßnahmen wienoopener für Cross-Site-Navigierungen zu einer Blob-URL durchsetzen.

Verwendung von Objekt-URLs für Medienstreams

In älteren Versionen der Media Source-Spezifikation erforderte das Anhängen eines Streams an ein<video>-Element das Erstellen einer Objekt-URL für denMediaStream. Dies ist nicht mehr notwendig, und Browser entfernen die Unterstützung dafür.

Warnung:Wenn Sie noch Code haben, der aufcreateObjectURL() angewiesen ist, um Streams an Media-Elemente anzuhängen, müssen Sie Ihren Code aktualisieren, umsrcObject direkt auf denMediaStream einzustellen.

Abrufen mit dem Range-Header

Blob-URLs unterstützen das Abrufen mit demRange-Header, um Teilinhalte anzufordern. Dies ist besonders nützlich beim Arbeiten mit großen Blobs, da es Ihnen ermöglicht, nur die notwendigen Teile des Blobs abzurufen, anstatt den gesamten Inhalt. Für ein Beispiel sieheAbrufen eines Bereichs von einer Blob-URL.

Beispiele

Gültige Blob-URLs

url
blob:https://example.org/40a5fb5a-d56d-4a33-b4e2-0acf6a8e5f64

Erstellen von Blob-URLs

In diesem Beispiel erstellen wir zuerst einBlob von einem<canvas>, erstellen eine Blob-URL dazu und hängen schließlich die URL an ein<img>-Element an.

js
const canvas = document.querySelector("canvas");canvas.toBlob((blob) => {  const img = document.createElement("img");  img.src = URL.createObjectURL(blob);  document.body.appendChild(img);});

Spezifikationen

Specification
File API
# url

Browser-Kompatibilität

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2026 Movatter.jp