Repositorio scripts en Ajax
Nov 06
En Ajax compilation disponen de una colección de scripts totalmente hechos en Ajax que los puedes incorporar a tu sitio web.
Nov 06
En Ajax compilation disponen de una colección de scripts totalmente hechos en Ajax que los puedes incorporar a tu sitio web.
Oct 18
Desde Somospc, entre otros sitios, nos iforman de la nueva aplicación que Eclipse ha anunciado. Se trata de un servidor Ajax para crear todo tipo de aplicaciones para Internet, de una manera sencilla y cómoda a la altura de cualquiera.
Como ventajas podemos destacar que permitirá la creacción de aplicaciones Ajax de una manera más cómoda y facilitando la integración y desarrollo mediante la tecnología RAP con Java.
Oct 15
La semana pasada escribía un artículo sobre los comienzos con ajax, en él indicaba una forma fácil para cargar un documento estático en cualquier capa de una página.
En algún momento hice referencia a poder cargar documentos que contuvieran funciones javascript o incluso servlets.
Esto si es posible, pero siempre con algunas recomendaciones para evitar problemas futuros.
Las funciones javascript deberían ser declaradas en la plantilla base, es decir, donde se establecen las diferentes capas, al lado de las funciones ajax y a ser posible (para mejor organización) en ficheros .js externos al documento, así para cualquier cambio será todo mucho más sencillo.
Las direcciones deberíamos (por lo menos al principio) ponerlas absolutas y a medida que vaya funcionando ir cambiandolas por relativas, así cargaremos menos el servidor. En caso de no tener problema de carga las podríamos dejar como absolutas.
Cuando carguemos una página en una capa, si esta llama a alguna función ya estará declarada en la plantilla base y no habrá ningún problema de ejecución.
La sintaxis sería la misma que con una página normal, nosotros llamaríamos a nuestra función cargar página y le pasaríamos la dirección del servlet (http://localhost:8080/Prueba/ServletPrueba?accion=1) tal cual la usaríamos para acceder normal.
Ahora, el servlet se ejecutará y la salida, por ejemplo, si redirecciona a un .jsp aparecerá en la capa.
La única modificación que tendremos que hacer será modificar los enlaces generados dentro del servlet para que se vuelvan a cargar dentro de la capa, al igual que llamamos al servlet, hacer las demás llamadas.
Recordad que si en algún momento tenemos que ejecutar varias intrucciones javascript a la vez podemos usar un sólo evento, por ejemplo, el onLoad y separarlas con “;”
onLoad(javascrip1();javascrip2())
Oct 10
Por razones del trabajo he tenido que empezar a usar Ajax, antes había hecho algunas cosillas así que he tirado de lo que tenía por ahí.
En concreto se trata de una función a la que pasándole una capa y una dirección url (html, php, jsp, servlet…) carga la página en dicha capa.
function paginas (url, id_contenedor)
{
var pagina_requerida = false;
if (window.XMLHttpRequest)
{
// Si es Mozilla, Safari etc
pagina_requerida = new XMLHttpRequest ();
} else if (window.ActiveXObject)
{
// pero si es IE
try
{
pagina_requerida = new ActiveXObject (”Msxml2.XMLHTTP”);
}
catch (e)
{
// en caso que sea una versión antigua
try
{
pagina_requerida = new ActiveXObject (”Microsoft.XMLHTTP”);
}
catch (e)
{
}
}
}
else
return false;
pagina_requerida.onreadystatechange = function ()
{
// función de respuesta
cargarpagina (pagina_requerida, id_contenedor);
}
pagina_requerida.open (’GET’, url, true); // asignamos los métodos open y send
pagina_requerida.send (null);
}
Si todo ha funcionado correctamente entonces cargaremos el contenido en la capa correspondiente
function cargarpagina (pagina_requerida, id_contenedor)
{
if (pagina_requerida.readyState == 4 && (pagina_requerida.status == 200 || window.location.href.indexOf (”http”) == - 1))
document.getElementById (id_contenedor).innerHTML = pagina_requerida.responseText;
}
Me encantaría poder decir de donde obtuve estas funciones, pero no sé el autor ni el tipo de licencia que tienen, pero vamos, que tampoco tienen mucho, cualquiera con mínimos conocimientos de ajax podría hacerlas e incluso mejorarlas ya que son muy básicas.
Las podemos incluir en un fichero javascript externo o integrarlas en nuestro código, de cualquier manera para poder invocar la función sería desde cualquier evento con la sintaxis:
paginas(’url’,'capa_destino’)
Donde la url puede ser tanto absoluta como relativa y la capa_destino ha de ser el id de alguna capa, por ejemplo:
paginas(’prueba.html’,'cprueba’)
y tendríamos en nuestro código:
<div id=”cprueba”></div>
Luego cargaríamos la página prueba.html en la capa “codigo” ubicada mediante css en cualquier parte de nuestra página.
Para poder invocarla podemos usar eventos onChange o onLoad, por ejemplo, si queremos que nada más cargar la página aparezca algo podemos usar la propiedad onLoad del body:
<body onLoad=”paginas(’prueba.html’,'cprueba’)”>
Es conveniente cargar sólo páginas con texto y evitar transferir mediante ajax funciones javascript ya que suelen dar muchos problemas y fallos.
Si se pretende llamar a un servlet y este redirige a un jsp, por ejemplo, también tendremos ese problema ya que se recargará toda la página y no sólo la capa.
En estos casos quizás sea mejor solución utilizar frames con la estructura de marco flotante
<iframe name = “nombre” width=”100%” height=”400″ frameborder=”0″>Texto alternativo</iframe>
Con el frameborder indicaremos si aparece el borde o si por el contrario queremos hacer transparente su presencia.
Para enviar enlaces al frame sólo necesitaremos utilizar el atributo target del enlace para indicar que frame (name), en este caso sería:
<a target= “nombre” href=”">Enlace</a>
Espero que os sirva para vuestros comienzos con Ajax.
May 09
Aparece pisando fuerte Java FX de la mano de Sun, con el único propósito de llevar las
funcionalidades que ofrece Ajax a otros lugares como el escritorio, la web o los móviles, para saber más sobre el posible desplazamiento que puede sufrir la tecnología Ajax, imprescindible leer Does Java FX Spell The End Of AJAX?.
Desde java hispano ofrecen alguna información téncica:
Usa los APIs Java2D y Swing así como un modelo de programación declarativa (un branch del F3 de Chris Oliver). De momento está en estado alpha, no hay fechas pero si se sabe que será open-source.
Para ver algunos ejemplos del potencial de esta tecnología podemos visitar esta página.