Dojo Toolkit

Mientras más lo uso, más me gusta (aunque tiene sus cosillas). Entre todos los frameworks que he usado, me quedo con el toolkit dojo (sin menospreciar a los otros). En la nueva versión, muchas mejoras y nuevas funcionalidades (como el dojo.storage) que siguen haciéndolo más potente, sin hacerlo más pesado ni más complicado. Definitivamente me gusta como han resuelto muchas de las “debilidades” de Javascript, como puede ser la de los “includes”.

Os pongo un ejemplo de uso en una aplicación que estoy desarrollando.
Imaginemos el caso, muy común, de un formulario en el que se da a elegir al usuario una provincia y una localidad de la misma. Una vez que el usuario elige la provincia, javascript se encarga de completar la siguiente lista con las localidades que tiene la provincia selecionada.

Bien, imaginemos de nuevo que tenemos un servidor que al llamarlo como http://miservidor.com/poblaciones.php?id_provincia=29, nos devuelve un XML tal que este:

<poblaciones>
<item id="24343">Albaicin</item>
<item id="24344">Alcaucin</item>
<item id="24345">Alcorrin</item>
.
.
.
</poblaciones>

Este XML nos servirá para rellenar el control <SELECT> con las poblaciones de la provincia seleccionada. Este sería el código HTML de las listas:

<form ...>
  <select name="provincia" id="provincia" onsubmit="listaPoblaciones(this.value)">
     ...
    <option value="11">Cadiz</option>
    <option value="29">Malaga</option>
     ...
  </select>

  <select name="poblacion" id="poblacion">
      <option>Por favor, elige la provincia</option>
  </select>
</form>

En la primera lista – la de las provincias – hemos capturado el evento “onchange” para llamar a nuestra función javascript que se encargará de realizar todas las operaciones necesarias para llenar la lista de las poblaciones.

Esta sería una posible implementación de esta funcion javascript:

<script type="text/javascript" src="dojo/dojo.js"></script>
<script type="text/javascript">
dojo.require("dojo.io.*");
dojo.require("dojo.event.*");

function listaPoblaciones (prov)
{
	var feedUrl = 'http://miservidor.com/poblaciones.php?id_provincia=' + prov;
	var lista = 'poblacion';
	
	var bindArgs = {
		url:        feedUrl,
		mimetype:   "text/xml",
		error:      function(type, errObj){},
		load:      function(type, data, evt){
			// hemos recibido el XML correctamente
			
                        // Obtenemos la lista de elementos del XML
			var items = data.getElementsByTagName('item');
			
                        // Obtenemos una referencia a la lista de poblaciones
			var l = document.getElementById(lista);
			if (l){
                                // Borramos todos los elementos que pueda tener la lista...
				while (l.firstChild) {
 					 l.removeChild(l.firstChild);
				}
				// Y la llenamos con los elementos del XML
				for (i = 0; i < items.length; i++)
				{
					var nombre = items[i].firstChild.nodeValue;
					var id = items[i].getAttribute ('id');
					// Creo la entrada de la lista (

Publicado por

manuel

Me dedico al desarrollo de aplicaciones. Principalmente trabajo con XHTML, CSS, Javascript, XML, JSON, PHP, MySQL, Linux/MacOS X y Flash actionscript. Intento siempre trabajar con estándares y simplificar el desarrollo y las aplicaciones finales con el objetivo de orientarlas al usuario (que sean útiles y faciliten el trabajo).

6 comentarios sobre “Dojo Toolkit”

  1. Hola. Estoy comenzando en el tema pero queria saber como es la instalación de Dojo Toolkit. Como se la realiza.
    Me parece una buena herramienta.
    Cualquier ayuda es bien recibida.
    Gracias

  2. Hola Roberto,

    no has de hacer nada especial, simplemente copia la carpeta dojo en el lugar más adecuado del árbol de directorios de tu web.

    Saludos

  3. he empleado dojo en algunas cosas, pero no lo he usado con todo su potencial, debido a que desconozco mucha de como se usan las funciones.
    ¿conoces o tienes una manual? He investigado en el sitio de dojo.. y no están claras muchas cosas…

  4. Hola Enrique,

    como ves este post es bastante viejo, y si sigues el blog, verás que hace mucho tiempo que no hablo de Dojo en él.
    He tenido bastantes problemas con dojo, sobre todo de lentitud y una cierta falta de “simplicidad” en algunas cosas.
    Últimamente estoy usando intensivamente el conjunto de herramientas de Yahoo! que puedes encontrar en http://developer.yahoo.net/yui
    Están maravillosamente documentadas y son muy potentes y ágiles.

  5. Hola Manuel,

    oye una pregunta, ¿ los problemas de lentitud se resolvieron con la herrramienta de Yahoo! ?

    lo que sucede es que desarrollamos una aplicación utilizando el dojo, pero cuando varios usuarios se conectan a la misma, se pone sumamente lenta.

    Agradecería mucho tu opinión al respecto

  6. Hola Celso,

    efectivamente con Yahoo! es todo más rápido y mucho más flexible a la hora de programar ampliaciones o modificaciones.

    Además puedes conseguir un aumento “extra” de velocidad en la primera carga de la aplicación si unes todos los archivos .js que necesitas (usa siempre la version “-min” en la que el codigo está “reducido”) en uno solo y a este le aplicas compresión gzip (con apache o con el ob_gzhandler si usas PHP).

    Te recomiendo también que te instales el plugin de Firefox que ha sacado Yahoo!, que se llama YSlow, ya que te ayudará un montón a reducir el tiempo de carga de las páginas.

    Realmente estoy muy contento con el toolkit de Yahoo!

    Saludos

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *