Hola @Montes28 , hasta donde tengo conocimiento, lo que dices es perfectamente viable.
Yo usaría localStorage , ya que, aunque cierres el navegador, los datos siguen almacenados ahí. Guárdalo todo como JSON. Y cuando recuperes los datos para pasarlos a la base de datos, parséalos a objeto, y todo listo :)
Por último, te faltaría detectar cuándo hay conexión a internet, para guardar los datos en base de datos. He estado leyendo, y navigator.onLine puede ayudarte, pero hay casos en los que devuelve true, cuando realmente no hay conexión a internet (por ejemplo, con una conexión local). Hay una función, que sí que funciona en todos los casos, ya que lo que hace es realizar una petición a un fichero del servidor web, y si devuelve true, es porque te has conectado al servidor, con lo que hay conexión a internet.
Código Javascript
:
Ver originalfunction doesConnectionExist() {
var xhr = new XMLHttpRequest();
var file = "http://www.yoursite.com/somefile.png";
var randomNum = Math.round(Math.random() * 10000);
xhr.open('HEAD', file + "?rand=" + randomNum, false);
try {
xhr.send();
if (xhr.status >= 200 && xhr.status < 304) {
return true;
} else {
return false;
}
} catch (e) {
return false;
}
}
Espero que te sirva.
Saludos!!