Chalalo Land

Tecnologías ASP.NET y un poco Más

Contacto


 Si quierer cooperar, yo feliz, muy agradecido :)

De donde me Visitan?

Locations of visitors to this page

Generic Content

Si te gustaron los articulos, y te animas te estaría muy agradecido!


Recent Posts

Tags

Community

Blogs de MVP

Amigos Geeks

Blogs Imperdibles

GODS

Archives

Email Notifications

Microsoft Gadget + AJAX

Los Gadget para Sidebar de Vista son pequeñas aplicaciones para aumentar la productividad, o por lo menos hacen el intento de esto. Si bien los gadget que vienen por defecto no son herramientas muy muy productivas que digamos, podemos crear nuestros propios gadget que si nos ayuden a visualizar información relevante. Esta información relevante no solo de la propia maquina( en el caso que queramos utilizar la API)

Desarrollar un gadget es bastante sencillo, hace un tiempo subí un screencast indicando como se hace :).

Vemos ahora como crear un gadget para que se comunique con una pagina web mediante Ajax, este ejemplo es básico, pero ustedes extenderlo y crear sus propios gadget.

Esto surgio por la necesidad de crear un gadget que se comunicara con una pagina web, la cual se conectaba a su vez, con un ftp server y devolvía un listado de archivos, la cual era comparada por el gadget con una carpeta local y luego mostraba al usuario si su aplicación estaba actualizada o no.(que enredo!).En este caso , veremos algo mas sencillo.

Supongamos que tenemos una página web que nos devuelve: 

<?xml version="1.0" encoding="utf-8" ?> 
  <Informaciones>
         
<Noticia>HOLAAAA</Noticia>
  
</Informaciones>

 Paso 1 - Creacion de la funcion en el HTML base del gadget que se conectará con la webpage.

function obtNoticia(){
    mensaje.innerHTML =
"Conectando"
    imagen.innerHTML =
"<IMG src='loading2.gif'>";
    noticiaObj = new ActiveXObject("Msxml2.XMLHTTP");
    noticiaObj.open(
"GET", "http://localhost:51669/aspipvg/Default.aspx", true);
    noticiaObj.onreadystatechange =
function() {if (noticiaObj.readyState === 2) {
           
if (noticiaObj.status === 200) { imagen.innerHTML = ""; mensaje.innerText = "";
                  rssXML = rssObj.responseXML;
                 
// leer el XML
                 
 Noticia = rssXML.getElementsByTagName("Noticia");
                 
mensaje.innerText= Noticia[0].firstChild.text;
            }
else {
                  imagen.innerHTML =
"<IMG src='del.gif'>";
                  mensaje.innerText =
"Error...";
    
} else {
       
mensaje.innerText = "Cargando...";
    }
}
noticiaObj.send(
null);
}

Esta claro que mensaje e imagen son etiquetas span, por lo que se pueden modificar con innerHTML o innerText dependiendo del caso.Por  ejemplo la imagen cargando.gif es un gif animado ( los típicos loading.gif que se usan cuando desarrollas usando ajax).

   rssXML = rssObj.responseXML : Lo utilizamos para capturar el XML de la página que se llamó asincronamente.

Luego leemos la noticia y asignamos al span:

 Noticia = rssXML.getElementsByTagName("Noticia");
 
mensaje.innerText= Noticia[0].firstChild.text;

Esta función la puedes llamar desde el onLoad del tag body

<body style="color: white; font-weight: bold; margin-left: 15px;" onload="obtNoticia();">

Interesante también es habilitar al gadget para que cada cierto tiempo busque actualizaciones en la webpage. Una manera fácil de hacerlo es utilizando la función de BLOCKED SCRIPT

   setInterval(obtNoticia,1000 * 10);

Con esta función decimos que obtNoticia sea llamada cada 10 segundos. También puede hacer un link dentro de tu gadget que llame a la función obtNoticia de tal manera de dar al usuario la posibilidad de hacer el refresh.

No queda nada de mal Big Smile

Espero que les sirva,
Saludos,
Gonzalo

 

 

 

Posted: 14/7/2007 16:30 por Gonzalo Perez | con 10 comment(s)
Archivado en: ,
Comparte este post:

Comentarios

M@rTIn's ha opinado:

Buena Buena Master!

# July 16, 2007 7:27 AM

Dnl ha opinado:

Wenaaaaaaa    ta  bueno esto  hayq ue  puro  hacer uno ahorita  jajaja

suludos Dnl desde  santiago

# August 20, 2007 7:25 AM

Javier Cabanillas ha opinado:

Hola como estas? estoy empezando a desarrollar gadget's, ya tengo la funcionalidad terminada, es uno sencillo con html y jscript.

El problema que tengo es que sale muy chikito cuando lo agrego, es decir, aparece muy a la derecha del sidebar, y cuando lo arrastro hacia el medio de la pantalla sale del mismo tamaño.

Quisiera saber que es lo que tengo que agregarle al gadget para que aparesca bien.

Si puedieras ayudarme seria de bran ayuda, te dejo mi msn si puedes mandarme un mail te lo agradecería.

javica18@hotmail.com

Saludos.

# December 26, 2007 12:25 AM

Gonzalo Perez ha opinado:

Vale, no hay problma. Mira los ejemplos que hay en la carpeta sobre Dock y unDock del Gadget.

Por otro lado fijate en el css asociado ya que ahi es donde se le asignan las dimensiones.

# January 3, 2008 12:40 PM

mauro ha opinado:

Hola, yo tengo un gadget que tiene un cuadro de texto, y un boton, y cuando pulso el boton, debe leer una URL que puede devolver 1 o mas resuestas en XMl.

Ademas, del Html del gadget, tengo otro html que se abre para mostrar las respuestas, como puedo pasar los valores de respuesta al otro HTML?

Html -> pulsa boton -> llama funcion "obtNoticia" -> Abre otro html (el textarea de este se llama Respuesta)

# February 22, 2008 1:35 PM

Paco ha opinado:

En tu ejemplo obtienes los datos de tu ordenador local (localhost), pero ¿se pueden obtener datos via Ajax de una página que tengo alojada en un servidor web, como por ejemplo www.misitio.com/_getxml.php

Lo he probado pero me da un error :

"Access to restricted URI denied"  code: "1012" nsresult: "0x805303f4 (NS_ERROR_DOM_BAD_URI)"  location: ....

Hay forma de obtener datos mediante ajax de mi servidor web?

Gracias.

# October 1, 2008 8:17 AM

Fernando ha opinado:

Ola me gustaria consumir un web services en un gadget no se si se pueda, me podrias ayudar mi msn es kley007@hotmail.com

# July 3, 2010 8:24 PM

Gonzalo Perez ha opinado:

Hola Fernando,

Revisa mi artículo

geeks.ms/.../jquery-en-gadget-de-windows-7-jquery-json-gadget-ws.aspx

Ahi puedes ver como se hace lo que necesitas.

# July 4, 2010 7:05 PM

juan jose loranca ha opinado:

hola!

me gustaria llevar a cabo el ejemplo que pones pero no se como crear el gadget.me podrias ayudar

gracias,!

# October 5, 2010 5:40 PM

Gonzalo Perez ha opinado:

Juan José,

Revisa este post please:

geeks.ms/.../jquery-en-gadget-de-windows-7-jquery-json-gadget-ws.aspx

y me cuentas...

# October 7, 2010 2:39 PM