﻿<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>CRaZy TeaM &#187; Ajax</title>
	<atom:link href="http://www.crazyteam.es/tag/ajax/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.crazyteam.es</link>
	<description>Artículos sobre noticias de informática, programación y juegos en red</description>
	<lastBuildDate>Mon, 08 Mar 2010 20:21:45 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Ajax (II): Unión de tecnologías</title>
		<link>http://www.crazyteam.es/html/ajax-ii-union-de-tecnologias/</link>
		<comments>http://www.crazyteam.es/html/ajax-ii-union-de-tecnologias/#comments</comments>
		<pubDate>Fri, 21 Nov 2008 17:21:21 +0000</pubDate>
		<dc:creator>Ignacio Sánchez</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Comunicación Asíncrona]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.crazyteam.es/?p=288</guid>
		<description><![CDATA[En un post anterior explicaba una definición y una introducción a lo que era el Ajax, que historia había seguido y en qué navegadores se había estado implementando este objeto.
Tecnologías para Ajax
Como bien se dijo, Ajax no es una tecnología en sí, sino una unión de tecnologías con el fin de crear una mejor experiencia [...]]]></description>
			<content:encoded><![CDATA[<p>En un <a href="http://www.crazyteam.es/html/ajax-i-introduccion-y-origenes/">post</a> anterior explicaba una definición y una introducción a lo que era el Ajax, que historia había seguido y en qué navegadores se había estado implementando este objeto.</p>
<h2>Tecnologías para Ajax</h2>
<p>Como bien <a href="http://adaptivepath.com/ideas/essays/archives/000385.php">se dijo</a>, Ajax no es una tecnología en sí, sino una unión de tecnologías con el fin de crear una mejor experiencia de usuario. Estas tecnologías son:</p>
<ul>
<li><a href="http://www.w3c.es/Divulgacion/Guiasbreves/XHTML">XHTML</a> y <a href="http://www.w3c.es/divulgacion/guiasbreves/HojasEstilo">CSS</a> basada en estándares.</li>
<li><a href="http://es.wikipedia.org/wiki/DOM">DOM</a> para la interacción dinámica con el documento.</li>
<li><a href="http://es.wikipedia.org/wiki/XML">XML</a>, <a href="http://www.json.org/">JSON</a>,&#8230;, para el intercambio de datos con el servidor.</li>
<li><a href="http://es.wikipedia.org/wiki/XmlHttpRequest">XMLHttpRequest</a> establecer el canal de comunicación entre el cliente y el servidor.</li>
<li><a href="http://es.wikipedia.org/wiki/Javascript">Javascript</a> para tratar el fichero (XML, JSON) del servidor, tratarlo e incluirlo por DOM a la página.</li>
</ul>
<p style="text-align: center;"><a href="http://www.crazyteam.es/wp-content/uploads/2008/11/f0101.gif"><img class="size-medium wp-image-297 aligncenter" title="Ajax, unión de tecnologías" src="http://www.crazyteam.es/wp-content/uploads/2008/11/f0101-300x180.gif" alt="" width="300" height="180" /></a>Figura 2.1. Tecnologías que agrupan el concepto Ajax</p>
<p style="text-align: left;">Como bien se ve en la figura 2.1, Javascript es el puente entre las comunicaciones y la presentación.</p>
<h2 style="text-align: left;">Modelo tradicional <em>vs</em> Modelo Ajax</h2>
<p style="text-align: left;">El proceso en las web tradicionales era:</p>
<ol>
<li>El usuario pide una página a un servidor,</li>
<li>El servidor le devuelve la página que pidió al usuario,</li>
<li>El usuario interactúa con los datos de la página (formularios, tablas, &#8230;),</li>
<li>El usuario realiza una acción (ejecutar un href, un formulario, &#8230;),</li>
<li>El servidor procesa los datos que introdujo el usuario y calcula la respuesta,</li>
<li>Y el servidor devuelve otra página completa con los nuevos datos al usuario.</li>
</ol>
<p><a href="http://www.crazyteam.es/wp-content/uploads/2008/11/f0102.gif"><img class="aligncenter size-medium wp-image-298" title="ComparativaAjax" src="http://www.crazyteam.es/wp-content/uploads/2008/11/f0102-300x287.gif" alt="" width="300" height="287" /></a></p>
<p style="text-align: center;">Figura 2.2. Comparativa entre el modelo clásico y el modelo Ajax</p>
<p>Como se ve en la Figura 2.2, la gran diferencia que existe entre el modelo clásico web y el modelo Ajax Web es lo que envía el servidor. En el modelo clásico envía la página completa con las hojas de estilo, los javascript asociados, las imágenes y los componentes que necesite esa página. En el modelo Ajax lo único que envía el servidor son los datos que necesitan ser refrescados al cliente.</p>
<p>Las dos mayores ventajas son:</p>
<ol>
<li>No hay que refrescar la página del cliente para mostrar nuevos datos</li>
<li>Se reduce bastante la transferencia del servidor</li>
</ol>
<p><a href="http://www.crazyteam.es/wp-content/uploads/2008/11/f0103.gif"><img class="aligncenter size-medium wp-image-300" title="Sincronía de Ajax" src="http://www.crazyteam.es/wp-content/uploads/2008/11/f0103-238x300.gif" alt="" width="238" height="300" /></a></p>
<p style="text-align: center;">Figura 2.3. Comparativa de sincronización entre el modelo clásico y el modelo Ajax</p>
<p>En el modelo tradicional el que hace la petición es el navegador, en el modelo actual la petición HTTP la hace Javascript.</p>
<p>Fuentes e Imágenes obtenidas de:</p>
<ol>
<li><a href="http://www.adaptivepath.com/ideas/essays/archives/000385.php">Artículo</a> en <a href="http://www.adaptivepath.com/">adaptative path</a> de <a href="http://www.adaptivepath.com/aboutus/jjg.php">Jesse James Garret</a></li>
<li><a href="http://www.librosweb.es/ajax/capitulo1.html">Capítulo 1</a> del <a href="http://www.librosweb.es/ajax/">libro de Ajax</a> en <a href="http://www.librosweb.es">librosweb.es</a></li>
</ol>
<h3  class="related_post_title">Artículos Relacionados</h3><ul class="related_post"><li><a href="http://www.crazyteam.es/general/json-otra-forma-de-hacer-ajax-en-la-web/" title="JSON. Otra forma de hacer Ajax en la Web">JSON. Otra forma de hacer Ajax en la Web</a></li><li><a href="http://www.crazyteam.es/html/ajax-i-introduccion-y-origenes/" title="Ajax (I): Introducción y orígenes">Ajax (I): Introducción y orígenes</a></li><li><a href="http://www.crazyteam.es/html/draggable-plugin-de-crazy-team-para-jquery/" title="Draggable: Plugin de CRaZy TeaM para JQuery">Draggable: Plugin de CRaZy TeaM para JQuery</a></li><li><a href="http://www.crazyteam.es/html/javascript/escribiendo-codigo-javascript-eficiente/" title="Escribiendo código javascript eficiente">Escribiendo código javascript eficiente</a></li><li><a href="http://www.crazyteam.es/html/framework-para-menus-deplegables-con-css/" title="Framework para menús deplegables con CSS">Framework para menús deplegables con CSS</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.crazyteam.es/html/ajax-ii-union-de-tecnologias/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ajax (I): Introducción y orígenes</title>
		<link>http://www.crazyteam.es/html/ajax-i-introduccion-y-origenes/</link>
		<comments>http://www.crazyteam.es/html/ajax-i-introduccion-y-origenes/#comments</comments>
		<pubDate>Thu, 20 Nov 2008 20:24:41 +0000</pubDate>
		<dc:creator>Ignacio Sánchez</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Comunicación Asíncrona]]></category>
		<category><![CDATA[XMLHttpRequest]]></category>

		<guid isPermaLink="false">http://www.crazyteam.es/?p=275</guid>
		<description><![CDATA[Definición de Ajax
La definición que da la wikipedia es la siguiente:
Ajax (Asynchronous JavaScript And XML) (JavaScript asíncrono y XML) es una técnica de desarrollo web para crear aplicaciones interactivas o RIA (Rich Internet Applications). Estas aplicaciones se ejecutan en el cliente, es decir, en el navegador de los usuarios mientras se mantiene la comunicación asíncrona [...]]]></description>
			<content:encoded><![CDATA[<h2>Definición de Ajax</h2>
<p>La definición que da la <a href="http://es.wikipedia.org/wiki/AJAX">wikipedia</a> es la siguiente:</p>
<p><em>Ajax (Asynchronous JavaScript And XML) (JavaScript asíncrono y <a href="http://es.wikipedia.org/wiki/XML">XML</a>) es una técnica de desarrollo web para crear aplicaciones interactivas o <a href="http://es.wikipedia.org/wiki/Rich_Internet_Application">RIA</a> (Rich Internet Applications). Estas aplicaciones se ejecutan en el cliente, es decir, en el navegador de los usuarios mientras se mantiene la comunicación asíncrona con el servidor en segundo plano. De esta forma es posible realizar cambios sobre las páginas sin necesidad de recargarlas, lo que significa aumentar la interactividad, velocidad y usabilidad en las aplicaciones.</em></p>
<p>Es una buena definición, pero no es una definición que a mi me guste del todo. Yo prefiero la definición que dió <a href="http://adaptivepath.com/aboutus/jjg.php">Jesse James Garret</a> en su artículo <a href="http://adaptivepath.com/ideas/essays/archives/000385.php"><em>Ajax: a new approach to web applications</em></a> (Ajax: una nueva aproximación a las aplicaciones Web). En el artículo dice que <em>Ajax no es una tecnología en sí misma, sino que, en realidad, se trata de varias tecnologías independientes que se unen de formas nuevas y sorprendentes</em>.</p>
<h2>Historia de Ajax</h2>
<p>Desde hacía ya tiempo que se hacían comunicaciones asíncronas en aplicaciones web. En 1996 con Internet Explorer 3 utilizando el frame oculto o en 1997 con Netscape 4 utilizando el elemento layer. Las dos capas tenían un atributo src que permitía cargar una dirección con un contentenido HTML y código javascript con la lógica necesaria para tratar esos datos e introducirlos en la la página por medio de DOM.</p>
<p>Microsoft, en 1998, revolucionó la técnica de los frames y los layer (para ser claros, útil pero algo &#8216;chapucera&#8217;) cuando presentó <a href="http://es.wikipedia.org/wiki/Scripting_Remoto">Script Remoting</a>. Una solución bastante más elegante que utilizaba un applet de Java para realizar estas comunicaciones asíncronas. Lo aplicó de forma muy efectiva en el Outlook Web Access que venía con la versión 2000 del Microsoft Exchange Server.</p>
<p>Después de esto, una comunidad de desarrolladores Web comenzó a construir una librería <a href="http://es.wikipedia.org/wiki/Scripting_remoto_en_Javascript">JSRS</a> con la finalidad de que funcionase en varios navegadores desde el año 2000 hasta el 2002, año en el que se convirtió en el elemento <strong><a href="http://es.wikipedia.org/wiki/XmlHttpRequest">XMLHttpRequest</a></strong> que utilizamos actualmente.</p>
<p>El nombre de Ajax no le vino hasta que en febrero de 2005 Jesse James Garret publicase un artículo, que enlacé antes, llamándo a esta unión de tecnologías como Ajax.</p>
<h3  class="related_post_title">Artículos Relacionados</h3><ul class="related_post"><li><a href="http://www.crazyteam.es/html/ajax-ii-union-de-tecnologias/" title="Ajax (II): Unión de tecnologías">Ajax (II): Unión de tecnologías</a></li><li><a href="http://www.crazyteam.es/general/json-otra-forma-de-hacer-ajax-en-la-web/" title="JSON. Otra forma de hacer Ajax en la Web">JSON. Otra forma de hacer Ajax en la Web</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.crazyteam.es/html/ajax-i-introduccion-y-origenes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JSON. Otra forma de hacer Ajax en la Web</title>
		<link>http://www.crazyteam.es/general/json-otra-forma-de-hacer-ajax-en-la-web/</link>
		<comments>http://www.crazyteam.es/general/json-otra-forma-de-hacer-ajax-en-la-web/#comments</comments>
		<pubDate>Mon, 10 Nov 2008 07:49:24 +0000</pubDate>
		<dc:creator>Ignacio Sánchez</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Ajax]]></category>

		<guid isPermaLink="false">http://www.crazyteam.es/?p=111</guid>
		<description><![CDATA[Todo el mundo que sepa programa ha oido o conoce bien XML. En pocas palabras es un metalenguaje extensible de etiquetas desarrollado por la W3C.
JSON es un formato ligero de intercambio de datos. Similar a los namespaces de javascript.
Estos dos formatos, junto con texto (poco recomendado bajo mi punto de vista) o html son las estructuras [...]]]></description>
			<content:encoded><![CDATA[<p>Todo el mundo que sepa programa ha oido o conoce bien <abbr title="eXtensible Markup Language">XML</abbr>. En pocas palabras es un metalenguaje extensible de etiquetas desarrollado por la <abbr title="World Wide Web Consurtium">W3C</abbr>.</p>
<p><abbr title="JavaScript Object Notation">JSON</abbr> es un formato ligero de intercambio de datos. Similar a los <em>namespaces</em> de javascript.</p>
<p>Estos dos formatos, junto con texto (poco recomendado bajo mi punto de vista) o html son las estructuras de datos para hacer <abbr title="Asynchronous JavaScript And XML">Ajax</abbr> en la web.</p>
<p>La estructura básica de JSON es:</p>
<div class="codesnip-container" >
<div class="javascript codesnip" style="font-family:monospace;"><span class="br0">&#123;</span><br />
<span class="st0">&quot;colegio&quot;</span> <span class="sy0">:</span> <span class="st0">&quot;Menesiano&quot;</span><span class="sy0">,</span><br />
<span class="st0">&quot;ciudad&quot;</span> <span class="sy0">:</span> <span class="st0">&quot;Madrid&quot;</span><span class="sy0">,</span><br />
<span class="st0">&quot;profesores&quot;</span> <span class="sy0">:</span><br />
<span class="br0">&#91;</span><br />
<span class="br0">&#123;</span><br />
<span class="st0">&quot;nombre&quot;</span><span class="sy0">:</span><span class="st0">&quot;Manuel&quot;</span><span class="sy0">,</span><br />
<span class="st0">&quot;asignatura&quot;</span><span class="sy0">:</span><span class="st0">&quot;Química&quot;</span><span class="sy0">,</span><br />
<span class="st0">&quot;edad&quot;</span><span class="sy0">:</span><span class="st0">&quot;54&quot;</span><br />
<span class="br0">&#125;</span><span class="sy0">,</span><span class="br0">&#123;</span><br />
<span class="st0">&quot;nombre&quot;</span><span class="sy0">:</span><span class="st0">&quot;Joaquín&quot;</span><span class="sy0">,</span><br />
<span class="st0">&quot;asignatura&quot;</span><span class="sy0">:</span><span class="st0">&quot;Lenguaje&quot;</span><span class="sy0">,</span><br />
<span class="st0">&quot;edad&quot;</span><span class="sy0">:</span><span class="st0">&quot;59&quot;</span><br />
<span class="br0">&#125;</span><span class="sy0">,</span><span class="br0">&#123;</span><br />
<span class="st0">&quot;nombre&quot;</span><span class="sy0">:</span><span class="st0">&quot;Felipe&quot;</span><span class="sy0">,</span><br />
<span class="st0">&quot;asignatura&quot;</span><span class="sy0">:</span><span class="st0">&quot;Matemáticas&quot;</span><span class="sy0">,</span><br />
<span class="st0">&quot;edad&quot;</span><span class="sy0">:</span><span class="st0">&quot;28&quot;</span><br />
<span class="br0">&#125;</span><br />
<span class="br0">&#93;</span><span class="sy0">,</span><br />
<span class="st0">&quot;alumnos&quot;</span> <span class="sy0">:</span><br />
<span class="br0">&#91;</span><br />
<span class="br0">&#123;</span><br />
<span class="st0">&quot;nombre&quot;</span><span class="sy0">:</span><span class="st0">&quot;Juan Carlos&quot;</span><span class="sy0">,</span><br />
<span class="st0">&quot;curso&quot;</span><span class="sy0">:</span><span class="st0">&quot;1 Bachillerato&quot;</span><span class="sy0">,</span><br />
<span class="st0">&quot;edad&quot;</span><span class="sy0">:</span><span class="st0">&quot;16&quot;</span><br />
<span class="br0">&#125;</span><span class="sy0">,</span><span class="br0">&#123;</span><br />
<span class="st0">&quot;nombre&quot;</span><span class="sy0">:</span><span class="st0">&quot;Oscar&quot;</span><span class="sy0">,</span><br />
<span class="st0">&quot;asignatura&quot;</span><span class="sy0">:</span><span class="st0">&quot;1 ESO&quot;</span><span class="sy0">,</span><br />
<span class="st0">&quot;edad&quot;</span><span class="sy0">:</span><span class="st0">&quot;12&quot;</span><br />
<span class="br0">&#125;</span><br />
<span class="br0">&#93;</span><br />
<span class="br0">&#125;</span> </div>
</div>
<p>Vista más o menos la estructura del JSON, las ventajas son:</p>
<ul>
<li>Peso bastante reducido. Se pierde mucho peso con las etiquetas puesto que se engloban los datos entre dos caracteres ( &#8216;{&#8217;, &#8216;}&#8217;). En aplicaciones con mucha transferencia de datos puede ser muy relevante</li>
<li>La evaluación de los datos es muy veloz, puesto que la propia estructura JSON puede ser una variable javascript.</li>
<li>Aunque eval() suponga un pequeño agujero de seguridad, una buena implementación desde servidor es suficiente para que eval ya no sea importante</li>
</ul>
<div>Sus desventajas son:</div>
<div>
<ul>
<li>para evaluarse se usa la funcion javascript nativa eval(), y por temas de seguridad, los desarrolladores nos planteamos a veces usarla. en Gmail o Yahoo está implantado el uso de JSON</li>
<li>Estructuras complejas son difíciles de leer respecto a XML o HTML.</li>
</ul>
<div>Viendo las ventajas y desventajas, los ámbitos de aplicación de JSON pueden ser entornos con grandes cargas AJAX.</div>
<div></div>
<div>Desde la página de <a href="http://www.jsonlint.com/">jsonlint</a>, se puede indentar correctamente el código y comprobar posibles errores. Además, en la <a href="http://www.json.org/">web oficial de json</a> se pueden encontrar multitud de librerías en diferentes lenguajes para hacer la conversion o creación</div>
</div>
<div>No dudéis en consultarnos cualquier duda sobre Ajax y JSON</div>
<h3  class="related_post_title">Artículos Relacionados</h3><ul class="related_post"><li><a href="http://www.crazyteam.es/html/ajax-ii-union-de-tecnologias/" title="Ajax (II): Unión de tecnologías">Ajax (II): Unión de tecnologías</a></li><li><a href="http://www.crazyteam.es/html/draggable-plugin-de-crazy-team-para-jquery/" title="Draggable: Plugin de CRaZy TeaM para JQuery">Draggable: Plugin de CRaZy TeaM para JQuery</a></li><li><a href="http://www.crazyteam.es/html/javascript/escribiendo-codigo-javascript-eficiente/" title="Escribiendo código javascript eficiente">Escribiendo código javascript eficiente</a></li><li><a href="http://www.crazyteam.es/html/ajax-i-introduccion-y-origenes/" title="Ajax (I): Introducción y orígenes">Ajax (I): Introducción y orígenes</a></li><li><a href="http://www.crazyteam.es/html/framework-para-menus-deplegables-con-css/" title="Framework para menús deplegables con CSS">Framework para menús deplegables con CSS</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.crazyteam.es/general/json-otra-forma-de-hacer-ajax-en-la-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
