diff options
author | MDN <actions@users.noreply.github.com> | 2021-06-15 00:35:40 +0000 |
---|---|---|
committer | MDN <actions@users.noreply.github.com> | 2021-06-15 00:35:40 +0000 |
commit | 522984283b56b68582d606c76e4ca98c0baf9451 (patch) | |
tree | 0bf1a6328efd2bf74b118ff823b5208de78dec0b /files/de/orphaned | |
parent | ee3bbc7c983772815b6168c0c146fabbf1536105 (diff) | |
download | translated-content-522984283b56b68582d606c76e4ca98c0baf9451.tar.gz translated-content-522984283b56b68582d606c76e4ca98c0baf9451.tar.bz2 translated-content-522984283b56b68582d606c76e4ca98c0baf9451.zip |
[CRON] sync translated content
Diffstat (limited to 'files/de/orphaned')
-rw-r--r-- | files/de/orphaned/web/api/indexeddb_api/basic_concepts_behind_indexeddb/index.html | 195 | ||||
-rw-r--r-- | files/de/orphaned/web/javascript/reference/errors/typed_array_invalid_arguments/index.html | 78 |
2 files changed, 273 insertions, 0 deletions
diff --git a/files/de/orphaned/web/api/indexeddb_api/basic_concepts_behind_indexeddb/index.html b/files/de/orphaned/web/api/indexeddb_api/basic_concepts_behind_indexeddb/index.html new file mode 100644 index 0000000000..ec07174c23 --- /dev/null +++ b/files/de/orphaned/web/api/indexeddb_api/basic_concepts_behind_indexeddb/index.html @@ -0,0 +1,195 @@ +--- +title: Grundkonzepte +slug: orphaned/Web/API/IndexedDB_API/Basic_Concepts_Behind_IndexedDB +translation_of: Web/API/IndexedDB_API/Basic_Concepts_Behind_IndexedDB +original_slug: Web/API/IndexedDB_API/Basic_Concepts_Behind_IndexedDB +--- +<p><strong>IndexedDB</strong> ermöglicht es Ihnen Daten innerhalb des Browsers eines Benutzers permanent abzulegen. Weil es Sie Webanwendungen mit funktionsreichen Abfragemöglichkeiten erstellen lässt, können diese Anwendungen sowohl online als auch offline funktionieren. IndexedDB ist geeignet für Anwendungen, die eine große Menge an Daten speichern (z.B. ein Katalog von DVDs in einer Videothek) und Anwendungen, die keine durchgehende Internetverbindung benötigen um zu funktionieren (z.B. E-Mail-Clients, To-Do-Listen oder Notizen).</p> +<h2 id="Über_dieses_Dokument">Über dieses Dokument</h2> +<p>Diese Einführung bespricht wesentliche Konzepte und Fachbegriffe in IndexedDB. Sie liefert Ihnen einen Gesamtüberblick und führt Sie in die Schlüsselkonzepte ein. Um mehr über die Begrifflichkeiten von IndexedDB zu erfahren, lesen Sie den Abschnitt <a href="#definitions">Definitionen</a>.</p> +<p>Eine Anleitung zur Verwendung der API finden Sie im Artikel <a href="/de/docs/IndexedDB/Using_IndexedDB" title="Using IndexedDB">Using IndexedDB</a>. Eine Referenzdokumentierung der IndexedDB-API finden Sie im Artikel <a href="/de/docs/IndexedDB" title="IndexedDB">IndexedDB</a> und dessen Unterseiten, welche die Objekttypen dokumentiert, die von IndexedDB verwendet werden, ebenso wie die Methoden von synchronen wie asynchronen APIs.</p> +<h2 id="Überblick_über_IndexedDB">Überblick über IndexedDB</h2> +<p>Mit IndexedDB lassen sich indizierte Objekte mit „Schlüsseln“ ablegen und abrufen. Alle Änderungen an der Datenbank geschehen innerhalb von Transaktionen. Wie die meisten Webspeicher-Lösungen folgt IndexedDB einer <a class="external" href="http://www.w3.org/Security/wiki/Same_Origin_Policy" title="Same Origin Policy">Same-Origin-Policy</a>. Während also auf Daten, die innerhalb einer Domain gespeichert wurden, zugegriffen werden kann, kann nicht domainübergreifend auf Daten zugegriffen werden.</p> +<p>Die API umfasst sowohl eine <a href="/en/IndexedDB#Asynchronous_API" title="https://developer.mozilla.org/en/IndexedDB#Asynchronous_API">asynchrone</a> API als auch eine <a href="/de/docs/IndexedDB#Synchronous_API" title="Synchronous API">synchrone</a> API. Die asynchrone API kann für die meisten Fälle verwendet werden, auch für <a href="/de/docs/Web/Guide/Performance/Using_web_workers" title="Using web workers">WebWorkers</a>, während die synchrone API nur für den Gebrauch durch WebWorkers gedacht ist. Momentan wird die synchrone API von keinem der großen Browser unterstützt. Aber selbst wenn synchrone APIs unterstützt wären, würden Sie eher die asynchrone API verwenden, wenn Sie mit IndexedDB arbeiten.</p> +<p>IndexedDB ist eine Alternative zur WebSQL-Datenbank, welche vom W3C am 18. November 2010 als veraltet erklärt wurde. Während sowohl IndexedDB als auch WebSQL Lösungen zur Speicherung von Daten bieten, bieten sie nicht dieselben Funktionalitäten. WebSQL-Datenbank ist ein relationales Datenbankanfragesystem, IndexedDB hingegen ist ein indiziertes Tabellensystem.</p> +<h2 id="concepts" name="concepts">Wichtige Konzepte</h2> +<p>Wenn Sie die Arbeit mit anderen Datenbanksystemen gewohnt sind kann die Arbeit mit IndexedDB am Anfang ungewohnt erscheinen. Behalten Sie deshalb folgende wichtige Konzepte im Hinterkopf:</p> +<ul> + <li> + <p><strong>IndexedDB-Datenbanken speichern Schlüssel-Wert-Paare.</strong> Die Werte können komplexe strukturierte Objekte sein, und Schlüssel können Eigenschaften dieser Objekte sein. Für eine schnelle Suche oder eine sortierte Aufzählung können Indizes erstellt werden, die irgendeine Eigenschaft der Objekte nutzen.</p> + </li> + <li> + <p><strong>IndexedDB baut auf einem Transaktions-Datenbankmodell auf.</strong> Alles, was Sie in IndexedDB tun, geschieht immer im Kontext einer <a href="#gloss_transaction">Transaktion</a>. Die IndexedDB-API bietet viele Objekte, die Indizes, Tabellen, Positionsmarken usw. repräsentieren, aber jedes einzelne dieser Objekte ist an eine bestimmte Transaktion gebunden. Deshalb können Sie außerhalb einer Transaktion keine Befehle ausführen oder Positionsmarken öffnen.</p> + <p>Transaktionen haben eine wohldefinierte Lebenszeit, deswegen führt der Versuch eine Transaktion zu verwenden, nachdem sie beendet ist, zu Exceptions. Außerdem führen Transaktionen ein Auto-Commit durch und können nicht von Hand committed werden.</p> + <p>Dieses Transaktionsmodell ist besonders nützlich im Hinblick auf was passieren könnte, wenn ein Benutzer zwei Instanzen einer Webapp gleichzeitig in verschiedenen Tabs öffnen würde. Ohne Transaktions-Operationen könnten die Änderungen der beiden Instanzen miteinander in Konflikt geraten. Wenn Sie mit Transaktionen in Datenbanken nicht vertraut sind, lesen Sie den <a class="link-https" href="https://de.wikipedia.org/wiki/Transaktion_(Informatik)" title="https://secure.wikimedia.org/wikipedia/en/wiki/Database_transaction">Wikipedia-Artikel über Transaktionen</a>. Eine weitere Beschreibung finden Sie außerdem im Abschnitt Definitionen bei <a href="#gloss_transaction">Transaktion</a>.</p> + </li> + <li> + <p><strong>Die IndexedDB API ist meistens asynchron.</strong> Die API übergibt Daten nicht, indem sie Werte zurückgibt; stattdessen muss eine Callback-Funktion übergeben werden. Daten werden nicht in der Datenbank <em>abgelegt</em> oder aus ihr mittels synchronen Methoden <em>abgerufen</em>. Stattdessen muss eine Datenbankoperation <em>angefordert</em> werden. DOM-Ereignisse informieren darüber, wenn die Operation beendet ist, und aus der Art des Ereignisses lässt sich erkennen, ob die Operation erfolgreich war oder fehlschlug. Das klingt zunächst etwas kompliziert, aber hier wurden einige vernünfte Maßnahmen umgesetzt. Diese Funktionsweise ist außerdem nicht so anders als die, mit der <a href="/de/docs/DOM/XMLHttpRequest" title="XMLHttpRequest">XMLHttpRequest</a> arbeitet.</p> + </li> + <li> + <p><strong>IndexedDB verwendet Anfragen, überall. </strong>Anfragen sind Objekte, die Erfolgs- oder Fehlschlag-DOM-Ereignisse erhalten, welche zuvor erwähnt wurden. Anfragen können die Eigenschaften <code style="font-size: 14px;">onsuccess</code> und <code style="font-size: 14px;">onerror</code> besitzen. Die Funktionen <code style="font-size: 14px;">addEventListener()</code> und <code style="font-size: 14px;">removeEventListener()</code> können auf ihnen ausgeführt werden. Sie haben außerdem die Eigenschaften <code style="font-size: 14px;">readyState</code>, <code style="font-size: 14px;">result</code>, und <code style="font-size: 14px;">errorCode</code>, die den Status der Anfrage mitteilen. Die Eigenschaft <code style="font-size: 14px;">result</code> ist besonders zauberhaft, da sie viele verschiedene Dinge darstellen kann, abhängig davon, wie die Anfrage erzeugt wurde (z.B. eine Instanz von <code style="font-size: 14px;">IDBCursor</code>, oder der Schlüssel zu einem Wert, den Sie gerade der Datenbank hinzugefügt haben).</p> + </li> + <li> + <p><strong>IndexedDB verwendet DOM-Ereignisse um Sie darüber zu informieren, wenn Ergebnisse verfügbar sind.</strong> DOM-Ereignisse haben immer die Eigenschaft <code style="font-size: 14px;">type</code> (in IndexedDB ist sie in den meisten Fällen auf „<code style="font-size: 14px;">success</code>“ oder „<code style="font-size: 14px;">error</code>“ gesetzt). DOM-Ereignisse haben außerdem eine Eigenschaft <code style="font-size: 14px;">target</code>, die Ihnen verrät in welche Richtung das Ereignis unterwegs ist. In den meisten Fällen ist das <code style="font-size: 14px;">target</code> eines Ereignisses das <code style="font-size: 14px;">IDBRequest</code> Objekt, das als Ergebnis einiger Datenbankoperationen erzeugt wurde. Success events don't bubble up and they can't be canceled. Error events, on the other hand, do bubble, and can be cancelled. Das ist recht wichtig, da Fehlerereignisse jede Transaktion, in der sie auftauchen, zu einem Abort führen, es sei denn diese wird annulliert (cancel).</p> + </li> + <li> + <p><strong>IndexedDB ist objektorientiert.</strong> IndexedDB ist keine relationale Datenbank, die Tabellen mit Sammlungen von Zeilen und Spalten hat. Dieser wichtige und grundlegende Unterschied beeinflusst die Art und Weise, wie Sie Ihre Anwendungen gestalten und bauen.<br> + <br> + In einem traditionellen relationalen Datenspeicher würden Sie Tabellen haben, in denen Sammlungen an Zeilen von Daten und Spalten von <em>named types</em> von Daten gespeichert wären. IndexedDB auf der anderen Seite erfordert es, dass Sie einen Objektspeicher für einen Datentyp erzeugen und einfach JavaScript-Objekte in diesem Speicher ablegen. Jeder Objektspeicher kann eine Sammlung an Indizes beinhalten, die es einfach machen zwischen ihnen zu suchen und zu iterieren. Wenn Sie nicht mit objektorientiertem Managementsystemen von Datenbanken vertraut sind, lesen Sie den <a class="external" href="https://de.wikipedia.org/wiki/Objektdatenbank" title="Objektdatenbank">Wikipedia-Artikel über Objektdatenbanken</a>.</p> + </li> + <li> + <p><strong>IndexedDB verwendet keine </strong><strong>Structured Query Language (<abbr>SQL</abbr>).</strong> Es verwendet Anfragen, die einen Positionsmarker erzeugen, den Sie verwenden um durch die Ergebnismenge zu iterieren. Wenn Sie nicht mit NoSQL-Systemen vertraut sind, lesen Sie den <a class="external" href="https://de.wikipedia.org/wiki/NoSQL" title="NoSQL">Wikipedia-Artikel zu NoSQL</a>.</p> + </li> + <li> + <p><a name="origin"><strong>IndexedDB hält an einer Same-Origin-Policy fest</strong></a>. Eine Herkunft (origin) besteht aus der Domain, dem Anwendungsschichtenprotokoll und dem Port einer URL des Dokuments, auf dem das Skript ausgeführt wird. Jede Herkunft hat ihre eigene entsprechende Untermenge an Datenbanken. Jede Datenbank hat einen Namen, das sie innerhalb einer Herkunft identifiziert.<br> + <br> + Die von IndexedDB auferlegte Sicherheitsbegrenzung hindert Anwendungen daran, auf Daten einer anderen Herkunft zuzugreifen. Während eine Anwendung oder eine Seite, die unter <a class="external" href="http://www.example.com/app/" rel="freelink">http://www.example.com/app/</a> liegt, Daten aus <a class="external" href="http://www.example.com/dir/" rel="freelink">http://www.example.com/dir/</a> abrufen kann, weil sie die gleiche Herkunft haben, kann sie nicht Daten aus <a class="external" href="http://www.example.com:8080/dir/" rel="freelink">http://www.example.com:8080/dir/</a> (anderer Port) oder <a class="link-https" href="https://www.example.com/dir/" rel="freelink">https://www.example.com/dir/</a> (anderes Protokoll) abrufen, weil sie verschiedene Herkünfte haben.</p> + </li> +</ul> +<h2 id="definitions" name="definitions">Definitionen</h2> +<p>Dieser Abschitt definiert und erklärt Begriffe, die in der IndexedDB-API verwendet werden.</p> +<h3 id="database" name="database">Datenbank</h3> +<dl> + <dt> + <a name="gloss_database">Datenbank</a></dt> + <dd> + Ein Aufbewahrungsort für Informationen, typischerweise bestehend aus einem oder mehreren <a href="#gloss_object_store" title="#gloss_object_store"><em>Objektspeichern</em></a>. Jede Datenbank muss folgende Angaben enthalten: + <ul> + <li>Name. Er identifiziert die Datenbank innerhalb einer konkreten Herkunft und verändert sich nicht innerhalb seiner Lebenszeit. Der Name kann aus einem beliebigen String-Wert bestehen (einschließlich dem leeren String).</li> + <li> + <p>Aktuelle <a href="#gloss_version"><em>Version</em></a>. Wenn eine Datenbank zum ersten Mal erstellt wird, nimmt ihre Version den integer-Wert 1 an, wenn nichts anderes angegeben wird. Jede Datenbank kann zu einem Zeitpunkt nur eine Version haben.</p> + </li> + </ul> + </dd> + <dt> + <a name="gloss_object_store">Objektspeicher</a></dt> + <dd> + <p>Das Instrument, mit welchem Daten in einer Datenbank gespeichert werden. Der Objektspeicher hält Eintragungen aus Schlüssel-Wert-Paaren permanent. Eintragungen innerhalb eines Objektspeichers werden entsprechend der <em><a href="#gloss_key">Schlüssel</a></em> in aufsteigender Reihenfolge sortiert.</p> + <p>Jeder Objektspeicher muss einen Namen haben, der innerhalb seiner Datenbank einzigartig ist. Der Objektspeicher kann optional einen <em><a href="#gloss_keygenerator">Schlüsselerzeuger</a></em> und einen <em><a href="#gloss_keypath">Schlüsselpfad</a></em> besitzen. Wenn der Objektspeicher einen Schlüsselpfad hat, verwendet er <em><a href="#gloss_inline_key">in-line keys</a></em>; ansonsten <em><a href="#gloss_outofline_key">out-of-line keys</a></em>.</p> + <p>Eine Referenzdokumentation zu Objektspeichern finden Sie unter <a href="../../../../en/IndexedDB/IDBObjectStore" rel="internal">IDBObjectStore</a> oder <a href="../../../../en/IndexedDB/IDBObjectStoreSync" rel="internal">IDBObjectStoreSync</a>.</p> + </dd> + <dt> + <a name="gloss_version">Version</a></dt> + <dd> + Wenn eine Datenbank zum ersten Mal erstellt wird, ist ihre Versionsnummer die integer-Zahl 1. Jede Datenbank hat zu jedem Zeitpunkt genau eine Versionsnummer; eine Datenbank kann nicht in verschiedenen Versionen gleichzeitig existieren. Die Versionsnummer kann nur geändert werden, indem die Datenbank mit einer größeren Versionsnummer geöffnet wird als mit der aktuellen. Das wird die <em>Transaktion</em> <code>versionchange</code> starten und ein <code>upgradeneeded</code> Ereignis auslösen. Die einzige Stelle, an der das Schema der Datenbank geupdatet werden kann, ist innerhalb des Handlers dieses Ereignisses.<br> + </dd> + <dd> + Anmerkung: Diese Definition beschreibt die <a class="external" href="http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html">aktuellsten Spezifikationen</a>, welche nur in Browsern auf dem neuesten Stand implementiert sind. In alten Browsern ist die mittlerweile veraltete und entfernte Methode <a href="/en-US/docs/IndexedDB/IDBDatabase#setVersion()" title="/en-US/docs/IndexedDB/IDBDatabase#setVersion()"><code>IDBDatabase.setVersion()</code></a> implementiert.</dd> + <dt> + <a name="gloss_database_connection">Datenbankverbindung</a></dt> + <dd> + Eine Operation, die beim Öffnen einer <em><a href="#gloss_database">Datenbank</a></em> erstellt wird. Eine vorgegebene Datenbank kann mehrere Verbindungen gleichzeitig haben.</dd> + <dt> + <a name="gloss_transaction">Transaktion</a></dt> + <dd> + <p>Eine nicht teilbare und dauerhafte Menge an Datenzugriffs- und Datenmodifikationsoperationen auf einer bestimmten Datenbank. Durch Transaktionen können Sie auf die Daten einer Datenbank zugreifen. Tatsächlich muss jeder Lese- oder Schreibvorgang von Daten in einer Transaktion stattfinden.<br> + <br> + Eine Datenbankverbindung kann mit mehreren aktiven Transaktionen gleichzeitig verknüpft sein, so lange schreibende Transaktionen keine überlappenden <a href="#gloss_scope"><em>scopes</em></a> haben. The scope of transactions, which is defined at creation, determines which object stores the transaction can interact with and remains constant for the lifetime of the transaction. So, for example, if a database connection already has a writing transaction with a scope that just covers the <code>flyingMonkey</code> object store, you can start a second transaction with a scope of the <code>unicornCentaur</code> and <code>unicornPegasus</code> object stores. As for reading transactions, you can have several of them—even overlapping ones.</p> + <p>Transactions are expected to be short-lived, so the browser can terminate a transaction that takes too long, in order to free up storage resources that the long-running transaction has locked. You can abort the transaction, which rolls back the changes made to the database in the transaction. And you don't even have to wait for the transaction to start or be active to abort it.</p> + <p>The three modes of transactions are: <code>readwrite</code>, <code>readonly</code>, and <code>versionchange</code>. The only way to create and delete object stores and indexes is by using a <code>versionchange</code> transaction. To learn more about transaction types, see the reference article for <a href="/de/docs/IndexedDB" title="https://developer.mozilla.org/en/IndexedDB">IndexedDB</a>.</p> + <p>Because everything happens within a transaction, it is a very important concept in IndexedDB. To learn more about transactions, especially on how they relate to versioning, see <a href="/en-US/docs/Web/API/IDBTransaction" rel="internal">IDBTransaction</a>, which also has reference documentation. For the documentation on the synchronous API, see <a href="/en-US/docs/Web/API/IDBTransactionSync" rel="internal">IDBTransactionSync</a>.</p> + </dd> + <dt> + <a name="gloss_request">Anfrage</a></dt> + <dd> + Die Operation, mit der Lese- und Schreibvorgänge auf einer Datenbank ausgeführt werden. Jede Anfrage repräsentiert eine Lese- oder Schreiboperation.</dd> + <dt> + <a name="gloss_index">Index</a></dt> + <dd> + <p>Ein Spezialobjektspeicher zum Nachschlagen von Einträgen eines anderen Objektspeichers, bezeichnet als <em>referenzierter Objektspeicher</em>. Der Index ist ein persistenter Schlüssel-Wert-Speicher, wobei der Wert seiner Einträge dem Schlüssel eines Eintrages im referenzierten Objektspeicher entspricht. Die Einträge in einem Index werden automatisch eingepflegt, sobald Einträge im referenzierten Objekt eingefügt, aktualisiert oder entfernt werden. Jeder Eintrag in einem Index kann auf nur einen Eintrag in seinem referenzierten Objektspeicher zeigen, aber mehrere Indizes können auf denselben Objektspeicher verweisen. Wenn der Objektspeicher sich ändert, werden alle Indizes, die auf ihn verweisen, automatisch aktualisiert.</p> + <p>Alternativ können Einträge eines Objektspeichers mithilfe eines <a href="#gloss_key">Schlüssels</a> nachgeschlagen werden.</p> + <p>Um mehr über die Verwendung von Indizes zu erfahren, lesen Sie <a href="/de/docs/IndexedDB/Using_IndexedDB#Using_an_index" title="en/IndexedDB/Using_IndexedDB#Using_an_index">Using IndexedDB</a>. Die Referenzdokumentation zu Indizes finden Sie unter <a href="/de/docs/Web/API/IDBKeyRange" rel="internal">IDBKeyRange</a>.</p> + </dd> +</dl> +<h3 id="key" name="key">Schlüssel und Wert</h3> +<dl> + <dt> + <a name="gloss_key">Schlüssel</a></dt> + <dd> + <p>Ein Datenwert über welchen abgelegte Werte aus dem Objektspeicher sortiert und ausgelesen werden können. Der Objektspeicher kann den Schlüssel aus einer dieser drei Quellen erlangen: Einem <em><a href="#gloss_keygenerator">Schlüsselgenerator</a></em>, einem <em><a href="#gloss_keypath">Schlüsselpfad</a></em> und einem explizit angegebem Wert. Der Schlüssel muss aus einem Datentyp bestehen, der eine Nummer hat, die größer ist als die des Schlüssel vor ihm. Jeder Eintrag in einem Objektspeicher muss einen innerhalb des gleichen Objektspeichers einzigartigen Schlüssel haben, deshalb können nicht mehrere Einträge mit demselben Schlüssel in einem vorgegebenem Objektspeicher vorliegen.<br> + <br> + Ein Schlüssel kann einen der folgenden Typen haben: <a href="/de/docs/Web/JavaScript/Reference/Global_Objects/String" title="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String">string</a>, <a href="/de/docs/Web/JavaScript/Reference/Global_Objects/Date" title="en/JavaScript/Reference/Global Objects/Date">date</a>, float und <a href="/de/docs/Web/JavaScript/Reference/Global_Objects/Array" title="en/JavaScript/Reference/Global Objects/Array">array</a>. Bei Arrays kann der Schlüssel zwischen einem leeren Wert und unendlich liegen. Arrays können wiederum Arrays beinhalten. Es gibt keine Vorschrift nur Schlüssel der Typen string oder integer zu verwenden.</p> + <p>Alternativ können Sie Einträge eines Objektspeichers auch mithilfe eines <em><a href="#gloss_index">Index</a></em> nachschlagen.</p> + </dd> + <dt> + <a name="gloss_keygenerator">Schlüsselgenerator</a></dt> + <dd> + Ein Mechanismus um neue Schlüssel in einer angeordneten Reihenfolge zu erzeugen. Wenn ein Objektspeicher über keinen Schlüsselgenerator verfügt, muss die Anwendung Schlüssel für zu speichernde Einträge zur Verfügung stellen. Generatoren werden nicht zwischen Speichern geteilt. Dies ist mehr ein Detail von Browserimplementierungen, da in der Webentwicklung nicht wirklich Schlüsselgeneratoren erzeugt oder auf sie zugegriffen wird.</dd> + <dt> + <a name="gloss_inline_key">in-line key</a></dt> + <dd> + A key that is stored as part of the stored value. It is found using a <em>key path</em>. An in-line key can be generated using a generator. After the key has been generated, it can then be stored in the value using the key path or it can also be used as a key.</dd> + <dt> + <a name="gloss_outofline_key">out-of-line key</a></dt> + <dd> + A key that is stored separately from the value being stored.</dd> + <dt> + <a name="gloss_keypath">key path</a></dt> + <dd> + Defines where the browser should extract the key from a value in the object store or index. A valid key path can include one of the following: an empty string, a JavaScript identifier, or multiple JavaScript identifiers separated by periods. It cannot include spaces.</dd> + <dt> + <a name="gloss_value">value</a></dt> + <dd> + <p>Each record has a value, which could include anything that can be expressed in JavaScript, including: <a href="/de/docs/Web/JavaScript/Reference/Global_Objects/Boolean" rel="internal" title="en/JavaScript/Reference/Global_Objects/Boolean">boolean</a>, <a href="/de/docs/Web/JavaScript/Reference/Global_Objects/Number" rel="internal" title="en/JavaScript/Reference/Global_Objects/Number">number</a>, <a href="/de/docs/Web/JavaScript/Reference/Global_Objects/String" title="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String">string</a>, <a href="/de/docs/Web/JavaScript/Reference/Global_Objects/Date" title="en/JavaScript/Reference/Global Objects/Date">date</a>, <a href="/de/docs/Web/JavaScript/Reference/Global_Objects/Object" title="en/JavaScript/Reference/Global Objects/Object">object</a>, <a href="/de/docs/Web/JavaScript/Reference/Global_Objects/Array" rel="internal" title="en/JavaScript/Reference/Global_Objects/Array">array</a>, <a href="/de/docs/Web/JavaScript/Reference/Global_Objects/RegExp" rel="internal" title="en/JavaScript/Reference/Global_Objects/RegExp">regexp</a>, <a href="/de/docs/Web/JavaScript/Reference/Global_Objects/undefined" title="en/JavaScript/Reference/Global_Objects/undefined">undefined</a>, and null.</p> + <p>When an object or array is stored, the properties and values in that object or array can also be anything that is a valid value.</p> + <p><a href="/de/docs/Web/API/Blob" title="en/DOM/Blob">Blobs</a> and files can be stored, cf. <a class="external" href="http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html">specification</a>.</p> + </dd> +</dl> +<h3 id="range" name="range">Range and scope</h3> +<dl> + <dt> + <a name="gloss_scope">scope</a></dt> + <dd> + The set of object stores and indexes to which a transaction applies. The scopes of read-only transactions can overlap and execute at the same time. On the other hand, the scopes of writing transactions cannot overlap. You can still start several transactions with the same scope at the same time, but they just queue up and execute one after another.</dd> + <dt> + <a name="gloss_cursor">cursor</a></dt> + <dd> + A mechanism for iterating over multiple records with a <em>key range</em>. The cursor has a source that indicates which index or object store it is iterating. It has a position within the range, and moves in a direction that is increasing or decreasing in the order of record keys. For the reference documentation on cursors, see <a href="/de/docs/Web/API/IDBCursor" rel="internal">IDBCursor</a> or <a href="/de/docs/Web/API/IDBCursorSync" rel="internal">IDBCursorSync</a>.</dd> + <dt> + <a name="gloss_key_range">key range</a></dt> + <dd> + <p>A continuous interval over some data type used for keys. Records can be retrieved from object stores and indexes using keys or a range of keys. You can limit or filter the range using lower and upper bounds. For example, you can iterate over all values of a key between x and y.</p> + <p>For the reference documentation on key range, see <a href="/de/docs/Web/API/IDBKeyRange" rel="internal">IDBKeyRange</a>.</p> + </dd> +</dl> +<h2 id="limitations" name="limitations">Limitations</h2> +<p>IndexedDB is designed to cover most cases that need client-side storage. However, it is not designed for a few cases like the following:</p> +<ul> + <li>Internationalized sorting. Not all languages sort strings in the same way, so internationalized sorting is not supported. While the database can't store data in a specific internationalized order, you can sort the data that you've read out of the database yourself.</li> + <li>Synchronizing. The API is not designed to take care of synchronizing with a server-side database. You have to write code that synchronizes a client-side indexedDB database with a server-side database.</li> + <li>Full text searching. The API<span style="direction: ltr;"> does not have an</span><span style="direction: ltr;"> equivalent of the <code>LIKE</code> operator in SQL. </span></li> +</ul> +<p>In addition, be aware that browsers can wipe out the database, such as in the following conditions:</p> +<ul> + <li>The user requests a wipe out.<br> + Many browsers have settings that let users wipe all data stored for a given website, including cookies, bookmarks, stored passwords, and IndexedDB data.</li> + <li>The browser is in private browsing mode.<br> + Some browsers, have "private browsing" (Firefox) or "incognito" (Chrome) modes. At the end of the session, the browser wipes out the database.</li> + <li>The disk or quota limit has been reached.</li> + <li>The data is corrupt.</li> + <li>An incompatible change is made to the feature.</li> +</ul> +<p>The exact circumstances and browser capabilities change over time, but the general philosophy of the browser vendors is to make the best effort to keep the data when possible.</p> +<div class="warning"> + <p><strong>Warning:</strong> At the moment due to bugs or on purpose it's impossible to open an IndexedDB database from a <a href="/de/docs/Accessibility/An_overview_of_accessible_web_applications_and_widgets" title="/en-US/docs/Accessibility/An_overview_of_accessible_web_applications_and_widgets">Web App</a>. This needs more investigation and then be documented.</p> +</div> +<h2 id="next" name="next">Next step</h2> +<p>OK, so, now with these big concepts under our belts, we can get to more concrete stuff. For a tutorial on how to use the API, see <a href="/de/docs/IndexedDB/Using_IndexedDB" title="en/IndexedDB/IndexedDB primer">Using IndexedDB</a>.</p> +<h2 id="See_also">See also</h2> +<p>Specification</p> +<ul> + <li><a href="http://www.w3.org/TR/IndexedDB/" title="http://www.w3.org/TR/IndexedDB/"><span style="direction: ltr;">Indexed Database API Specification</span></a></li> +</ul> +<p>Reference</p> +<ul> + <li><a href="/de/docs/IndexedDB" title="https://developer.mozilla.org/en/IndexedDB">IndexedDB API Reference</a></li> +</ul> +<p>Tutorials</p> +<ul> + <li><a href="/de/docs/IndexedDB/Using_IndexedDB" title="en/IndexedDB/IndexedDB primer">Using IndexedDB</a></li> + <li><a class="external" href="http://www.html5rocks.com/tutorials/indexeddb/todo/" title="http://www.html5rocks.com/tutorials/indexeddb/todo/">A simple TODO list using HTML5 IndexedDB</a><span class="external">. </span><span class="external"> {{ Note("This example uses an old version of the spec and does not work on up-to-date browsers - it still uses the removed <code>setVersion()</code> method.") }}</span></li> +</ul> +<p>Related article</p> +<ul> + <li><a class="external" href="http://msdn.microsoft.com/de-de/magazine/gg679063%28en-us%29.aspx" title="http://msdn.microsoft.com/en-us/scriptjunkie/gg679063.aspx">IndexedDB — The Store in Your Browser</a></li> +</ul> diff --git a/files/de/orphaned/web/javascript/reference/errors/typed_array_invalid_arguments/index.html b/files/de/orphaned/web/javascript/reference/errors/typed_array_invalid_arguments/index.html new file mode 100644 index 0000000000..7d379b7a5b --- /dev/null +++ b/files/de/orphaned/web/javascript/reference/errors/typed_array_invalid_arguments/index.html @@ -0,0 +1,78 @@ +--- +title: 'TypeError: invalid arguments' +slug: orphaned/Web/JavaScript/Reference/Errors/Typed_array_invalid_arguments +tags: + - Error + - Errors + - JavaScript + - TypeError +translation_of: Web/JavaScript/Reference/Errors/Typed_array_invalid_arguments +original_slug: Web/JavaScript/Reference/Errors/Typed_array_invalid_arguments +--- +<div>{{jsSidebar("Errors")}}</div> + +<h2 id="Fehlermeldung">Fehlermeldung</h2> + +<pre class="syntaxbox">TypeError: invalid arguments (Firefox)</pre> + +<h2 id="Fehlertyp">Fehlertyp</h2> + +<p>{{jsxref("TypeError")}}</p> + +<h2 id="Was_ist_falsch_gelaufen">Was ist falsch gelaufen?</h2> + +<p>Der <a href="/de/docs/Web/JavaScript/Typed_arrays">Typed Array</a> Konstruktor erwartet entweder</p> + +<ul> + <li>eine Länge,</li> + <li>ein anderes Typed Array,</li> + <li>Array ähnliche Objete,</li> + <li>iterierbare Objekte oder</li> + <li>ein {{jsxref("ArrayBuffer")}} Objekt,</li> +</ul> + +<p>um ein neues Typed Array zu erstelltn. Andere Argumente im Konstruktor erstellen kein valides Typed Array.</p> + +<h2 id="Beispiele">Beispiele</h2> + +<p>Typed Arrays, zum Beispiel ein {{jsxref("Uint8Array")}}, können nicht von einem String erstellt werden. <span class="short_text" id="result_box" lang="de"><span>Tatsächlich können String nicht in typisierten Arrays enthalten sein.</span></span></p> + +<pre class="brush: js example-bad">var ta = new Uint8Array("nope"); +// TypeError: invalid arguments +</pre> + +<p>Verschiedene Wege um ein valides {{jsxref("Uint8Array")}} Objekt zu erstellen:</p> + +<pre class="brush: js example-good">// From a length +var uint8 = new Uint8Array(2); +uint8[0] = 42; +console.log(uint8[0]); // 42 +console.log(uint8.length); // 2 +console.log(uint8.BYTES_PER_ELEMENT); // 1 + +// From an array +var arr = new Uint8Array([21,31]); +console.log(arr[1]); // 31 + +// From another TypedArray +var x = new Uint8Array([21, 31]); +var y = new Uint8Array(x); +console.log(y[0]); // 21 + +// From an ArrayBuffer +var buffer = new ArrayBuffer(8); +var z = new Uint8Array(buffer, 1, 4); + +// From an iterable +var iterable = function*(){ yield* [1,2,3]; }(); +var uint8 = new Uint8Array(iterable); +// Uint8Array[1, 2, 3] +</pre> + +<h2 id="Siehe_auch">Siehe auch</h2> + +<ul> + <li><a href="/de/docs/Web/JavaScript/Typed_arrays">Typed arrays</a></li> + <li>{{jsxref("ArrayBuffer")}}</li> + <li>{{jsxref("Uint8Array")}}</li> +</ul> |