Utilizando cookies para guardar el estado de un árbol JSTree

Utilizando cookies para guardar el estado de un árbol JSTree

jstree ejemplo apple mac osY seguimos lidiando con JSTree, un potente plugin gratuito basado en jQuery que sirve para desplegar estructuras en árbol muy personalizables. Hace unas semanas explicábamos los primeros pasos configurando JSTree, ya que cuenta con una documentación oficial tan escueta que realmente no ayuda mucho.

Nodos que persisten más allá de la sesión

Os indico en pocas líneas cómo implementar persistencia en el árbol. Es decir, cómo almacenar, guardar o recordar el estado de los nodos (abierto, cerrado, cargado, seleccionado…) para que permanezca la próxima vez que accedamos al sitio web y el usuario no tenga que andar desplegando las ramas cada vez que cargue la página.

THE COOKIE MONSTER

La clave es el uso de cookies y para ello lo más importante es descargar el plugin jQuery.cookie desde aquí y cargarlo junto al resto de JavaScript de vuestra página. Este plugin se ocupa de todo lo relacionado con el tratamiento de las cookies, por lo que no tenemos que preocuparnos de programarlas.

A continuación activamos el plugin “cookies” de jsTree  (¡ojo!, no confundir con el jQuery.cookie)  en la configuración del árbol y que permite almacenar en una cookie las variables correspondientes al “state”:

[javascript]
$(‘.miarbol’).jstree({
plugins: ["html_data", "ui", "cookies"]
[/javascript]

Este plugin está implementado en el archivo jquery.jstree.js con un parámetro auto_save a true por defecto, por lo que a priori no hay que tocar nada más. Las cookies que se almacenarán y recuperarán automáticamente son las siguientes:

[javascript]

save_opened : "jstree_open",
save_selected : "jstree_select",
save_loaded : "jstree_load"

[/javascript]

…y que podréis modificar a vuestro antojo retocando la configuración del plugin en el árbol (evitad modificar la librería directamente). Si tenéis dudas sobre este apartado preguntadme en los comentarios.

TROUBLESHOOTING PREVENTIVO

Si no os funciona lo más probable es que no estéis definiendo ninguna “id” correcta para cada nodo, que además de existir no debe contener caracteres extraños como por ejemplo espacios.

Previous Definición de máquina de Turing y ejemplos
Next Qué es y cómo funciona Symfony2: Conceptos claves

About author

Angel
Angel 174 posts

Siempre quise ser inventor y escritor: por lo primero me hice ingeniero, y en cuanto a lo segundo, escribo aquí de vez en cuando sobre telecomunicaciones y tecnología. Me gustan los robots, los perretes y los libros (analógicos).

View all posts by this author →

You might also like

Tutorial 1Comments

[WordPress] Fatal error: Allowed memory size of 73400320 bytes exhausted

A.K.A. White Screen of Death. Si ya has trabajado con WordPress estoy seguro de que lo anterior te resultará familiar. Horriblemente familiar. Si no has trabajado aún con WordPress pero

Desarrollo 0 Comments

12 trucos para diseñar el Formulario Perfecto

El formulario es un elemento fundamental para generar una buena conversión. De su buen diseño depende que un usuario no lo abandone antes de tiempo o que ni siquiera se

Desarrollo 0 Comments

Los lenguajes de programación más utilizados en 2015

Si eres programador, tienes que estar atento siempre a las últimas tendencias y cuáles son los lenguajes de programación más utilizados. En un mundo tan cambiante como el tecnológico, los

1 Comment

  1. ginespc
    junio 12, 19:38 Reply

    buenas, ¿sabrias como se podria hacer para que las cookies de jstree solamente durasen por ejemplo 40 minutos?

    Un saludo, muchas gracias

Leave a Reply