2012-02-22 3 views
2

Je joue avec l'API IndexedDB de la spécification html5 dans Firefox et Chrome.Événement IndexedDB onversionchange non déclenché dans Chrome

Il ya quelque chose qui ne fonctionne pas comme prévu et que je veux partager ici parce que je ne sais pas si c'est de ma faute ou un bug du navigateur.

Selon le API, il y a un événement appelé onversionchange qui est déclenché lorsque vous ouvrez une connexion à une base de données locale et le numéro de version utilisée est supérieure à la base de données un. Mon problème est que cet événement est déclenché dans Firefox mais pas dans Chrome.

Quelques exemples de code à essayer plusieurs modes:

var db; 
var DB_VERSION = 5; 
var openRequest = iDb.open("test_db", DB_VERSION, function() { 
    console.log("This is the place where I can change db structure"); 
}); 
openRequest.onSuccess = function(event) { 
    db = openRequest.result; 
}; 
openRequest.onversionchange = function(event) { 
    console.log("This is the place where I can change db structure"); 
}; 
openRequest.onupgradeneeded = function(event) { 
    console.log("This is the place where I can change db structure"); 
}; 

événement onversionchage n'est pas tiré même quand je change le numéro de version.

MISE À JOUR Comme ebidel a répondu, Chrome implementatio ne suit pas la spécification actuellement si, afin d'avoir un code client croix broswser, nous devons gérer deux situations: onversionchange événement et base de données . version comparaison manuelle.

Voici un couple sur des liens avec exemple de code: Chromium google group et HTML5 Rocks!

Répondre

3

la mise en œuvre IndexedDB Chrome est basé sur une ancienne version de la spécification qui utilise le plus setVersion appel plutôt que onversionchange/onupgradeneeded. S'il vous plaît commencer ce numéro: http://crbug.com/108223

Questions connexes