La propriété readyState
, rattachée à l'interface IDBRequest
, est une propriété en lecture seule qui indique l'état de la requête.
Chaque requête démarre avec l'état pending
(c'est-à-dire en attente). Cet état vaut ensuite done
(fini) lorsque la requête est terminée (en cas de réussite de l'opération comme en cas d'échec).
Note :
Cette fonctionnalité est disponible via les Web Workers.Syntaxe
var currentReadyState = request.readyState;
Valeur
La valeur IDBRequestReadyState
de la requête, qui peut être l'un de deux valeurs. pending
lorsque la requête est en attente, done
lorsque celle-ci est finie.
Exemples
Dans l'exemple qui suit, on effectue une requête sur un enregistrement avec un titre donné et on recupère l'enregistrement associé grâce au gestionnaire d'évènement onsuccess
à partir du magasin d'objets IDBObjectStore
. Ensuite, on met à jour une des propriétés de cet enregistrement et on replace cet objet mis à jour dans le magasin d'objets via une autre requête. La valeur de la propriété readyState
pour la deuxième requête est affichée dans la console. Pour consulter un exemple fonctionnel complet, vous pouvez vous référer à notre appliction To-do Notifications (cf. également l'exemple live).
var title = "Walk dog";
// On ouvre une transaction
var objectStore = db.transaction(['toDoList'], "readwrite").objectStore('toDoList');
// On récupère l'enregistrement avec le titre souhaité
var objectStoreTitleRequest = objectStore.get(title);
objectStoreTitleRequest.onsuccess = function() {
// On récupère les données du résultat de la requête
var data = objectStoreTitleRequest.result;
// On met à jour la propriété notified de l'objet
// avec la valeur "yes"
data.notified = "yes";
// Ensuite, on crée une autre requête pour insérer
// l'enregistrement dans la base de données
var updateTitleRequest = objectStore.put(data);
// On affiche l'état de la requête dans la console
console.log("La valeur de readyState est " + updateTitlerequest.readyState);
// Lorsque cette deuxième requête est appliquée,
// on exécute la fonction displayData() afin d'afficher
// les données à jour
updateTitleRequest.onsuccess = function() {
displayData();
};
};
Spécifications
Spécification | État | Commentaires |
---|---|---|
Indexed Database API 2.0 La définition de 'readyState' dans cette spécification. |
Recommendation | |
Indexed Database API 2.0 La définition de 'readyState' dans cette spécification. |
Recommendation |
Compatibilité des navigateurs
Fonctionnalité | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|---|
Support simple | 23webkit 24 (sans préfixe) |
(Oui) | 10 moz 16.0 (16.0) |
10, partial | 15 | 7.1 |
Disponible dans les web workers | (Oui) | ? | 37.0 (37.0) | ? | (Oui) | ? |
Fonctionnalité | Android | Webview Android | Edge | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile | Chrome pour Android |
---|---|---|---|---|---|---|---|---|
Support simple | 4.4 | (Oui) | (Oui) | 22.0 (22.0) | 10 | 22 | 8 | (Oui) |
Disponible dans les web workers | (Oui) | (Oui) | ? | 37.0 (37.0) | ? | (Oui) | ? | (Oui) |
Voir aussi
- Manipuler IndexedDB
- Démarrer des transactions :
IDBDatabase
- Manipuler des transactions :
IDBTransaction
- Définir un intervalle de clés :
IDBKeyRange
- Récupérer des données et les modifier :
IDBObjectStore
- Manipuler des curseurs :
IDBCursor
- Exemple de référence pour IndexedDB : To-do Notifications