Jquery: Invocar dinamicamente JSONP

Hace poco encontré un interesante tutorial en nettuts que explica como usar jsonp para mostrar los último en twitter sin embargo este mismo script puede ser usado con cualquier origen de datos jsonp para ello basta con cambiar los nombres de las variables.

La estructura

Lo primero es crear nuestro esqueleto HTML donde vamos a mostrar los datos
[cc lang=»html»]

Latest Tweets

[/cc]

AJAX para mostrar JSONP

Luego de incluir la librería jquery debemos buscar los últimos mensajes en twitter para esto usamos el siguiente script:
[cc lang=»javascript»]
(function() {
var UpdatePanel = {
init : function(options) {
this.options = $.extend({
interval : 5000,
number : 3
}, options);

this.updater();
},
[/cc]
Aqui vamos definiendo algunos parámetros como por ejemplo el tiempo para actualizarse (5000), la cantidad de elementos (3)

[cc lang=»javascript»]
updater : function() {
(function updateBox() {
this.timer = setTimeout(function() {
updateIt();
updateBox();
}, UpdatePanel.options.interval);
})();
[/cc]
El sgte. paso es definir la función updater la cual a su vez va a invocar a updateIt y updateBox

[cc lang=»javascript»]
updateIt();

function updateIt() {
$.ajax({
/// tipo de llamada AJAX, url, y tipo JSONP
type : ‘GET’,
url : UpdatePanel.options.url,
dataType : ‘jsonp’,

error : function() {},
// Si se consiguen los datos debe actualizar los resultados
success : function(results) {
var theTweets = »,
elem = UpdatePanel.options.elem.empty();

$.each(results.results, function(index, tweet) {
if ( index === UpdatePanel.options.number ) {
return false;
}
else {
// Definimos lo que vamos a mostrar
theTweets += ‘

  • ‘ + tweet.text + ‘
  • ‘;
    }
    });
    // Finalmente añadimos los ultimos comentarios
    elem.append(theTweets);
    }
    });
    [/cc]
    Aqui invocamos y definimos la función updateIt();
    [cc lang=»javascript»]
    UpdatePanel.init({
    interval : 5000,
    number : 5,
    url : «http://search.twitter.com/search.json?q=batman»,
    elem : $(‘#tweets’)
    });
    [/cc]
    Finalmente vamos a inicializar nuestro objeto, definiendo los parámetros respectivos además del lugar donde se mostrarán los útimos mensajes

    Pueden ver el código completo AQUI

    Y el ejemplo funcionado AQUI