JASoft.org

El blog de José Manuel Alarcón Aguín. Programación web y mucho más...

MENÚ - JASoft: JM Alarcón

AJAX (V): Posibles problemas (II) - Gestión de errores y llamadas que no vuelven

Siguiendo con la lista de problemas que dan en este tipo de aplicaciones asíncronas AJAX, nos toca analizar los posibles errores de comunicaciones que se pueden producir. No podemos asumir que la llamadas que hagamos al servidor van a funcionar siempre. Puede haber un error en el código del servidor, puede haber cambiado la URL y no aparecer la página que llamamos, haber errores de permisos, etc... Lo que pase en el servidor está fuera de nuestro control. Ante eso hay que estar preparado. La forma de controlar estas situaciones es, como en cualquier componente de comunicaciones por HTTP, a través del código de estado que devuelva el servidor. La propiedad 'status' del objeto XmlHttpRequest nos proporciona esta información. De hecho ya hemos tenido en cuenta este asunto en los ejemplos anteriores que habíamos desarrollado: function finCarga(){   if (http.readyState == 4) //4: completado   {      if (http.status == 200... [Más]

AJAX (IV): Posibles problemas (I) - Llamadas fuera de nuestro dominio

Con este título en dos partes continuamos con la serie dedicada a AJAX en donde se había quedado. Los principales problemas que nos podemos encontrar al usar técnicas AJAX en nuestras aplicaciones Web son los siguientes: Llamadas fuera del dominio. Llamadas que producen errores o que no vuelven jamás. Envío de datos al servidor. Las malditas/benditas cachés. En este post trataremos el primer problema y dejamos para los siguientes los restant. Una vez que uno empieza a juguetear con las posibilidades de AJAX enseguida se nos ocurren ideas geniales para sacarle partido. La más obvia, claro está, es la de utilizar las técnicas para acceder desde el cliente a ciertos servicios web de utilidad ubicados en Internet que para eso están. Así, dado que los Servicios Web están basados en XML es muy fácil procesar lo que devuelven con las técnicas descritas para, por ejemplo, realizar búsquedas en Google o en Amazon con su API, enviar "posts" a nuestro blog, etc... Otra aplicació... [Más]

AJAX (III): Funciones para obtener datos

Siguiendo con el post anterior sobre AJAX y una vez estudiado el objeto XMLHttpRequest vamos a definir algunas funciones que nos serán útiles para realizar cargas de datos en cualquier navegador. Lo primero que necesitaremos siempre es obteneruna referencia a un objeto XMLHttpRequest. No se obtiene de la misma manera en Internet Explorer que en los demás navegadores, por lo que debemos tener en cuenta esas diferencias. En IE se obtiene a partir de un objeto ActiveX. En Firefox, Opera, Safari y compañía es una clase integrada del modelo de objetos del navegador. Sabiendo esto es fácil hacer una función genérica para obtener una referencia a un objeto XMLHttpRequest que funcione en todos los navegadores: function getHttpRequest(){ var httpReq;  //Si es Mozilla, Opera, etc... if (window.XMLHttpRequest) {  httpReq = new XMLHttpRequest(); } else //Internet Explorer lo expone como control Active X {  httpReq = new ActiveXObject(... [Más]

AJAX (II): El objeto XMLHttpRequest

Lo prometido es deuda y hoy seguimos (o casi empezamos) con el estudio de las aplicaciones AJAX. Aparte de saber HTML y JavaScript, el primer objeto que debemos conocer para hacer aplicaciones AJAX es XMLHttpRequest. Si has utilizado alguna vez las bibliotecas MSXML con Visual Basic 6.0 o ASP 3.0 es probable que ya lo conozcas. Aunque en el caso de Internet Explorer se sigue usando este objeto ActiveX en el resto de los navegadores (Firefox, Opera, Safari...)  este objeto forma parte ya de las clases nativas del navegador. Su utilidad básica es la de enviar peticiones (tanto GET como POST) a Urls mediante el protocolo HTTP. Los métodos y propiedades básicos que debemos conocer son los siguientes(los corchetes indican parámetros opcionales): open(metodo, URL, [asincrono], [usuario], [clave]): sirve para abrir una conexión al servidor. No envía ni obtiene información, sólo se conecta. El tercer parámetro es booleano y sirve para indicar si la conexión se realizará asíncrona... [Más]

La palabra de moda: AJAX - ¡hagamos un ejemplo!

Si hay una palabra de moda últimamente en el mundillo (o submundo, que también vale) de la programación Web esta es sin duda AJAX. Se trata de un acrónimo que significa Asynchronous JavaScript And XML y sienta las bases de las nuevas aplicaciones dinámicas que no recargan la página, como por ejemplo GMail o MSN Earth (ahora Local Live) entre otras muchas. Se basa en el uso de un objeto llamado XMLHttpRequest que como puedes imaginar sirve para hacer peticiones de documentos XML a través del protocolo HTTP y que apareció por primera vez en las bibliotecas XML de Microsoft (MSXML). Con este objeto se piden documentos XML que luego es posible manipular mediante código JavaScript desde dentro de una página y mostrar resultados dentro de capas (div) de la misma. Esto es lo básico pero da mucho de sí . Aunque ahora parece que los chicos de Google han inventado la pólvora lo cierto es que el concepto original de esta tecnología fué creado por Microsoft (se llamaba Remote Scripting y he... [Más]

Creación de expresiones $ personalizadas

En mi anterior post (Expresiones $ en ASP.NET 2.0) explicaba cómo utilizar las expresiones estándar de tipo $ en el HTML de las páginas ASP.NET 2.0. Ahora vamos a aprender a crear nuestras propias expresiones $ personales. TEORÍA:Para crear nuestra propia expresión $ debemos definir una nueva clase que herede de System.Web.Compilation.ExpressionBuilder. Lo mejor que podemos hacer es crearla dentro de App_Code de forma que se compilará automáticamente cuando se ejecute la aplicación ASP.NET. Al heredar de ExpressionBuilder nuestra clase debe sobreescribir el método GetCodeExpression de esta clase base. Este método se llama desde el compilador dinámico de ASP.NET al compilar la página que contiene nuestra etiqueta $ para que le devuelva la expresión que debe visualizar o asignar. De los parámetros de este método el más interesante es Entry, que es del tipo BoundPropertyEntry y que tiene una propiedad llamada Expression que nos da la expresión que se pretende evaluar. Una vez creada... [Más]

Expresiones $ en ASP.NET 2.0

Una de las nuevas características de ASP.NET 2.0 destinadas a reducir la cantidad de código de nuestros desarrollos son las expresiones de tipo $. Éstas nos permiten obtener directamente ciertos valores y funcionalidades desde dentro de la definición de la página, sin necesidad de escribir códigopara ello. Su sintaxis es análogo a la siguiente: <%$ Expresion:Accion %> El uso típico de este tipo de expresiones es el de obtener directamente valores desde el archivo de configuración (web.config) y asignarlas directamente a propiedades de controles de la interfaz de usuario. Por ejemplo: <asp:Label Runat="server"  Text="<%$ AppSettings:NombreEmpresa %>" muestra el valor asignado al parámetro "NombreEmpresa" dentro de la configuración de la aplicación en web.config (<AppSettings/>). También se pueden obtener valores de cadenas de conexión (ej: <%$ ConnectionStrings:MiConexion %>, ya que ahora hay una sección específica para ellas) o cosas que no ti... [Más]