Capacidades del Core de Sencha ExtJS 6.0

Dentro de las multiples capacidades de Sencha ExtJS hay que destacar que hay utilidades que simplifican muchas cosas y nuevas implementaciones como son Promises para Ajax que son destacables esfuerzos por brindar facilidades al desarrollador.

Capacidades Heredadas de Sencha ExtJS

Dialogo Rotatorio

Dialogo Rotatorio

Desde implementaciones anteriores podemos encontrar estas caracteristicas que nos pueden ser muy utiles en multiples casos como son:

Clases .- El sistema de clases es una caracteristica que emula la creacion de clases en javascript de un modo parecido a crear clases en otros lenguajes de programacion.

Herencia .– El sistema  de clases permite la definicion de clases que puedan tener herencia haciendo mucho mas sencilla la codificacion y reuso de codigo con Sencha ExtJS.

Singleton .- Esta caracteristica es muy poco comun en javascript debido al modo del alcance de las variables de javascript, sin embargo en Sencha ExtJS se puede usar para muchas cosas como pueden ser constantes o funciones estaticas que son muy utiles para las implementaciones de Interfaces de usuario.

Alias .- Esta caracteristica nos permite tener una creacion de objetos en funcion de los alias de cada componente de interfaz grafica, facilitando el uso de las clases en la implementacion de codigo sencillo.

Video Explicativo en el siguiente Link: https://www.youtube.com/watch?v=U0Gt7NIu5jQ

 Capacidades Nuevas de Sencha ExtJS 6

Dentro de Sencha ExtJS 6 se puede destacar lo siguiente:

Promises .-  Primero que nada, para este tema se necesita explicar un poco de como funciona ajax.

Como bien sabemos ajax funciona de forma asincrona osea que funciona independientemente a las llamadas propias de la aplicacion corriendo en el momento, por tanto no tiene relacion directa con el hilo de ejecucion de nuestra aplicacion pues corre de modo independiente para no paralizar nuestra aplicacion en todo caso aplicacion web para el caso que se discute aca. Esto en algunos casos trae latencias a la aplicacion si los datos, que estamos tratando de traer a nuestra aplicacion por medio de ajax son muy pesados o bien si nuestra conexion al servidor de datos esta teniendo una gran latencia para procesar y mandar los datos a la aplicacion cliente web, por tanto aca el problema es como dividir el problema y afrontarlo de la forma mas facil.

Futures y Promises

Ajax y promises

Ajax y promises

Los Futures y Promises se originaron en la programación funcional y paradigmas relacionados (como la programación lógica ) para desacoplar un valor ( un future ) a partir de la forma en que se calculó ( una promise ) , lo que permite el cálculo se haga de forma más flexible , especialmente mediante la paralelización. Más tarde se encontró que el uso de la computación distribuida , en la reducción de la latencia de ida y vuelta comunicación. Más recientemente, se ha ganado popularidad , permitiendo escribir programas asíncronos en estilo directo , en lugar de en el estilo de continuación de paso.

Entonces basados en las definiciones podemos concluir que Promises y Futures como caracteristica de un Framework Frontend como Sencha ExtJS nos permite desarrollar una programacion mas especial, para el caso de Ajax puesto que tiene un modo de ejecucion paralela que particularmente sin seguir un patron de programacion tendria como consecuencia directa en el codigo un codigo espagueti ademas de la complejidad de codificacion de este tipo de codigo.

Como se logra todo esta maravilla de implementacion mediante Sencha ExtJS, esa es la pregunta mas directa ante esta implementacion y la comprension del funcionamiento y las ventajas de la misma. Segun como se deberia entender esta implementacion desacopla la implementacion tomando cada uno de los pasos ejecutados en Ajax como un objeto independiente con sus correspondientes propiedades, funcionalidades y usos por tanto, en Sencha ExtJS se puede encontrar que un Objeto Promise nos permite tener un codigo como esto:

function getAjax (url) {
// The function passed to Ext.Promise() is called immediately to start
// the asynchronous action.
//
return new Ext.Promise(function (resolve, reject) {
Ext.Ajax({
url: url,success: function (response) {
// Use the provided “resolve” method to deliver the result.
//
resolve(response.responseText);
},

failure: function (response) {
// Use the provided “reject” method to deliver error message.
//
reject(response.status);
}
});
});
}

getAjax(‘http://stuff’).then(function (content) {
// content is responseText of ajax response
});

Donde por la implementacion que podemos observar en este caso, se puede tomar en consideracion cada objeto de forma independiente y ademas se puede derivar cada paso de ajax de una forma sencilla al controller o funcion que debe ejecutar acciones correspondientes a cada evento en nuestra llamada ajax. Para cada paso o posible curso de accion tendremos una posibilidad como se puede observar en el uso de los metodos resolve para retorno de datos exitosos y tambien reject para fallos en la devolucion de datos.

Escrito por Christian Portilla

Link del Video

 

 

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s