Página principal



El Poder de ajax en Tiempo Real

Descargar 128.52 Kb.

El Poder de ajax en Tiempo Real





Descargar 128.52 Kb.
Página1/3
Fecha de conversión30.04.2017
Tamaño128.52 Kb.
  1   2   3

El Poder de AJAX en Tiempo Real

 

Por Harvey Triana

 

Introducción

 

AJAX es una estrategia de programación creada para evitar en lo posible el “postback”, y mejorar tanto la experiencia final del usuario como el desempeño de la aplicación Web. AJAX, que es el acrónimo para JavaScript asíncrono y XML, pone de manifiesto una pronunciada evolución de aplicaciones Web basadas en ASP.NET 2.0. Es tan atractivo el asunto que me hizo mirar hacia tecnologías .NET nuevamente y a usar fuertemente ASP.NET 2.0 en mis proyectos. No obstante, el estado del arte de usar AJAX esta en ATLAS, el cual es un framework de alto nivel que simplifica notablemente AJAX a los desarrolladores Web que usan ASP.NET 2.0.

 

No obstante AJAX exige que un programador de .NET necesite alta pericia para poner en real producción el asunto. AJAX rompe un poco un principio que reza: “el código y la presentación van separados”. No obstante Atlas hace posible que esta promesa sea más aproximada a la verdad. En general, la principal dificultad de AJAX radica en que el desarrollador esta obligado a escribir código JavaScript del lado del cliente y a manejar perfectamente el esquema de Callbacks disponible en ASP.NET 2.0, cuestiones que no son simples, y están lejos de una intención RAD.

 

Cuando recién empiezas a usar ATLAS, y lees la documentación, quizás encuentres que conceptualmente es difícil, analíticamente disfraza su complejidad ¿Por qué? Si revisamos un poco la raíz del asunto, es decir AJAX, vamos a comprender mucho a ATLAS. Por supuesto, después de asimilar el marco teórico de AJAX, ATLAS nos va a parecer natural, y hasta sencillo de usar. En general, pongo de manifiesto que un sitio Web basado en callbacks es una odisea técnica en la que no deberíamos abarcarnos. Para eso disponemos de ATLAS. No obstante, en ciertos casos AJAX podría ser necesario, el caso particular lo expongo al final del artículo.

 

 

En Tiempo Real

 

En algunos de mis proyectos de ingeniería, un requisito es que el software opere en tiempo real. Algunos se preguntan que es exactamente “ejecutar en tiempo real”. Es fácil de comprender si se hace la analogía con la televisión. Un partido de fútbol en directo, es en tiempo real, es decir, la respuesta se obtiene en el tiempo actual y no a posteriori. Un ejemplo de software en tiempo real es el siguiente: A otro lado del mundo se desea monitorear una curva de comportamiento de la perforación de un pozo petrolero. En principio, tenemos que ir hasta un servidor Web instalado en la localización del pozo, extraer un conjunto de datos generados en tiempo real, generar un gráfico y enviarlo a los clientes vía Web. Si se hiciera usando “postback”, los clientes verían una fea imagen parpadeante. El problema se puede solucionar al usar un control ActiveX grueso del lado del cliente, el cual solo recoge los datos vía TCP/IP, y genera el grafico en el PC del cliente. Como sabrán, las limitaciones de ActiveX en la web son notables, el mantenimiento de tales objetos se dificulta cuando se quiere hacer una mejora o modificar un comportamiento. En la mayoría de los casos se tendrá que hacer una reinstalación en el cliente, cosa que para los usuarios normales es una molestia y a veces una frustración para ambas partes. La solución ideal consiste en que la parte difícil, llámese regla de negocios, ejecute en el servidor Web, y que el cliente, muy ligero, reciba los datos sin “postback”. Cualquier mantenimiento de los objetos favorece a todos los clientes. En resumen AJAX, y el poder de ATLAS, suministra esta característica.

 

Para operar en tiempo real requerimos de eventos en tiempo, es decir de objetos “temporizadores”. Cuando operamos vía Web, tenemos dos situaciones, el Tiempo del Cliente, y el Tiempo de Servidor. Por supuesto, en estas dos situaciones los tiempos serán diferentes por la diferencia horaria, siendo muy poco notable cuando nos encontramos en la misma latitud.

 

Así pues, me voy a centrar en mostrar la base de un sistema en tiempo real. ¿Qué tal una pagina que muestre simultáneamente el tiempo del cliente, y el tiempo del Servidor? Y, por supuesto, no queremos postback.

 

Voy a exponer la solución del problema de manera ascendente, es decir, de lo simple a lo complejo. Esto me parece más didáctico y útil. Seguiré estos pasos:

 

  •           Leer Tiempo del Cliente

  •           Leer el Tiempo del Servidor con Postback

  •           Leer el Tiempo del Servidor y del Cliente usando Callback

  •           Leer el Tiempo del Servidor y del Cliente usando Atlas

 

 

Leer Tiempo del Cliente

 

Para obtener el tiempo del cliente necesitamos una función JavaScript. El Script que escribí retorna el tiempo en formato “dd/mm/yy hh:mm:ss” que es general y conveniente para usar en bases de datos de Microsoft como MS SQL Server y MS Access. Para reutilizar el código, es conveniente guardar el código JavaScript en un archivo JScript y agregarlo al proyecto como un nuevo ítem de “Archivo JScript”. En este ejemplo el archivo se llama “ClientTime.js”. He aquí el código:

 

Script 1: Tiempo del Cliente en JavaScript. Archivo ClientTime.js

 

// JScript File

function clientTime()

{

var t = new Date();

return (

char2(t.getDate()) + "/" +

char2(t.getMonth() + 1) + "/" +

String(t.getYear()).substring(4,2) + " " +

char2(t.getHours()) + ":" +

char2(t.getMinutes()) + ":" +

char2(t.getSeconds()));

}

function char2(v)

{

if ((v >= 0) && (v <= 9))

return "0" + v;

else

return v;

}

 

 

Para programar un evento de temporizador del lado del cliente en una pagina web, JavaScript suministra un esquema sencillo, se activa un procedimiento invocando el método setTimeout del objeto window, el cual usa como parámetros el nombre de la función que se va a llamar, y el tiempo en milisegundos de espera para hacer la llamada. Hacemos la primera llamada desde el evento de carga de la página, normalmente “body onload” o un “Page Load”. Para hacer el temporizador continuo, la función que se invoca en setTimeout debe llamar nuevamente a setTimeout. Por ultimo si queremos mostrar el resultado en la pagina, desde unas líneas escribimos en un control del lado del cliente. En el siguiente ejemplo el tiempo del cliente se muestra en una caja de texto de html de nombre “txtClientTime”. Finalmente el código de la pagina es el siguiente:

 

Código HTML de TiempoDelCliente.aspx

 

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

<title>Tiempo del Clientetitle>

head>

<body onload="window.setTimeout('timerEvent()',1500);">

<form id="form1" runat="server">

<div>

<span>Tu Hora: span>

<input id="txtClientTime" type="text" style="width: 200px" />

div>

form>

body>

html>

 

<script type="text/javascript" src="ClientTime.js">script>

<script type="text/javascript">

// activando un "Timer"

function timerEvent()

{

showClientTime();

// hace continuo el Timer

window.setTimeout("timerEvent()",1000);

}

function showClientTime()

{

t = clientTime();

var r = document.getElementById("txtClientTime");

r.value = t;

}

script>

 

Siempre que se quieran datos del cliente es necesario recurrir a código del lado del cliente. Se usa solo JavaScript para aumentar compatibilidad para los diferentes visualizadores.

 

Hasta acá no hemos visto nada interesante. Solo mostré como programar un temporizador del lado del cliente en una página Web.

 

 

Leer Tiempo del Servidor con Postback

 

Leer el tiempo del servidor en un postback no requiere mucha discusión. Solo necesitamos un control asp con postback. En el código del lado del servidor leemos el retorno de la función DateTime.Now(). Si queremos mostrarla en un control la asignamos directamente. Ejemplo, usamos un botón btnServerTime y una caja de texto txtServerTime:

 

C#: Leer Tiempo del Servidor con Postback

 

protected void btnServerTime_Click(object sender, EventArgs e)

{

this.txtServerTime.Text = DateTime.Now.ToString("dd/mm/yy hh:mm:ss");

}

 

VB.NET: Leer Tiempo del Servidor con Postback

 

Protected Sub btnServerTime_Click( _

ByVal sender As Object, _

ByVal e As System.EventArgs) Handles btnServerTime.Click

 

Me.txtServerTime.Text = DateTime.Now.ToString("dd/mm/yy hh:mm:ss")

End Sub

 

 

Leer el tiempo del servidor con postback seria útil cuando no se requiere un proceso continuo, es decir, el proceso se ejecuta muy eventualmente o por acción del usuario.

 

 


  1   2   3

Similar:

El Poder de ajax en Tiempo Real iconTutorial Php y jquery Ajax Formulario De Contacto
This is an ajax form that has both client (JavaScript) and (php) server-side of this basic
El Poder de ajax en Tiempo Real iconAJAX.pdf [formulario ajax]

El Poder de ajax en Tiempo Real iconAjax ajax, acrónimo de A
De esta forma es posible realizar cambios sobre las páginas sin necesidad de recargarlas, mejorando la interactividad, velocidad...
El Poder de ajax en Tiempo Real iconXajax: una librería de ajax para php (parte 1)
Ajax es el acrónimo de Asynchronous Javascript And xml o Javascript y xml asíncronos dicho
El Poder de ajax en Tiempo Real iconOm21 manual de uso
M21 se puede usar como un programa informático muy sencillo, que le permitirá llevar a la pantalla de su ordenador, en tiempo real,...
El Poder de ajax en Tiempo Real iconCarta poder
En  , a los   días del mes de  , de  , compareció ante  , don:  , de nacionalidad  , de años   de edad, de profesión...
El Poder de ajax en Tiempo Real iconLicitacion publica nacional n° 0001-2002-ctar lima “adquisicion de cemento portland tipo 1
Contratacion del servicio interactivo de recopilacióN, procesamiento, análisis y diseminación de información en tiempo real para...
El Poder de ajax en Tiempo Real iconDiccionario educativo
La necesidad de robarle tiempo al tiempo en épocas vertiginosas, llevó a que en el sistema
El Poder de ajax en Tiempo Real iconCurso de Visual Basic (parte II)
Devuelve el control que tiene el enfoque. No está disponible en tiempo de diseño y es de sólo lectura en tiempo de ejecución
El Poder de ajax en Tiempo Real iconCuestionario para asesoria de imagen
Acabas de realizar la mejor inversión en ti misma que va a durar por mucho tiempo, lo único que tienes que hacer ahora es hablarme...


Descargar 128.52 Kb.