¿QUE ES JAVASCRIPT?

•04 / 06 / 2008 • Deja un comentario

BUENO ESTA ES MI RECOPILACION DE JAVASCRIPT :

Dónde y cómo incluir JavaScript en un documento  Javascript se puede incluir en cualquier documento HTML, o todo aquel que termine traduciéndose en HTML en el navegador del cliente; ya sea PHP, ASP, SVG…

El código va inscrito dentro de los elementos HTML <script> y </script>:

<script type=”text/javascript”>
    // código JavaScript
</script>
Muchos incluyen comentarios HTML para que navegadores antiguos no interpreten el código JavaScript, sin embargo ningún navegador existente hoy en día necesita esta práctica.

Para incluir un archivo externo, bastará con escribir:

<script type=”text/javascript” src=”[URL]“></script>
Siendo [URL] el url relativo o absoluto apuntando a un archivo con código JavaScript, el cual tendrá extensión .JS.
 Sintaxis del Lenguaje 
 Notas previas 
 Case sensitive  JavaScript es case sensitive (en español, que diferencia entre mayúsculas y minúsculas). Por tanto, una variable llamada TEQUIERO es distinta a otra llamada tequiero.
 Comentarios  La sintaxis de los comentarios es la misma de C++, comentarios de bloque delimitados por «/*» y «*/», y comentarios de línea delimitados por «//» y el fin de línea.
 Elementos 
 Variables y Tipos de Datos  Son espacios de memoria dentro del navegador del cliente a los que se les asigna un nombre de acceso para todo el programa. Se pueden eliminar con el operador delete. Únicamente se pueden borrar las variables declaradas implícitamente (sin el operador var delante). Están asociados a un valor, un objeto o a una función.

Hay varios tipos de Datos: string, number, object, function, array, boolean.
 Operadores  Existen de varios tipos: asignación, aritméticos, lógicos, especiales y alfanuméricos (este último fusiona numéricos y alfabéticos)
 Operador de asignación  El operador de asignación en el lenguaje JavaScript es el símbolo igual, =.
 Operadores aritméticos  Los aritméticos son los matemáticos: suma(+), resta(-), multiplicación(*), división(/), y resto de división o módulo (%). El operador + también puede ser utilizado para concatenar strings. Su utilización puede ser:

variable = valor operador valor;
variable operador= valor;
En el primer caso asignamos a la variable variable el resultado de la operación; y en el segundo caso se aplica la operación directamente a la variable variable modificando su valor primitivo, equivaldría a:

   variable = variable operador valor;
También existen los aritméticos unitarios que no necesitan de otro valor para actuar a una variable como los aritméticos normales. Son ++, — y -.

++ Conseguirá sumar una unidad a la variable a la que acompaña.

– Conseguirá el efecto inverso, restará una unidad a la variable que acompaña.

- Es el operador unitario negativo, cambiará el signo de la variable a la que acompaña.

Advertencia sobre los operadores aritméticos unitarios ++ y –: Un ++ antes de una variable aumentará su valor en una unidad y su aplicación será con ese nuevo valor. Un ++ después de la variable aumentará el valor de la variable después de su aplicación, es decir, se aplicará con el valor antiguo y después se agregará una unidad. Lo mismo ocurre con –.

Ejemplo:

x=10;
y=x++;
Otorgará un valor inicial a la variable x de 10 y a la y de 10. Pero después a x se le suma una unidad, luego x tendrá el valor 11 al terminar la ejecución.

Ejemplo2:

x=10;
y=++x;
Aquí a x le otorgamos el valor 10, después le sumamos una unidad y se lo asignamos a y, por lo que las dos variables valdrán 11.
 Operadores relacionales  Los relacionales son los que comparan los valores de las variables unos con otros. Devuelven un true o un false dependiendo si son verdaderos o falsos. Son

> Mayor que
>= Mayor o igual
< Menor que
<= Menor o igual
== Igual que (mismo valor sin ser obligatoriamente mismo tipo)
=== Estrictamente igual que (mismo valor y mismo tipo de variable)
!= Distinto que

 Operadores lógicos y de valoración  Éstos agrupan conjuntos de expresiones. Son los siguientes:

(&&) AND valoración
(||) OR valoración
(^) XOR: OR exclusivo (o uno, o lo otro, pero no los dos a la vez)
(!) NOT:Negación
Existen también operadores de asignación combinados con operadores lógicos (&=, |=, ^=).

Además de los operadores de valoración, también existen operadores que trabajan a nivel de bits:

& AND
| OR
^ XOR
~ Complemento a uno
>> Shift a la derecha
<< Shift a la izquierda
>>> Shift a la derecha rellenando los ceros
El operador AND bit a bit se puede concebir como un modo para cancelar un bit llevándolo a 0. El operador OR bit a bit es el contrario de AND y puede utilizarse para impostar en 1 un bit, mientras que el operador XOR puede utilizarse para impostar en 1 un bit si los bit comparados son distintos.

Los operadores de shift corren todos los bit de una variable hacia la derecha o hacia la izquierda un número determinado de posiciones y los nuevos bit que se crean se impostan en 1, mientras que los bit que salen se pierden (excepto los del signo).

Las operaciones de shift son útiles para descifrar el input de un dispositivo externo, como un conversor analógico/digital, y permiten realizar operaciones rapidísimas entre enteros en cuanto el hecho de correrse a la derecha divide un número por dos, mientras que correrse a la izquierda lo multiplica también por dos.

El operador de complemento a uno, por su parte, invierte el estado de los bit, por lo que todos los 1 se cambiarán en 0, y viceversa. Naturalmente, dos operaciones de complemento en el mismo número producen como resultado el número original.
 Operadores especiales  1) Operador condicional (?:)

El operador condicional es el único operador de JavaScript que tiene tres operandos. La expresión toma un valor u otro dependiendo de la condición:

condición ? valor_true : valor_false
Ejemplo:

var estado = (edad>=18) ? “adulto” : “menor”;
2) Operador coma (,)

Sirve para concatenar expresiones. Es útil en bucles for. Ejemplo:

   for(var a=0, b=1; (a*b<100) || (a>14); a++, b*=2) {
     document.write(a+” * “+b+” = “+(a*b)+” <br />”);
   }

3) Operador delete

Borra un objeto, una propiedad de un objeto, o un elemento de un array dado su índice. La sintaxis es:

delete objeto
delete objeto.propiedad
delete tabla[indice]
El operador delete no se puede usar con las variables declaradas explícitamente con la sentencia var. Si el delete tiene éxito devolverá un true, y además cambiará el valor de lo que estemos utilizando a undefined.

Para eliminar un elemento de un array, se puede usar

delete miArray[2];
El objeto pasará a no tener valor, y el programa lo tratará como undefined, tal y como si utilizamos una elemento de un array más alto que la propia longitud del array. Para entregarle explícitamente el valor undefined debemos otorgárselo con la palabra reservada:

   miArray[2]=undefined;

4) Operador in

El operador in devuelve true si la propiedad esta especificada en el objeto indicado:

   propiedad in objeto;

También puede comprobar si un índice de un array está dentro de los valores posibles del array (entre 0 y array.length-1, a no ser que la hayamos eliminado con el operador delete).

5) Operador instanceof

Este operador devuelve true si el objeto indicado es una instancia de la clase que se especifica:

   objeto instanceof clase;

Siendo la clase un tipo de objeto, como Date, Array o un objeto creado por nosotros mismos.

6) Operador new

new se utiliza para crear nuevas instancias de objetos, ya sea de los predefinidos o de los creados por nosotros.

   variable=new objeto(param1, param2…);

7) Operador this

El operador this se utiliza más que nada dentro de la definición de un objeto para referirse a una instancia de un objeto. Sirve para declarar propiedades y métodos del propio objeto que estarán disponibles a través de la instancia.

8) Operador typeof

Se puede usar de las siguientes maneras

   typeof variable;
   typeof (variable);

Devuelve un string con el tipo de variable que resulte ser: function, string, object, boolean…

9) Operador void Puede verse en enlaces sobre todo. La expresión que le acompaña es evaluada, pero no devuelve ningún valor. Por ejemplo:

   <a href=”javascript:void(0)”>Pulsa aquí para no hacer nada</a>

Al pulsar en el enlace veremos que no resulta ninguna acción. Sin embargo:

   <a href=”javascript:void(document.form.submit())”>Pulsa aquí para enviar</a>

Ejecuta la orden de submit() enviando el formulario a donde hubiere de enviarlo. La expresión es evaluada pero no cargada en lugar del documento actual.
 Objetos  Aunque podemos crear nuestros propios objetos, JavaScript contiene una lista de tipos predefinidos de objetos:

Array
String

 El objeto Array  El objeto Array se refiere a una lista de datos, sean del tipo que sean. Es útil para guardar un conjunto de datos ordenados que tienen relación entre sí. Hay varias maneras de crearlos, y de asignar valor a sus índices. Además se pueden anidar creando estructuras de árbol complejas.

Para crear arrays se puede hacer de estas maneras:

   nombre_array=new Array(longitud);
   nombre_array=new Array(elemento1, elemento2,…, elementok);
   nombre_array=[];
   nombre_array=[ elemento1, elemento2,..., elementok ];

Para acceder a un elemento del array podemos hacerlo así:

   alert( nombre_array [ índice ] );

Donde índice será el número de elemento al que queramos acceder. Hay que tener en cuenta que los elementos empiezan a contarse desde cero, es decir, el primer elemento es nombre_array[0], el segundo nombre_array[1] y así sucesivamente.

Los arrays no tienen porqué ser de un sólo tipo; un array con muchos valores de diferentes tipos sería igualmente válido:

   miArray=new Array(”Hola”,”esto es”, “un”,”array”,3.1416, cont);

Además un array puede almacenar muchos elementos. Si creamos un elemento en el puesto 87 se crearán automáticamente todos los valores anteriores que no estén definidos con un valor vacío. Se puede extender todo lo que se quiera, pero no se puede empequeñecer ni con el delete, así que hay que procurar hacerlos compactos para ahorrar memoria.

1) Cómo anidar arrays

Un array puede estar contenido dentro de otro array, es decir, puede ser un elemento de otro array ajeno sin ningún problema:

   var array1=new Array(”a”,”b”,”c”,”d”);
   var array2=new Array(”plátano”,”pera”,”manzana”,”fresa”);
   array1[4]=array2;

El elemento 4 de array1 es otro array. Para acceder al elemento “pera” haremos:

   array2[1];
   array1[4][1];

Las dos opciones son válidas.

2) Propiedades de los arrays

length
Los arrays tienen como propiedad principal el length.

   miArray.length;

La propiedad length de un array devuelve un entero con el número de elementos que contiene el array. Nótese que el número de elementos es el índice del último elemento más una unidad, y no el índice del último elemento.

prototype
La propiedad prototype la tienen muchos objetos en JavaScript. Sirve para crear métodos y propiedades de los arrays genéricamente. Por si el lenguaje se nos queda corto. Podríamos implementar un método inexistente y propio para, por ejemplo, alertar el contenido de un array:

var array1=new Array(”a”,”b”,”c”,”d”);
var array2=new Array(”plátano”,”pera”,”manzana”,”fresa”);
array1[4]=array2;
 
Array.prototype.alertar=function() {
    alert(this.toString());
}
 
array1.alertar();
array2.alertar();
Así, genéricamente, todos los objetos Array de nuestro script estarían dotados del método alertar().

3) Métodos de los arrays

join(elemento_enlace): Este método devuelve un string resultado de la unión de todos los elementos del array intercalando entre ellos el string elemento_enlace.
var miArray=new Array(”plátano”,”pera”,”manzana”,”fresa”);
document.write( miArray.join(” y “) );        //platano y pera y manzana y fresa
toString(): Devuelve un string de todos los elementos separados por comas. Es equivalente a un join(”,”), sólo que todos los objetos en javascript tienen un método toString() asociado.
var miArray=new Array(”plátano”,”pera”,”manzana”,”fresa”);
var str=miArray.toString();    //platano,pera, manzana, fresa
pop(): Elimina el último elemento del array y devuelve ese elemento. Este método modifica la longitud total del array, así que hay que tener precaución con él en bucles o iteraciones.
var miArray=new Array(”plátano”,”pera”,”manzana”,”fresa”);
var long1=miArray.length;        // long1=4
var ultimo=miArray.pop();        // ultimo=”fresa”
var long2=miArray.length;        // long2=3
shift(): Es como el pop(), sólo que en vez de actuar en el último elemento actúa en el primero, devolviendo este elemento. Obviamente también modifica la longitud del array en cuestión.
var miArray=new Array(”plátano”,”pera”,”manzana”,”fresa”);
var long1=miArray.length;        // long1=4
var primero=miArray.shift();    // primero=”plátano”
var long2=miArray.length;        // long2=3
push(elemento1, elemento2,…, elementok): El método push añade los elementos pasados por parámetro al final del array, y, por tanto, modificando su longitud total. Devuelve el total de elementos que resultan después de añadir, como si de un length hiciéramos después.
var miArray=new Array(”plátano”,”pera”,”manzana”,”fresa”);
var long1=miArray.length;        // long1=4
var nuevaLong=miArray.push(”sandía”,”melon”,”kiwi”);    //nuevaLong=7
var long2=miArray.length;        // long2=7
unshift(elemento1, elemento2,…, elementok): Igual que el push, sólo que añade los elementos especificados al principio del array, y devuelve la nueva longitud del array.
var miArray=new Array(”plátano”,”pera”,”manzana”,”fresa”);
var long1=miArray.length;        // long1=4
var nuevaLong=miArray.unshift(”sandía”,”melon”,”kiwi”);    //nuevaLong=7
var long2=miArray.length;        // long2=7
reverse(): Invierte los índices de los elementos del array. El primero será el último y el último el primero; el segundo será el penúltimo y el penúltimo será el segundo; y así sucesivamente.
var miArray=new Array(”plátano”,”pera”,”manzana”,”fresa”);
var miArrayAlReves=miArray.reverse();    // miArrayAlReves=["fresa","manzana","pera","plátano"];
slice(limite_inf, limite_sup): slice extrae (sin modificarlo) una porción del array original. Así limite_inf es el índice del primer elemento que se debe extraer y limite_sup es el índice del último elemento que se debe extraer más una unidad.
var miArray=new Array(”plátano”,”pera”,”manzana”,”fresa”,”uva”,”sandía”,”melon”,”kiwi”);
var miArray2=miArray.slice(2,5);        //manzana,fresa, uva
splice(indice_inicial, num_elementos[, elemento1, elemento2,..., elementok]): Este es probablemente el método más complejo de los arrays. Es capaz de eliminar elementos y de añadir nuevos elementos también. Modificará por lo general la longitud del array (a no ser que añadamos el mismo número de elementos que eliminemos).
indice_inicial: Es un número entero que indica a partir de qué elemento comenzamos o a borrar o a insertar elementos en el array.
num_elementos: Es un número que indica cuántos elementos del array eliminamos a partir de indice_inicial. Si es un 0 debemos especificar nuevos elementos obligatoriamente y splice no devuelve nada. Si es 1 splice devolverá ese elemento eliminado, y si es mayor de 1 splice devolverá un array con los elementos eliminados.
elemento1, elemento2,…, elementok: Son los parámetros (opcionales) que especifican los nuevos elementos del array que se añadirán en la posición indice_inicial.
var miArray=new Array(”plátano”,”pera”,”manzana”,”fresa”,”uva”,”sandía”,”melon”,”kiwi”);
 
miArray.splice(0,0,”naranja”,”mandarina”,”pomelo”);
// miArray=naranja, mandarina, pomelo, plátano, pera, manzana, fresa, uva, sandía, melon, kiwi
 
var elementoPera=miArray.splice(4,1);        // elementoPera=pera
//miArray=naranja, mandarina, pomelo, plátano, manzana, fresa, uva, sandía, melon, kiwi
 
var fresa_uva_sandia=miArray.splice(5,3);    // fresa_uva_sandia=fresa, uva, sandía
//miArray=naranja, mandarina, pomelo, plátano, manzana, melon, kiwi
 
miArray.splice(2,3,”lenguado”,”merluza”,”sardina”,”caballa”);
//miArray=naranja, mandarina, lenguado, merluza, sardina, caballa, melon, kiwi
sort([funcion_comparacion]): Uno de los pocos métodos por defecto que recibe una función como parámetro. Ordena el array según el criterio que contenga funcion_comparacion. Podemos ordenar de menor a mayor números, alfabéticamente letras… etc. El parámetro es opcional; por defecto sort() ordena de menor a mayor y alfabéticamente, anteponiendo los números a las letras y las mayúsculas.
funcion_comparacion: Es una función que contiene dos parámetros obligados, que serán los elementos del array a comparar. Según lo que devuelva esta función, sort interpretara una cosa u otra:
funcion_comparacion(a, b)<0 –> a<b
funcion_comparacion(a, b)=0 –> a=b
funcion_comparacion(a, b)>0 –> a>b
Para ordenar elementos existen otros algoritmos, algunos más legibles otros más eficaces: El ordenamiento por mezcla, ordenamiento de burbuja, ordenamiento Shell y el ordenamiento quicksort son algunos de ellos.
 El objeto Boolean  El objeto Boolean tiene dos valores posibles, true o false. Estos valores se pueden operar con los Operadores de relación.

Nos sirven para comprender las expresiones que se evalúan como boleanas, como las que puede haber entre los paréntesis de un if o de un while… Al fin y al cabo una expresión boleana.

Siempre podemos crear una expresión boleana y asignársela a una variable con el constructor:

var a = new Boolean(”expresión”);
Donde expresión determinara un valor true o false para la variable a.

Toda expresión que sea una variable vacía, un string vacío, un null, un undefined, un número igual a 0, una referencia a un objeto del documento que no exista… etc darán como resultado un boleano false. En caso contrario, un string, un número darán resultado true.

//Valores que dan a la variable a un valor false
a = new Boolean();        
a = new Boolean(0);    
a = new Boolean(”");    
a = new Boolean(document.getElementById(”no_existo”));
a = new Boolean(undefined);   
a = new Boolean(null);   
a = new Boolean(false);   
 
//Valores que dan a la variable a un valor true
a = new Boolean(document.getElementById(”existo”));
a = new Boolean(-4);
a = new Boolean(true);

 El objeto Date  El objeto Date almacena una fecha de la que es posible extraer datos concretos. Incluso existen funciones creadas por desarrolladores para operar con fechas, ya que predeterminadamente JavaScript no las implementa, al contrario que PHP.
 El objeto Function  El objeto Function se refiere a un “subprograma” dentro del propio script. Es un conjunto de sentencias que se utilizan básicamente para reutilizar código.Esta objeto es se asemeja a las funciones en otros lenguajes como Java.
 El objeto Image  El objeto Image contiene una imagen.
 El objeto Number  El objeto Number se refiere a una variable numérica.
 El objeto Object  El Object de por sí es un objeto creado por nosotros, o un objeto diferente pudiendo ser este un objeto del DOM.
 El objeto Option  Option se refiere a un elemento HTML que se incluye dentro de los <SELECT>. Es una opción en una lista desplegable. Podremos crear instancias del objeto option y añadirlas a un <SELECT> del documento gracias al DOM.
 El objeto RegExp  El objeto RegExp es una Expresión regular. Su sintaxis es universal, se explaya extensamente en dicho artículo.
 El objeto String  El objeto String es una cadena de caracteres. En JavaScript no existen Char, por lo que un solo carácter será del tipo String.
 Estructuras de Control 
 if…else…  If es una sentencia de control que permite a JavaScript hacer decisiones, esto quiere decir que ejecutará sentencias condicionalmente. Sintaxis:

if (condición) {
:    expresión_1;
}else {
    expresión_2;
}
La condición es evaluada y si el resultado es verdadero, la expresión_1 se ejecuta. Si el resultado de la condición_1 es falso, la expresión_1 no se ejecuta y ejecuta la expresión_2.

Un sinónimo del código anteriormente sería el siguiente:

(condición)?(expresión_1):(expresión_2);

 Bucle While  while (condición) {
:    ‘’sentencias”
 
}
Mientras la condición sea cierta se ejecutan las sentencias.
 do…while…  do {
:    ‘’sentencias”
} while (condición);
Se ejecutan primero las sentencias y luego se evalúa la condición. Mientras la condición sea cierta se seguirán ejecutando las sentencias.
 Bucle for  for ([variables iniciales]; [condición de repetición]; [expresión de modificación]) {
    ‘’sentencias”
}
Primero se ejecuta [variables iniciales], una lista de variables (o una sola) separadas por comas con sus valores correspondientes. Después si la [condición de repetición] es verdadera se ejecuta sentencias, y después se evalúa [expresión de modificación], la cual suele variar el valor de una de las variables definidas en [variables iniciales]. Se repite el bucle verificación de [condición de repetición], ejecución de sentencias y [expresión de modificación] indefinidamente hasta que [condición de repetición] sea falsa.
 Bucle for…in  for (variable in objeto) {
    ‘’sentencias”
}
Para cada uno de los valores del objeto se ejecutan las sentencias. Útil para recorrer arrays.
 Declaración switch  switch( ”expresión” ){
:    case ”valorX” :
:         ‘’sentencias”;
:         break;
:    case ”valorX” :
:         ‘’sentencias”;
:         break;
:    …
:    default :
:         ‘’sentencias”;
:         break;
}
En expresión se da una variable o una condición y en cada case se escribe en valorX el valor que puede tomar esa variable o expresión. En caso de coincidir con algún valorX se ejecuta sentencias dentro de ese case hasta topar con un break. Si no coincide con ningún valor la expresión se ejecuta el código en la sección default.

COMO REGALO:

http://www.4shared.com/file/50155619/4932d5a1/introduccion_javascript.html

ESPERO COMENTARIOS.

¿QUE ES AJAX?

•04 / 06 / 2008 • Deja un comentario

Bueno este es mi primer post ya de programacion lo dedico a las personas que en ciertos momentos me preguntan ¿que es AJAX? me puse a inverstigar y encontre resumiendo todo lo que encontre en internet:

 Ajax no es una tecnología en si misma, sino un término que se refiere al uso de un grupo de tecnologías.

Las aplicaciones tradicionales web esencialmente envían formularios, completados por un usuario, a un servidor web. Este responde enviando una nueva página web. Dado que el servidor debe enviar una nueva página cada vez, las aplicaciones corren más lenta y torpemente que sus contrapartes nativas.

pencil_by_eyebiz.jpg
Photo credit: Jesper Noer

Las aplicaciones Ajax, por el contrario, pueden enviar peticiones al servidor web para traer solamente los datos que son necesarios, generalmente utilizando SOAP o algún otro dialecto de servicio web basado en XML.

En el cliente, JavaScript procesa la respuesta del servidor web.

El resultado es una interfase con mayor respuesta, dado que la cantidad de datos intercambiados entre el navegador web y el servidor web es reducida enormemente. También se ahorra mucho tiempo de procesamiento en el servidor web, ya que una parte importante de dicho procesamiento se realiza en el lado del cliente.

(Fuente: Wikipedia)

Esta es una excelente introducción de Eddie Traversa a su Tutorial Ajax, ¿Para Qué Es Bueno?, el cual no solamente provee una excelente introducción al principiante, sino que además analiza técnicas de codificación específicas y da ejemplos:

Para mi manera de pensar, Ajax es más una progresión natural de un conjunto existente de técnicas que algo completamente nuevo.

Inclusive dentro de esa progresión, las cosas son marcadamente diferentes respecto a años anteriores en un par de áreas claves:
    * Ajax provee un mecanismo para mezclar y hacer coincidir xml con xhtml.

    * Ajax reduce significativamente tener que traer cosas continuamente de un servidor (el scripting remoto iframe es comparable razonablemente aquí).

    * Ajax supera algunos cuellos de botella de velocidad que el desarrollo web tradicional también ha caído preso. En muchos casos un sitio basado en Ajax cargará más rápido comparado con un sitio web tradicional.

    * Cuando esta bien hecho, reduce significativamente los tiempos de carga inicial.

Antes de proceder, hay que destacar que Ajax no es una panacea. Tiene algunos problemas que necesitan ser superados para que continúe madurando. Pero es un campo promisorio para involucrarse y a medida que pasen los años, probablemente va a afectar en gran medida la forma en la cual pensamos cómo construir páginas y aplicaciones Web.

También es necesario aclarar que Ajax no es una tecnología en si sino una técnica que combina bien con otras tecnologías y técnicas. Por ejemplo XML, DHTML, CSS, XHTML.

De hecho, Ajax realmente es DHTML con el objeto xmlhttprequest incrustado. Es asombroso pensar a como un objeto puede cambiar el todo el campo de juego.

Tal como están las cosas actualmente en el campo Ajax, casi tenemos dos extremos ocurriendo.

En un extremo del continuum tenemos desarrolladores construyendo todo tipo de complicadas etiquetas JavaScript que en muchos casos son innecesarias y excesivas.

En el otro extremo de la escala tenemos pequeños ejemplos flotando alrededor de la web que demuestran cómo cargar XML en un documento o hacer algún tipo de procesamiento de formularios centrados en Ajax.

Mientras que ambos extremos del espectro tienen una parte para jugar en el progreso de la web, no estoy convencido que los principios de Ajax y cómo pueden ser mejor aprovechados por un desarrollador hayan sido transmitidos de la manera apropiada.

Ajax en si es una técnica, pero para usar efectivamente la técnica uno tiene que familiarizarse con la filosofía que está detrás de la misma.

En otras palabras, no es simplemente el uso de la técnica lo que es importante, sino más bien desarrollar una mentalidad y abordaje al desarrollo web que es central.

A la fecha, he mencionado el término Ajax un número de veces pero no he descrito el objeto central que hace que Ajax sea Ajax.

En el corazón de Ajax está el objeto xmlhttprequest y su equivalente ActiveX de Microsoft.

Es éste el objeto que permite que los datos sean transferidos asincrónicamente.

En el caso de que usted no tenga una idea clara de lo que significa asincrónico, es la capacidad de manejar procesos independientemente de otros procesos. Sincrónico, lo opuesto de asincrónico, entonces significa que el proceso depende de otro proceso. Para ilustrar lo utilicemos un escenario clásico de página web.

Supongamos que tenemos la página A y en esa página tenemos un número de elementos, incluyendo un par de etiquetas script y de estilo. Con la transferencia sincrónica de datos la etiqueta script necesitan ser analizado antes de que sea analizado el siguiente elemento. De esta forma el siguiente elemento para hacer analizado por el navegador depende de la etiqueta script que ha sido analizado primero. Efectivamente estamos creando un cuello de botella en una conexión entre la página web y el navegador. Las etiquetas de estilos y los elementos de enlace en la sección head del documento crea el mismo efecto de cuello de botella. Ellos tienen que ser analizados uno a la vez antes de que otros elementos de la página puedan ser descargados.

Una vez que han sido analizados, los elementos en la sección body pueden usar conexiones concurrentes para acelerar el proceso de descarga. Por ejemplo, muchos servidores manejan entre 2 a 4 conexiones concurrentes entre página web y navegador.

Consecuentemente, esto significa que 2 a 4 imágenes u otros elementos de página podrá ser cargados al mismo tiempo. Aún antes que el proceso comience lo que está entre las etiquetas head tiene que ser analizado primero, lo cual puede demorar considerablemente la carga de las páginas web.

Con más razón si usted está utilizando múltiples CSS y etiquetas JavaScript.

Casi todas las páginas web y blogs en la Internet utilizan este método. No es difícil ver porque esto puede ser un problema en términos de aumentar la velocidad de carga de la página.

Los métodos de carga asincrónicos difieren de este escenario porque el proceso de carga está manejado independientemente de cada uno de los otros y hasta un grado importante sufrirá el cuello de botella del diseño tradicional de páginas Web.

Lo central de esta técnica es utilizar inicialmente JavaScript al mínimo y luego empujar todas las etiquetas relacionadas en la sección head, incluyendo el resto de las etiquetas JavaScript, CSS etc. a través de un objeto xmlhttprequest.

Este método utiliza múltiples conexiones en vez de la única que usan muchas página web tradicionales y por lo tanto acelera las cosas considerablemente.

 

COMO REGALO LES DEJO UN MANUAL DE AJAX EN ESPAÑOL:

http://www.4shared.com/file/50155702/c639575f/introduccion_ajax.html

ESPERO COMENTARIOS.