¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. Aprender a desarrollar con JavaScript
  3. Almacenamiento remoto: formato XML
Extrait - Aprender a desarrollar con JavaScript Aspectos principales del uso de frameworks (4ª edición)
Extractos del libro
Aprender a desarrollar con JavaScript Aspectos principales del uso de frameworks (4ª edición)
1 opinión
Volver a la página de compra del libro

Almacenamiento remoto: formato XML

Presentación general de la solución

En los dos capítulos anteriores, hemos visto cómo almacenar datos en el puesto cliente, a través de cookies y objetos de Web Storage (sessionStorage y localStorage). 

Estas soluciones son satisfactorias para la persistencia de datos a pequeña escala (grabación de argumentos útiles durante la navegación entre las páginas de un mismo sitio web, almacenamiento de las preferencias de usuario...). También es posible recurrir a objetos de Web Storage para realizar una entrada de datos en modo no conectado, con una sincronización con el servidor cuando se restablece la conexión.

Es preferible la solución de persistencia con un almacenamiento de datos centralizado en un servidor remoto (si es preciso, con un complemento en Web Storage). La aplicación es evidentemente más compleja. Este es el objetivo de este capítulo.

El objetivo, por tanto, va a ser poder acceder a los datos almacenados en un sistema gestor de bases de datos (SGBD) MySQL, con los protocolos HTTP y SOAP, a través de una librería de funciones PHP NuSOAP.

En los dos ejemplos que se van a comentar, se ha hecho una elección arbitraria a nivel del SGBD, MySQL. Para la librería NuSOAP, la observación es la misma. No obstante, la programación es muy genérica y no tendrá dificultades para hacer una aplicación...

Implementación del almacenamiento remoto a través de ejemplos

Se van a presentar dos ejemplos completos de aplicación.

Para estos ejemplos, se utilizará una tabla llamada coches, con tres campos:

  • codigo_coche de cuatro caracteres (código del coche).

  • nombre_coche de 20 caracteres (nombre del coche).

  • velocidad_maxima número en entero (velocidad máxima que puede alcanzar el coche, en un circuito, claro).

En sus propios ejemplos, no podrá utilizar la base de datos que se usa en los ejemplos del libro. El identificador y la contraseña están ocultos en las siguientes reproducciones del código fuente.

Por tanto, tendrá que disponer de un SGBD MySQL al que pueda acceder. La obtención o reserva de un acceso a un servidor de este tipo quedan fuera del marco de este libro.

Por lo tanto, para que pueda comprobar los ejemplos, tendrá que desarrollar una tabla llamada coches en su servidor MySQL e introducir el identificador y la contraseña de conexión en los scripts.

Para facilitar el despliegue, se proporciona un script SQL de creación de la tabla coches. Tendrá que ejecutarlo en la ventana SQL de su interfaz de administración MySQL (PHPMyAdmin, normalmente).

CREATE TABLE coches( 
   codigo_coche CHAR(4), 
   nombre_coche CHAR(20), 
   velocidad_maxima INTEGER 
); 

También se proporciona un conjunto de datos de prueba para la explotación de los ejemplos. Puede ejecutar el siguiente script para rellenar su tabla coches:

INSERT INTO coches (codigo_coche, nombre_coche, 
velocidad_maxima) 
VALUES ("V001", "Porsche 930 Turbo", 290); 
INSERT INTO coches (codigo_coche, nombre_coche, 
velocidad_maxima) 
VALUES ("V002", "Porsche 964 Turbo", 300); 
INSERT INTO coches (codigo_coche, nombre_coche, 
velocidad_maxima) 
VALUES ("V003", "Ferrari 430", 320); 

Los dos scripts SQL, así como todos los scripts de los ejemplos de este libro, se pueden descargar gratuitamente en la página Información.

1. Ejemplo 1: Acceso Ajax sobre BDD MySQL (lista de los coches)

En un primer ejemplo, se recupera la lista de todos los registros de una tabla MySQL llamada coches.

Este primer ejemplo utiliza cuatro elementos principalmente:

  • un script HTML (que contiene las secuencias de código...