Unidad 24. AJAX y Spry Framework (XII)

24.10. Eliminar filas repetidas

Existe un último método para despreciar registros que se basa en la eliminación del dataset de los registros repetidos.

Para ello utilizaremos el método distinct.

De nuevo, nos encontramos con que este método es destructivo, por lo que si lo ejecutas y eliminas las filas repetidas no podrás volver a recuperarlas a no ser que cargues de nuevo el archivo XML.

 

Puedes utilizarlo de dos formas, dinámicamente (ligado a un comportamiento) o al crear el dataset.

 

Para utilizar este método con un comportamiento simplemente deberás escribir lo siguiente:

<a href="#" onclick="miDataSet.distinct();">Eliminar filas repetidas</a>

Al producirse el evento los registros repetidos se eliminan del dataset y no vuelven a aparecer.

 

Para cargar un dataset sin filas repetidas deberás indicarlo en la declaración del objeto dataset de este modo:

<script type="text/javascript">

  var miDataSet = new Spry.Data.XMLDataSet("archivo.xml", "listado/elemento", {distinctOnLoad: true});

</script>

Sencillo, ¿verdad?

24.11. Actualizar la carga de un archivo XML

Hemos visto que una vez descargado el archivo XML, nuestras páginas trabajarán con el dataset cargado en modo cliente sin tener que volver al servidor para cargar los datos cada vez.

Es posible que en determinados momentos nos sea necesario mostrar el contenido de un archivo XML que contiene información que se actualiza en periodos muy breves.

A veces es interesante mostrar la información completamente actualizada al segundo.

Para ello deberemos utilizar el método loadInterval. Este método obliga a Spry a recargar el archivo XML en el intervalo de tiempo que indiquemos.

La forma en la que deberemos declararlo será la siguiente:

<script type="text/javascript"> 

  var miDataSet = new Spry.Data.XMLDataSet("archivo.xml", "listado/elemento", 

                                                {useCache:  false, loadInterval: 30000});

</script>

Como puedes ver en el ejemplo, establecemos que el intervalo de recarga sea de 30000 milisegundos (es decir, 30 segundos).

También hemos añadido la propiedad useCache:false para evitar que el archivo XML se almacene en la caché de la máquina y así obligarle a tener que volver a hacer una petición para volver a leer los datos del archivo en su situación actual.

 

Este método también se puede utilizar ligado a un comportamiento, deberemos utilizar el método startLoadInterval del siguiente modo:

<a href="#" onclick="miDataSet.startLoadInterval(30000);">Recargar XML</a>

Aunque de este modo también es recomendale mantener el uso de la propiedad useCache para evitar que se tome la versión almacenada en caché.

 

El método stopLoadInterval detiene la recarga del archivo XML y deja el último que se cargó como archivo de trabajo.

La forma de utilizarlo es igual al anterior:

<a href="#" onclick="miDataSet.stopLoadInterval();">Dejar de recargar XML</a>

Pág. 24.12

Atrás  Inicio  Adelante