IndexedDB callbacks

26/01/2014 - 20:36 von Sascha Hüdepohl | Report spam
Hallo!

Ich gucke mir grade IndexedDB an. In allen Beispielen làuft es immer
etwa wie folgt ab:

var request = indexedDB.open("myobjects", version);
request.onsuccess = function(e) { … };

Für mich sieht das nach einer Race Condition aus. Aber es scheint ja
zuverlàssig zu funktionieren.

Bei Image mache ich es immer so:

var i = new Image();
i.onload = function () { … };
i.src = 'bild.jpg';

Das fühlt sich für mich deutlich besser an.


Hier:
http://www.html5rocks.com/en/tutori...eddb/todo/
geht endlich mal einer darauf ein und schreibt:
»The indexedDB.open method will be called when the current
function exits.«

Was passiert denn da? Mit was für Hexenwerk lasse ich mich denn da ein?
Wenn ich schreibe indexedDB.open() dann wird open nicht ausgeführt?

Bitte entwirrt mich.


Gruß
Sascha
 

Lesen sie die antworten

#1 Thomas PointedEars Lahn
26/01/2014 - 22:49 | Warnen spam
Sascha Hüdepohl wrote:

Ich gucke mir grade IndexedDB an. In allen Beispielen làuft es immer
etwa wie folgt ab:

var request = indexedDB.open("myobjects", version);
request.onsuccess = function(e) { … };

Für mich sieht das nach einer Race Condition aus.



Wie kommst Du darauf?

Aber es scheint ja zuverlàssig zu funktionieren.



RTFM:

,-<https://developer.mozilla.org/en-US...exedDB>
|
| The open request doesn't open the database or start the transaction right
| away. The call to the open() function returns an IDBOpenDBRequest object
| with a result (success) or error value that you handle as an event. Most
| other asynchronous functions in IndexedDB do the same thing - return an
| IDBRequest object with the result or error. The result for the open
| function is an instance of an IDBDatabase.

Vergleiche:

var request = new XMLHttpRequest();
request.open(sVerb, sURI, bAsync);

/* XMLHttpRequest */
request.onreadystatechange = function () {
// …
};

/* XMLHttpRequest2 */
request.onload = function () {
// …
};

request.onerror = function () {
// …
};

request.send(…);

Hier:
http://www.html5rocks.com/en/tutori...eddb/todo/
geht endlich mal einer darauf ein und schreibt:
»The indexedDB.open method will be called when the current
function exits.«



Eine saloppe, wenn auch fhcsale, Umschreibung für obigen Mechanismus.

Was passiert denn da? Mit was für Hexenwerk lasse ich mich denn da ein?
Wenn ich schreibe indexedDB.open() dann wird open nicht ausgeführt?



RTFM, STFW, UTSL. Abgesehen davon:

,-<https://developer.mozilla.org/de/do...exedDB>
|
| This is an experimental technology
| Because this technology's specification has not stabilized, check the
| <compatibility table> for the proper prefixes to use in various browsers.
| Also note that the syntax and behavior of an experimental technology is
| subject to change in future versions of browsers as the spec changes.

Bitte entwirrt mich.



[x] done

PointedEars

Twitter: @PointedEars2
Please do not Cc: me. / Bitte keine Kopien per E-Mail.

Ähnliche fragen