SlideShare una empresa de Scribd logo
1 de 47
Ext JS Introducción Mayer Horna García copyright © 2010 [email_address] [email_address] http://www.linkedin.com/in/mayerhorna http://mayerhorna.blogspot.com @mayerhorna
Objetivos ,[object Object],[object Object],[object Object],[object Object]
Temas ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Comportamiento de una aplicación de escritorio BD BD SELECT * FROM Provincia  WHERE departamento_id = 2 Servidor Cliente departamentoId=2 request MantenimientoCalles_jsp.html <<build>> MantenimientoCalles.jsp response Comportamiento de una aplicación de web departamentoId=2 SELECT * FROM Distrito WHERE provincia_id = 12  SELECT * FROM Calle WHERE distrito_id = 23 provinciaId=12 distritoId=23 SELECT * FROM Provincia  WHERE departamento_id = 2 distritoId=23 request MantenimientoCalles_jsp.html <<build>> MantenimientoCalles.jsp SELECT * FROM Calle WHERE distrito_id = 23 response SELECT * FROM Provincia  WHERE departamento_id = 2 i1.1 provincia distrito calle
Comportamiento de una aplicación Web + AJAX BD Servidor Cliente request response SELECT * FROM Provincia  WHERE departamento_id = 2 Motor AJAX Objeto  XMLHttpRequest departamentoId=2 new XMLHttpRequest() request response SELECT * FROM Calle WHERE distrito_id = 23 distritoId=23 new XMLHttpRequest() i1.2 i2 <?xml version=amp;quot;1.0amp;quot; ?> <provincias> <provincia> Huara </provincia> <provincia> Trujillo </provincia> <provincia> Chimbote </provincia> </provincias> provincias.xml <?xml version=amp;quot;1.0amp;quot; ?> <provincias> <provincia> Huara </provincia> <provincia> Trujillo </provincia> <provincia> Chimbote </provincia> </provincias> distrito.xml
AJAX “Asynchronous Javascript y XML” (JavaScript asíncrono y XML)  ,[object Object],[object Object]
Javascript ,[object Object],[object Object],[object Object]
JavaScript El problema de toda la vida… function  sendData(){ document.write(“Hola Mundo”); } myScript.js Código Fuente Intérprete public class Principal{ public static void main(String…a){ System.out.println(“Hola mundo”); } } JVM Principal.java J A V A S C R I P T J A V A Problema: Cada proveedor, lo interpreta a su manera  Existe un solo proveedor(SUN), quien se encarga de hacer las JVM para cada sistema operativo (Window, Linux, etc.)
XML ,[object Object],[object Object]
Estructura de un documento XML   ,[object Object],<?xml version=&quot;1.0“ encoding=“UTF-8” ?> <!DOCTYPE movimientos SYSTEM “movimientos.dtd&quot; [<!ELEMENT movimientos ( movimiento )*>]>  <movimientos>   <movimiento>   <fecha> 06/09/2008 </fecha>   <descripcion> Retiro por cajero </descripcion>   <monto> -100.00 </monto>   </movimiento>   <movimiento>   <fecha> 05/09/2008 </fecha>   <descripcion> Transferencia de otra cuenta </descripcion>   <monto> 320.00 </monto>   </movimiento> </movimientos> Y el DTD(Document Type Definition) para este XML sería: <?xml version=&quot;1.0&quot; enconding=“UTF-8” ?> <!-- Este es el DTD de Edit_Mensaje --> <!ELEMENT movimiento (fecha, descripcion, monto)*>    <!ELEMENT fecha (#PCDATA)>   <!ELEMENT descripcion (#PCDATA)>    <!ELEMENT monto (#PCDATA)>  movimientos.xml movimientos.dtd
CSS (Cascading Style Sheets) ,[object Object],[object Object],<style type= &quot;text/css&quot; > h1 em  {color: gray;} ul ol ul em  {color:gray;} td.sidebar  {background-color:#000066;} td.sidebar a:link  {color:#FFFFFF;} .advertencia  {font-weight:bold;} p.advertencia  {font-style:italic;} #miEstiloID  { background:#000000;} </style>
DOM ,[object Object],[object Object],La siguiente imagen muestra una parte del nodo del árbol y la relación entre los nodos:
Conversación tradicional Cliente - Servidor
Interacción AJAX  Cliente - Servidor
Flujo del proceso de una aplicación AJAX
Respuestas del servidor (HTTP Response) Código de Status Razón Explicación 200 OK Petición correcta 204 No Content Documento sin datos 301 Moved Permanently Recurso Movido 401 Not Authorized Necesita autentificación 403 Forbidden Rechazada por servidor 404 Not Found No existe en servidor 408 Request Timeout Tiempo sobrepasado 500 Server Error Error en el servidor
El objeto XMLHTTPRequest ,[object Object],[object Object],[object Object],[object Object]
Propiedades del objeto XMLHTTPRequest  Propiedades Descripción onreadystatechange Determina que función será llamada cuando la propiedad readyState del objeto cambie. readyState Número entero que indica el status de la petición: 0 = No iniciada 1 = Cargando 2 = Cargado 3 = Interactivo 4 = Completado responseText Datos devueltos por el servidor en forma de string de texto responseXML Datos devueltos por el servidor expresados como un objeto documento. status Código estatus HTTP devuelto poro el servidor: 200 = OK (Petición correcta) 204 = No Content (Documento sin datos) 301 = Moved Permanently (Recurso Movido) 401 = Not Authorized (Necesita autenticación) 403 = Forbidden (Rechazada por servidor) 404 = Not Found (No existe en servidor) 408 = Request Timeout (Tiempo sobrepasado) 500 = Server Error (Error en el servidor)
Métodos del objeto XMLHTTPRequest  Propiedades Descripción abort() Detiene la petición actual. getAllResponseHeaders() Devuelve todas las cabeceras como un string. getResponseHeader(x) Devuelve el valor de la cabecera x como un string. open(‘method’, ’URL’, ’a’ ) Especifica el método HTTP (por ejemplo, GET o POST), la URL objetivo, y si la petición debe ser manejada asíncronamente (Si, a=‘True’ defecto; No, a=‘false’.) send(content) Envía la petición setRequestHeader( ‘label’ , ’value’ ) Configura un par parámetro y valor label=value y lo asigna a la cabecera para ser enviado con  la petición.
Clases y Objetos en JavaScript var  oCliente  =  new   Cliente(); oCliente.dni  =  &quot;43035678&quot; ; oCliente.nombres  =  &quot;Luis&quot; ; oCliente.apellidos  =  &quot;Perez   A.&quot; ; alert( &quot;Hola &quot;  + oCliente. obtenerNombreCompleto() ); /** Clase Cliente **/ function  Cliente(){ this .dni = null; this .nombres = null; this .apellidos = null; this .obtenerNombreCompleto =  function (){   return   this.nombres  + &quot; &quot; +    this .apellidos; } } 1.1 Javascript  no es un lenguaje de  Programación Orientado a Objetos  propiamente dicho como  Java , pero gracias a que es basado en prototipos, se puede aplicar conceptos de programación orientada a objetos, En  Javascript  hay tres tipos de objetos: Objetos nativos de Javascript . Por ejemplo: Math, Date, Image, Number, String, Array, Object… Objetos de navegador . Aquellos que proporciona el navegador del cliente. Por ejemplo: window, document, forms...  Objetos definidos por el usuario : Son aquellos que define el propio programador.
Métodos y propiedades privadas var  oCliente  =  new   Cliente(); oCliente.nombres  =  &quot;Luis&quot; ;  oCliente.apellidos  =  &quot;Perez A.&quot; ; alert( &quot; DNI   &quot;  + oCliente.dni); // muestra undefined oCliente.setDni( &quot;44035698&quot; ); alert( &quot; DNI   &quot;  + oCliente.getDni() ); // muestra 44035698 //alert(oCliente.obtenerSoloNombre() ); // marcaría el siguiente error: “El objeto no acepta esta propiedad o metodo” /** Clase Cliente **/ function  Cliente(){ var  dni = null;   // propiedad privada this .nombres = null;   // propiedad pública this .apellidos = null; var  that =  this ;   // propiedad privada, almacena la referencia del objeto actual(this), para poder utilizarlo en métodos privados como sucede en obtenerSoloNombre(). function  obtenerSoloNombre(){  // método privado   return that.nombres; } this .obtenerNombreCompleto = function(){  // método público   return  this .nombres + &quot; &quot; +  this .apellidos; } this .setDni(dni){   this .dni = dni; } this .getDni(){ return  this .dni; } } 2.1 Para privatizar metodos y propiedades basta con ya no poner la palabra  this .  Para acceder a las propiedades privadas se deberá crear sus getters y setters como se estila hacer en lenguajes de programación OO
Herencia en JavaScript var oEmpleado  =  new Empleado(); oEmpleado.nombres  =  &quot;43035678&quot;; oEmpleado.apellidos  =  &quot;Luis&quot;; oEmpleado.salario = 3000; alert(&quot;Metodo del padre &quot; + oEmpleado.obtenerNombreCompleto() ); alert(&quot;Metodo del hijo &quot; + oEmpleado.obtenerSalario() ); /** Clase Persona **/ function  Persona(){ this .nombres = null; this .apellidos = null; this .obtenerNombreCompleto =  function (){   return  this .nombres   + &quot; &quot; +  this .apellidos; } } 3.1 La herencia en JavaScript no es explicita(no hay una palabra reservada para hacerlo así).  Pero logra este objetivo modificando el prototipo de la clase hija. /** Clase Cliente hereda de Persona **/ function  Empleado(){ this .codigo = null; this .salario = null; this .obtenerSalario =  function (){   return  this.salario; } } Empleado.prototype =  new  Persona();  /* Clona la funcionalidad de Persona en Empleado  */
JSON  (JavaScript Object Notation) ¿Que es? Basado en sintaxis  JavaScript Formato de datos muy ligero Especialmente basado en  Arrays literales y Objetos literales Alternativa al  formato XML
Objetos Literales Almacenan  información en pares nombre : valor color  :  “rojo”, Se puede acceder a Estas propiedades Mediante el nombre del objeto y la sintaxis de punto. Mediante corchetes y nombre  de la propiedad 4.1
Arrays Literales Formato de datos muy ligero [ y ] Y por encerrar lista de valores  serparados por comas [ “string”, 24 , true, null ] 5.1
Mezclar Literales Es posible mezclar  literales objeto y  array Array que contiene objetos 6,  7.1 , 7.2 , 8 Objetos que contienen arrays
Librerías AJAX ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ext JS ,[object Object],[object Object],[object Object]
Ext JS como solución RIA ,[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],Ext JS como solución RIA
[object Object],Ext JS – Lo que se viene
Ext JS dividido en 6 áreas de estudio
Licencias ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ext JS ,[object Object],[object Object],Donde encuentro Ext JS y su API  ?
Componentes GUI ,[object Object],Ext.form.TextField Ext.form.Label Ext.Button Ext.form.ComboBox Ext.form.HtmlEditor Ext.form.FormPanel
Componentes GUI ,[object Object],Ext.Toolbar Ext.Button Ext.grid.GridPanel Ext.Window Ext.grid.ColumnModel Ext.PagingToolbar
Componentes GUI ,[object Object]
Componentes GUI
Componentes GUI
Componentes GUI
Componentes GUI
Ext JS en acción ,[object Object],[object Object]
Ext JS en acción ,[object Object],[object Object]
Ext JS en acción ,[object Object],[object Object]
Ext JS en acción ,[object Object],[object Object]
Ext JS en acción ,[object Object],[object Object]
Links de ayuda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

Más contenido relacionado

La actualidad más candente (20)

An Introduction to the DOM
An Introduction to the DOMAn Introduction to the DOM
An Introduction to the DOM
 
JavaScript with Syntax & Implementation
JavaScript with Syntax & ImplementationJavaScript with Syntax & Implementation
JavaScript with Syntax & Implementation
 
CSS
CSSCSS
CSS
 
Creating and styling tables
Creating and styling tablesCreating and styling tables
Creating and styling tables
 
Cascading style sheets (CSS)
Cascading style sheets (CSS)Cascading style sheets (CSS)
Cascading style sheets (CSS)
 
CSS3 2D/3D transform
CSS3 2D/3D transformCSS3 2D/3D transform
CSS3 2D/3D transform
 
Css
CssCss
Css
 
Basic-CSS-tutorial
Basic-CSS-tutorialBasic-CSS-tutorial
Basic-CSS-tutorial
 
CSS Animations & Transitions
CSS Animations & TransitionsCSS Animations & Transitions
CSS Animations & Transitions
 
HTML5 & CSS3
HTML5 & CSS3 HTML5 & CSS3
HTML5 & CSS3
 
Flex box
Flex boxFlex box
Flex box
 
Introduction to sass
Introduction to sassIntroduction to sass
Introduction to sass
 
HTML Dasar : #5 Heading
HTML Dasar : #5 HeadingHTML Dasar : #5 Heading
HTML Dasar : #5 Heading
 
Le Wagon - Javascript for Beginners
Le Wagon - Javascript for BeginnersLe Wagon - Javascript for Beginners
Le Wagon - Javascript for Beginners
 
Bevywise IoT Platform
Bevywise IoT PlatformBevywise IoT Platform
Bevywise IoT Platform
 
REST Service Authetication with TLS & JWTs
REST Service Authetication with TLS & JWTsREST Service Authetication with TLS & JWTs
REST Service Authetication with TLS & JWTs
 
Html Form Controls
Html Form ControlsHtml Form Controls
Html Form Controls
 
Complete Lecture on Css presentation
Complete Lecture on Css presentation Complete Lecture on Css presentation
Complete Lecture on Css presentation
 
OOCSS, SMACSS or BEM?
OOCSS, SMACSS or BEM?OOCSS, SMACSS or BEM?
OOCSS, SMACSS or BEM?
 
Understanding the Web Page Layout
Understanding the Web Page LayoutUnderstanding the Web Page Layout
Understanding the Web Page Layout
 

Similar a 01 Ext Js Introduccion

Conceptos Introductorios Del Web 2
Conceptos Introductorios Del Web 2Conceptos Introductorios Del Web 2
Conceptos Introductorios Del Web 2Michelle Aguirre
 
Conceptos acerca de Ajax
Conceptos acerca  de AjaxConceptos acerca  de Ajax
Conceptos acerca de AjaxAlvaro Castillo
 
Introduccion Ajax V1.0
Introduccion Ajax V1.0Introduccion Ajax V1.0
Introduccion Ajax V1.0Arnulfo Gomez
 
Ruby y las arquitecturas orientadas a servicios
Ruby y las arquitecturas orientadas a servicios Ruby y las arquitecturas orientadas a servicios
Ruby y las arquitecturas orientadas a servicios Joaquín Salvachúa
 
Desarrollo de Aplicaciones con Microsoft Ajax 1.0 y Ajax Control Toolkit
Desarrollo de Aplicaciones con Microsoft Ajax 1.0 y Ajax Control ToolkitDesarrollo de Aplicaciones con Microsoft Ajax 1.0 y Ajax Control Toolkit
Desarrollo de Aplicaciones con Microsoft Ajax 1.0 y Ajax Control Toolkitpabloesp
 
Mootools Y Otros Frameworks JS
Mootools Y Otros Frameworks JSMootools Y Otros Frameworks JS
Mootools Y Otros Frameworks JSIan Monge Pérez
 
Desarrollo de aplicaciones empresariales con Java EE
Desarrollo de aplicaciones empresariales con Java EEDesarrollo de aplicaciones empresariales con Java EE
Desarrollo de aplicaciones empresariales con Java EEFernando Montaño
 
Introducción ASP .NET
Introducción ASP .NET Introducción ASP .NET
Introducción ASP .NET Universidad
 
Introducción a JQuery
Introducción a JQueryIntroducción a JQuery
Introducción a JQueryContinuum
 
Manual programacion - java - jsp & xml
Manual   programacion - java - jsp & xmlManual   programacion - java - jsp & xml
Manual programacion - java - jsp & xmlgilhorak
 

Similar a 01 Ext Js Introduccion (20)

Ajax Huancayo
Ajax HuancayoAjax Huancayo
Ajax Huancayo
 
Ajax
AjaxAjax
Ajax
 
Conceptos Introductorios Del Web 2
Conceptos Introductorios Del Web 2Conceptos Introductorios Del Web 2
Conceptos Introductorios Del Web 2
 
AJAX EN CURSO PHP
AJAX EN CURSO PHPAJAX EN CURSO PHP
AJAX EN CURSO PHP
 
Conceptos acerca de Ajax
Conceptos acerca  de AjaxConceptos acerca  de Ajax
Conceptos acerca de Ajax
 
Introduccion Ajax V1.0
Introduccion Ajax V1.0Introduccion Ajax V1.0
Introduccion Ajax V1.0
 
Ruby y las arquitecturas orientadas a servicios
Ruby y las arquitecturas orientadas a servicios Ruby y las arquitecturas orientadas a servicios
Ruby y las arquitecturas orientadas a servicios
 
PHP+Ajax
PHP+AjaxPHP+Ajax
PHP+Ajax
 
Servicios web
Servicios webServicios web
Servicios web
 
Javascript
JavascriptJavascript
Javascript
 
introduccion a Ajax
introduccion a Ajaxintroduccion a Ajax
introduccion a Ajax
 
Curso Jsp
Curso JspCurso Jsp
Curso Jsp
 
Desarrollo de Aplicaciones con Microsoft Ajax 1.0 y Ajax Control Toolkit
Desarrollo de Aplicaciones con Microsoft Ajax 1.0 y Ajax Control ToolkitDesarrollo de Aplicaciones con Microsoft Ajax 1.0 y Ajax Control Toolkit
Desarrollo de Aplicaciones con Microsoft Ajax 1.0 y Ajax Control Toolkit
 
Mootools Y Otros Frameworks JS
Mootools Y Otros Frameworks JSMootools Y Otros Frameworks JS
Mootools Y Otros Frameworks JS
 
Servicios web Extendido_error perl
Servicios web Extendido_error perlServicios web Extendido_error perl
Servicios web Extendido_error perl
 
Desarrollo de aplicaciones empresariales con Java EE
Desarrollo de aplicaciones empresariales con Java EEDesarrollo de aplicaciones empresariales con Java EE
Desarrollo de aplicaciones empresariales con Java EE
 
Introducción ASP .NET
Introducción ASP .NET Introducción ASP .NET
Introducción ASP .NET
 
Introducción a JQuery
Introducción a JQueryIntroducción a JQuery
Introducción a JQuery
 
Clase 4 JavaScript Básico
Clase 4 JavaScript BásicoClase 4 JavaScript Básico
Clase 4 JavaScript Básico
 
Manual programacion - java - jsp & xml
Manual   programacion - java - jsp & xmlManual   programacion - java - jsp & xml
Manual programacion - java - jsp & xml
 

01 Ext Js Introduccion

  • 1. Ext JS Introducción Mayer Horna García copyright © 2010 [email_address] [email_address] http://www.linkedin.com/in/mayerhorna http://mayerhorna.blogspot.com @mayerhorna
  • 2.
  • 3.
  • 4. Comportamiento de una aplicación de escritorio BD BD SELECT * FROM Provincia WHERE departamento_id = 2 Servidor Cliente departamentoId=2 request MantenimientoCalles_jsp.html <<build>> MantenimientoCalles.jsp response Comportamiento de una aplicación de web departamentoId=2 SELECT * FROM Distrito WHERE provincia_id = 12 SELECT * FROM Calle WHERE distrito_id = 23 provinciaId=12 distritoId=23 SELECT * FROM Provincia WHERE departamento_id = 2 distritoId=23 request MantenimientoCalles_jsp.html <<build>> MantenimientoCalles.jsp SELECT * FROM Calle WHERE distrito_id = 23 response SELECT * FROM Provincia WHERE departamento_id = 2 i1.1 provincia distrito calle
  • 5. Comportamiento de una aplicación Web + AJAX BD Servidor Cliente request response SELECT * FROM Provincia WHERE departamento_id = 2 Motor AJAX Objeto XMLHttpRequest departamentoId=2 new XMLHttpRequest() request response SELECT * FROM Calle WHERE distrito_id = 23 distritoId=23 new XMLHttpRequest() i1.2 i2 <?xml version=amp;quot;1.0amp;quot; ?> <provincias> <provincia> Huara </provincia> <provincia> Trujillo </provincia> <provincia> Chimbote </provincia> </provincias> provincias.xml <?xml version=amp;quot;1.0amp;quot; ?> <provincias> <provincia> Huara </provincia> <provincia> Trujillo </provincia> <provincia> Chimbote </provincia> </provincias> distrito.xml
  • 6.
  • 7.
  • 8. JavaScript El problema de toda la vida… function sendData(){ document.write(“Hola Mundo”); } myScript.js Código Fuente Intérprete public class Principal{ public static void main(String…a){ System.out.println(“Hola mundo”); } } JVM Principal.java J A V A S C R I P T J A V A Problema: Cada proveedor, lo interpreta a su manera Existe un solo proveedor(SUN), quien se encarga de hacer las JVM para cada sistema operativo (Window, Linux, etc.)
  • 9.
  • 10.
  • 11.
  • 12.
  • 14. Interacción AJAX Cliente - Servidor
  • 15. Flujo del proceso de una aplicación AJAX
  • 16. Respuestas del servidor (HTTP Response) Código de Status Razón Explicación 200 OK Petición correcta 204 No Content Documento sin datos 301 Moved Permanently Recurso Movido 401 Not Authorized Necesita autentificación 403 Forbidden Rechazada por servidor 404 Not Found No existe en servidor 408 Request Timeout Tiempo sobrepasado 500 Server Error Error en el servidor
  • 17.
  • 18. Propiedades del objeto XMLHTTPRequest Propiedades Descripción onreadystatechange Determina que función será llamada cuando la propiedad readyState del objeto cambie. readyState Número entero que indica el status de la petición: 0 = No iniciada 1 = Cargando 2 = Cargado 3 = Interactivo 4 = Completado responseText Datos devueltos por el servidor en forma de string de texto responseXML Datos devueltos por el servidor expresados como un objeto documento. status Código estatus HTTP devuelto poro el servidor: 200 = OK (Petición correcta) 204 = No Content (Documento sin datos) 301 = Moved Permanently (Recurso Movido) 401 = Not Authorized (Necesita autenticación) 403 = Forbidden (Rechazada por servidor) 404 = Not Found (No existe en servidor) 408 = Request Timeout (Tiempo sobrepasado) 500 = Server Error (Error en el servidor)
  • 19. Métodos del objeto XMLHTTPRequest Propiedades Descripción abort() Detiene la petición actual. getAllResponseHeaders() Devuelve todas las cabeceras como un string. getResponseHeader(x) Devuelve el valor de la cabecera x como un string. open(‘method’, ’URL’, ’a’ ) Especifica el método HTTP (por ejemplo, GET o POST), la URL objetivo, y si la petición debe ser manejada asíncronamente (Si, a=‘True’ defecto; No, a=‘false’.) send(content) Envía la petición setRequestHeader( ‘label’ , ’value’ ) Configura un par parámetro y valor label=value y lo asigna a la cabecera para ser enviado con la petición.
  • 20. Clases y Objetos en JavaScript var oCliente = new Cliente(); oCliente.dni = &quot;43035678&quot; ; oCliente.nombres = &quot;Luis&quot; ; oCliente.apellidos = &quot;Perez A.&quot; ; alert( &quot;Hola &quot; + oCliente. obtenerNombreCompleto() ); /** Clase Cliente **/ function Cliente(){ this .dni = null; this .nombres = null; this .apellidos = null; this .obtenerNombreCompleto = function (){ return this.nombres + &quot; &quot; + this .apellidos; } } 1.1 Javascript no es un lenguaje de Programación Orientado a Objetos propiamente dicho como Java , pero gracias a que es basado en prototipos, se puede aplicar conceptos de programación orientada a objetos, En Javascript hay tres tipos de objetos: Objetos nativos de Javascript . Por ejemplo: Math, Date, Image, Number, String, Array, Object… Objetos de navegador . Aquellos que proporciona el navegador del cliente. Por ejemplo: window, document, forms... Objetos definidos por el usuario : Son aquellos que define el propio programador.
  • 21. Métodos y propiedades privadas var oCliente = new Cliente(); oCliente.nombres = &quot;Luis&quot; ; oCliente.apellidos = &quot;Perez A.&quot; ; alert( &quot; DNI &quot; + oCliente.dni); // muestra undefined oCliente.setDni( &quot;44035698&quot; ); alert( &quot; DNI &quot; + oCliente.getDni() ); // muestra 44035698 //alert(oCliente.obtenerSoloNombre() ); // marcaría el siguiente error: “El objeto no acepta esta propiedad o metodo” /** Clase Cliente **/ function Cliente(){ var dni = null; // propiedad privada this .nombres = null; // propiedad pública this .apellidos = null; var that = this ; // propiedad privada, almacena la referencia del objeto actual(this), para poder utilizarlo en métodos privados como sucede en obtenerSoloNombre(). function obtenerSoloNombre(){ // método privado return that.nombres; } this .obtenerNombreCompleto = function(){ // método público return this .nombres + &quot; &quot; + this .apellidos; } this .setDni(dni){ this .dni = dni; } this .getDni(){ return this .dni; } } 2.1 Para privatizar metodos y propiedades basta con ya no poner la palabra this . Para acceder a las propiedades privadas se deberá crear sus getters y setters como se estila hacer en lenguajes de programación OO
  • 22. Herencia en JavaScript var oEmpleado = new Empleado(); oEmpleado.nombres = &quot;43035678&quot;; oEmpleado.apellidos = &quot;Luis&quot;; oEmpleado.salario = 3000; alert(&quot;Metodo del padre &quot; + oEmpleado.obtenerNombreCompleto() ); alert(&quot;Metodo del hijo &quot; + oEmpleado.obtenerSalario() ); /** Clase Persona **/ function Persona(){ this .nombres = null; this .apellidos = null; this .obtenerNombreCompleto = function (){ return this .nombres + &quot; &quot; + this .apellidos; } } 3.1 La herencia en JavaScript no es explicita(no hay una palabra reservada para hacerlo así). Pero logra este objetivo modificando el prototipo de la clase hija. /** Clase Cliente hereda de Persona **/ function Empleado(){ this .codigo = null; this .salario = null; this .obtenerSalario = function (){ return this.salario; } } Empleado.prototype = new Persona(); /* Clona la funcionalidad de Persona en Empleado */
  • 23. JSON (JavaScript Object Notation) ¿Que es? Basado en sintaxis JavaScript Formato de datos muy ligero Especialmente basado en Arrays literales y Objetos literales Alternativa al formato XML
  • 24. Objetos Literales Almacenan información en pares nombre : valor color : “rojo”, Se puede acceder a Estas propiedades Mediante el nombre del objeto y la sintaxis de punto. Mediante corchetes y nombre de la propiedad 4.1
  • 25. Arrays Literales Formato de datos muy ligero [ y ] Y por encerrar lista de valores serparados por comas [ “string”, 24 , true, null ] 5.1
  • 26. Mezclar Literales Es posible mezclar literales objeto y array Array que contiene objetos 6, 7.1 , 7.2 , 8 Objetos que contienen arrays
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32. Ext JS dividido en 6 áreas de estudio
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.