SlideShare ist ein Scribd-Unternehmen logo
1 von 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]

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Html
HtmlHtml
Html
 
CAEG IT-B.pptx
CAEG IT-B.pptxCAEG IT-B.pptx
CAEG IT-B.pptx
 
Html basics
Html basicsHtml basics
Html basics
 
Tài liệu sử dụng máy cắt plasma cắt laser sheetcam
Tài liệu sử dụng máy cắt plasma cắt laser sheetcamTài liệu sử dụng máy cắt plasma cắt laser sheetcam
Tài liệu sử dụng máy cắt plasma cắt laser sheetcam
 
Luận án: Phát triển giảng viên ngành công tác xã hội trong trường ĐH
Luận án: Phát triển giảng viên ngành công tác xã hội trong trường ĐHLuận án: Phát triển giảng viên ngành công tác xã hội trong trường ĐH
Luận án: Phát triển giảng viên ngành công tác xã hội trong trường ĐH
 
Luận văn: Các nhân tố ảnh hưởng đến sự hài lòng trong công việc, HAY
Luận văn: Các nhân tố ảnh hưởng đến sự hài lòng trong công việc, HAYLuận văn: Các nhân tố ảnh hưởng đến sự hài lòng trong công việc, HAY
Luận văn: Các nhân tố ảnh hưởng đến sự hài lòng trong công việc, HAY
 
Lecture 2 introduction to html
Lecture 2  introduction to htmlLecture 2  introduction to html
Lecture 2 introduction to html
 
Nâng Cao Chất Lượng Phục Vụ Của Nhà Hàng Buffet Nineteen Restaurant.docx
Nâng Cao Chất Lượng Phục Vụ Của Nhà Hàng Buffet Nineteen Restaurant.docxNâng Cao Chất Lượng Phục Vụ Của Nhà Hàng Buffet Nineteen Restaurant.docx
Nâng Cao Chất Lượng Phục Vụ Của Nhà Hàng Buffet Nineteen Restaurant.docx
 
Đề tài: Xây dựng website bán hàng cho công ty thương mại, HAY
Đề tài: Xây dựng website bán hàng cho công ty thương mại, HAYĐề tài: Xây dựng website bán hàng cho công ty thương mại, HAY
Đề tài: Xây dựng website bán hàng cho công ty thương mại, HAY
 
Đề tài: Giải pháp nhằm nâng cao hiệu quả marketing mix công ty Phú Lê Huy
Đề tài: Giải pháp nhằm nâng cao hiệu quả marketing mix công ty Phú Lê HuyĐề tài: Giải pháp nhằm nâng cao hiệu quả marketing mix công ty Phú Lê Huy
Đề tài: Giải pháp nhằm nâng cao hiệu quả marketing mix công ty Phú Lê Huy
 
Đề tài: Phân tích quá trình phục vụ À la carte tại nhà hàng Romeo and Juliet ...
Đề tài: Phân tích quá trình phục vụ À la carte tại nhà hàng Romeo and Juliet ...Đề tài: Phân tích quá trình phục vụ À la carte tại nhà hàng Romeo and Juliet ...
Đề tài: Phân tích quá trình phục vụ À la carte tại nhà hàng Romeo and Juliet ...
 
Đề tài thực tập: Quy trình phục vụ tại phòng (khách sạn), HAY, 9 điểm!
Đề tài thực tập: Quy trình phục vụ tại phòng (khách sạn), HAY, 9 điểm!Đề tài thực tập: Quy trình phục vụ tại phòng (khách sạn), HAY, 9 điểm!
Đề tài thực tập: Quy trình phục vụ tại phòng (khách sạn), HAY, 9 điểm!
 
The Complete HTML
The Complete HTMLThe Complete HTML
The Complete HTML
 
Máy tiện Mazak Mazatrol T2-T3
Máy tiện Mazak Mazatrol T2-T3Máy tiện Mazak Mazatrol T2-T3
Máy tiện Mazak Mazatrol T2-T3
 
Đề tài: Tìm hiểu dịch vụ ăn uống tại khách sạn Hải Phòng, HAY
Đề tài: Tìm hiểu dịch vụ ăn uống tại khách sạn Hải Phòng, HAYĐề tài: Tìm hiểu dịch vụ ăn uống tại khách sạn Hải Phòng, HAY
Đề tài: Tìm hiểu dịch vụ ăn uống tại khách sạn Hải Phòng, HAY
 
Đề tài: Giải pháp thu hút khách hàng đến khách sạn Northern Saigon H...
Đề tài: Giải pháp thu hút khách hàng đến khách sạn Northern Saigon H...Đề tài: Giải pháp thu hút khách hàng đến khách sạn Northern Saigon H...
Đề tài: Giải pháp thu hút khách hàng đến khách sạn Northern Saigon H...
 
Đề tài: Nâng cao chất lượng dịch vụ phòng tại khách sạn Nhật Hạ 3
Đề tài: Nâng cao chất lượng dịch vụ phòng tại khách sạn Nhật Hạ 3Đề tài: Nâng cao chất lượng dịch vụ phòng tại khách sạn Nhật Hạ 3
Đề tài: Nâng cao chất lượng dịch vụ phòng tại khách sạn Nhật Hạ 3
 
Đề Tài Nâng Cao Chất Lượng Dịch Vụ Ăn Uống Nhà Hàng Hoàng Anh.docx
Đề Tài Nâng Cao Chất Lượng Dịch Vụ Ăn Uống Nhà Hàng Hoàng Anh.docxĐề Tài Nâng Cao Chất Lượng Dịch Vụ Ăn Uống Nhà Hàng Hoàng Anh.docx
Đề Tài Nâng Cao Chất Lượng Dịch Vụ Ăn Uống Nhà Hàng Hoàng Anh.docx
 
Html
HtmlHtml
Html
 
Đề tài: Hoàn thiện quy trình tổ chức tiệc cưới tại nhà hàng Diamond...
Đề tài: Hoàn thiện quy trình tổ chức tiệc cưới tại nhà hàng Diamond...Đề tài: Hoàn thiện quy trình tổ chức tiệc cưới tại nhà hàng Diamond...
Đề tài: Hoàn thiện quy trình tổ chức tiệc cưới tại nhà hàng Diamond...
 

Ähnlich wie 01 Ext Js Introduccion

Conceptos acerca de Ajax
Conceptos acerca  de AjaxConceptos acerca  de Ajax
Conceptos acerca de Ajax
Alvaro Castillo
 
Introduccion Ajax V1.0
Introduccion Ajax V1.0Introduccion Ajax V1.0
Introduccion Ajax V1.0
Arnulfo Gomez
 
Mootools Y Otros Frameworks JS
Mootools Y Otros Frameworks JSMootools Y Otros Frameworks JS
Mootools Y Otros Frameworks JS
Ian Monge Pérez
 
Manual programacion - java - jsp & xml
Manual   programacion - java - jsp & xmlManual   programacion - java - jsp & xml
Manual programacion - java - jsp & xml
gilhorak
 

Ähnlich wie 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.