SlideShare uma empresa Scribd logo
1 de 22
Crono: mini-chat
2/22


Visión global

   En esta nueva versión de cRono vamos a añadirle un mini-chat
   Haremos uso intensivo de Javascript, CSS y AJAX
3/22


Algunos requisitos del mini-chat

   Al hacer doble click sobre un jugador conectado se me abre una ventana
    de mini-chat con ese jugador
   NO puedo abrir un mini-chat conmigo mismo
   NO puedo abrir un mini-chat con un jugador con el que ya estoy
    chateando
   Solo se permite un máximo de 3 mini-chats simultáneos
   El servidor hará de almacén de conversaciones
   Comunicaremos los clientes con el servidor vía AJAX
   Cada jugador consultará de forma periódica si hay un mensaje para él
    vía AJAX
   Una vez ha descargado un mensaje, se marcará en el servidor como
    leído, de modo que NO se vuelva a enviar al jugador
Fase 1: los 6 pasos
5/22

PASO 1: Devolver lista de jugadores conectados
separados por ;

   El servidor debe olvidarse de la capa de presentación, así que
    devolverá simplemente la lista de jugadores como una cadena de
    texto en la que separamos por ; los login
   Modifica los métodos Jugador.toString y JugadoresList.toString
   Asegúrate que este paso funciona
6/22

PASO 2 – cliente: panel de conectados, una capa por
cada jugador

   Desde el cliente, cuando recibes en AJAX la lista de jugadores
    conectados, vuélcala a un array
   Para ello utiliza el método split
   Crea una rutina crearUnaCapaPorJugador(vectorJugadores)
    que cree dinámicamente código HTML en el panel de jugadores
    conectados
   Esta rutina devuelve el código HTML que se inserta en el inner del
    panel de conectados
   Prueba este paso antes de seguir
7/22


PASO 3: Evento doble click sobre jugador

   Captura el evento doble click sobre un jugador conectado
   Hazlo sobre la capa del jugador
   Asegúrate de que este paso funciona simplemente mostrando un
    alert
8/22


PASO 4: registrar número de chats establecidos

   Llegados a este punto nuestro cRono ya reacciona a doble click sobre un jugador conectado
   La rutina que maneja el doble click llámala agregarVentanaChat(who)
   who representa el alias ó login del jugador contra el que he abierto el mini-chat
   Todos el código asociado al mini-chat alójalo en un fichero llamado chat.js
   Crea una nueva capa chats que alojará todas las ventanas de mini-chat.
   En este paso, esta capa contendrá simplemente el número de chats abiertos
   Crea una variable global nchats para llevar esta cuenta
   Actualiza esta cuenta en tu función que captura el doble-click sobre un jugador
   Muestra el valor de nchats en la capa de chats.
9/22


PASO 5: controla la apertura de chats

   Evita que el jugador pueda abrir un mini-chat consigo mismo
   Evita que el jugador pueda abrir más de 3 mini-chats
   Evita que el jugador pueda abrir un chat con un jugador con el que
    ya está hablando
   Para ello, crea un array chats_with que contenga una entrada con
    el login (ó alias) del jugador con el que inicia un chat
   Antes de abrir un chat, comprueba que ese jugador NO esté ya en
    la lista de chats_with
10/22


  PASO 6: Ventana de chat básica


   tituloChat
                                                       <span
                     <span tituloChat...>
                            <DIV tituloChat...>   botoneraChat...>

conversacionChat
  ventanaChat


                   chats
  mensajeChat
Posicionamiento CSS en 10 pasos
12/22


Fuente

   Este mini-tutorial es una traducción de BarelyFitz Designs
   En esta URL tienes la fuente original:
    Enlace al original
13/22


1. position: static

   Este es el posicionamiento por defecto de cualquier elemento
   Indica que NO se le asigna una posición, sino simplemente se
    ubica “donde le toque”
   Normalmente NO se indica explícitamente, salvo para modificar el
    posicionamiento de un objeto que previamente hemos establecido
14/22


2. position: relative

   Nos permite establecer top - bottom y left - right
   De esta manera lo desplazamos de la ubicación que le correspondería si
    no hubiéramos modificado/variado su posición




   El div-1 se ha desplazado a la izquierda de donde le tocaba
   El siguiente elemento (div-after) se coloca donde le hubiera tocado, de
    modo que queda detrás de div-1
15/22


3. position: absolute

   Cuando establecemos position: absolute, el elemento se elimina del
    documento y se ubica exactamente donde le indiquemos.
   Vamos a mover div-1a al top de la página:




   Hemos colocado el div-1a en una posición absoluta de la página
   Nos podría interesar en una posición absoluta dentro de otro div, y aquí es
    donde usaremos la combinación relative-absolute
16/22


4. position:relative + position:absolute

   Si establecemos position:relative para div-1, cualquier elemento dentro de
    él será posicionado de forma relativa a su posición
   Ahora, al div-1a, dentro de div-1, le indicamos position:absolute, lo podemos
    colocar en el top de div-1
17/22


5. dos columnas absolute




   Una ventaja del posicionamiento absoluto es que podemos definir los
    elementos en cualquier orden en la página y se ubicarán en la posición
    deseada...
   ...con independencia de cuál declaremos primero
18/22


6. dos columnas de altura absoluta




   Una posible solución puede ser estacer una altura absoluta para los
    elementos
   El problema está en que NO podemos saber a priori qué tamaño de letra
    van a contener los elementos ni cuánto texto van a albergar
19/22


7. float




   En caso de que la altura de las columnas sea variable, el posicionado
    absoluto NO nos vale
   Podemos hacer flotar un elemento lo máximo posible a la izquierda o a la
    derecha, y hacer que el texto se “encaje” alrededor de éste.
20/22


8. Dos columnas flotantes




   Si “flotamos” una columna hacia la izquierda, y la otra también a la
    izquierda, se colocará la una a continuación de la otra
21/22


9. columnas flotantes y clear




   Después de elementos flotantes, podemos “limpiar” el float y colocar el
    resto del contenido
22/22


10. Cuidado con IE


   Todo lo visto aquí no se ha adaptado al funcionamiento particular de IE...
   ...de modo que un uso literal de este tutorial podría dar problemas en ese
    navegador

Mais conteúdo relacionado

Mais procurados (8)

Tutorial de como hacer operaciones fáciles en eclipse
Tutorial de como hacer operaciones fáciles en eclipseTutorial de como hacer operaciones fáciles en eclipse
Tutorial de como hacer operaciones fáciles en eclipse
 
Dominio Active Directory
Dominio Active DirectoryDominio Active Directory
Dominio Active Directory
 
Tutorial Como calcular el sueldo
Tutorial Como calcular el sueldoTutorial Como calcular el sueldo
Tutorial Como calcular el sueldo
 
Auditoria de redes
Auditoria de  redesAuditoria de  redes
Auditoria de redes
 
Crossword paso a paso
Crossword paso a pasoCrossword paso a paso
Crossword paso a paso
 
Taller 1 y 2 jenny
Taller 1 y 2 jennyTaller 1 y 2 jenny
Taller 1 y 2 jenny
 
fuente de poder
fuente de poderfuente de poder
fuente de poder
 
Taller #uno de window 7
Taller #uno de window 7Taller #uno de window 7
Taller #uno de window 7
 

Destaque

Paralysis Resources Guide from Philadelphia Lawyers at Anapol Schwartz
Paralysis Resources Guide from Philadelphia Lawyers at Anapol SchwartzParalysis Resources Guide from Philadelphia Lawyers at Anapol Schwartz
Paralysis Resources Guide from Philadelphia Lawyers at Anapol SchwartzAnapol Weiss
 
Redes Sociales Power
Redes Sociales  PowerRedes Sociales  Power
Redes Sociales Powersergio1993
 
Menu restaurante ramon !! e.e
Menu restaurante ramon !! e.eMenu restaurante ramon !! e.e
Menu restaurante ramon !! e.eramongutierrez7
 
Ems cataloges
Ems catalogesEms cataloges
Ems catalogesmedicah1
 
2011 school of jewellery short course brochure
2011 school of jewellery short course brochure2011 school of jewellery short course brochure
2011 school of jewellery short course brochureI&L Futures
 
Que es betwin
Que es betwinQue es betwin
Que es betwinGoogle
 
Instaweb Company Profile
Instaweb Company ProfileInstaweb Company Profile
Instaweb Company Profileissani isa
 
VMworld 2013: Organizing for Cloud Operations – Challenges and Lessons Learned
VMworld 2013: Organizing for Cloud Operations – Challenges and Lessons Learned VMworld 2013: Organizing for Cloud Operations – Challenges and Lessons Learned
VMworld 2013: Organizing for Cloud Operations – Challenges and Lessons Learned VMworld
 
Mi Comunidad Autónoma:Andalucia
Mi Comunidad Autónoma:AndaluciaMi Comunidad Autónoma:Andalucia
Mi Comunidad Autónoma:Andaluciaeumi
 
Coaching: Oportunidade de Carreira para Executivos
Coaching: Oportunidade de Carreira para ExecutivosCoaching: Oportunidade de Carreira para Executivos
Coaching: Oportunidade de Carreira para ExecutivosiPL
 
Movimientos arquitectonicos en europa y norteamerica ivonne puyo
Movimientos arquitectonicos en europa y norteamerica ivonne puyoMovimientos arquitectonicos en europa y norteamerica ivonne puyo
Movimientos arquitectonicos en europa y norteamerica ivonne puyoIvonne Puyo
 
Soalan akhir tahun p. seni tahun 2 blog
Soalan akhir tahun p. seni tahun 2   blogSoalan akhir tahun p. seni tahun 2   blog
Soalan akhir tahun p. seni tahun 2 blogVie Hassan
 

Destaque (20)

Paralysis Resources Guide from Philadelphia Lawyers at Anapol Schwartz
Paralysis Resources Guide from Philadelphia Lawyers at Anapol SchwartzParalysis Resources Guide from Philadelphia Lawyers at Anapol Schwartz
Paralysis Resources Guide from Philadelphia Lawyers at Anapol Schwartz
 
Esc 2015
Esc 2015 Esc 2015
Esc 2015
 
Redes Sociales Power
Redes Sociales  PowerRedes Sociales  Power
Redes Sociales Power
 
Menu restaurante ramon !! e.e
Menu restaurante ramon !! e.eMenu restaurante ramon !! e.e
Menu restaurante ramon !! e.e
 
El beta
El betaEl beta
El beta
 
Ems cataloges
Ems catalogesEms cataloges
Ems cataloges
 
Planificación
PlanificaciónPlanificación
Planificación
 
2011 school of jewellery short course brochure
2011 school of jewellery short course brochure2011 school of jewellery short course brochure
2011 school of jewellery short course brochure
 
Curso botanica medicinal
Curso botanica medicinalCurso botanica medicinal
Curso botanica medicinal
 
Que es betwin
Que es betwinQue es betwin
Que es betwin
 
Rayo laser 2.002
Rayo laser 2.002Rayo laser 2.002
Rayo laser 2.002
 
Catalogo de rabourdin
Catalogo de rabourdinCatalogo de rabourdin
Catalogo de rabourdin
 
Instaweb Company Profile
Instaweb Company ProfileInstaweb Company Profile
Instaweb Company Profile
 
VMworld 2013: Organizing for Cloud Operations – Challenges and Lessons Learned
VMworld 2013: Organizing for Cloud Operations – Challenges and Lessons Learned VMworld 2013: Organizing for Cloud Operations – Challenges and Lessons Learned
VMworld 2013: Organizing for Cloud Operations – Challenges and Lessons Learned
 
Mi Comunidad Autónoma:Andalucia
Mi Comunidad Autónoma:AndaluciaMi Comunidad Autónoma:Andalucia
Mi Comunidad Autónoma:Andalucia
 
Coaching: Oportunidade de Carreira para Executivos
Coaching: Oportunidade de Carreira para ExecutivosCoaching: Oportunidade de Carreira para Executivos
Coaching: Oportunidade de Carreira para Executivos
 
Mobile Newsmaking
Mobile NewsmakingMobile Newsmaking
Mobile Newsmaking
 
Movimientos arquitectonicos en europa y norteamerica ivonne puyo
Movimientos arquitectonicos en europa y norteamerica ivonne puyoMovimientos arquitectonicos en europa y norteamerica ivonne puyo
Movimientos arquitectonicos en europa y norteamerica ivonne puyo
 
Soalan akhir tahun p. seni tahun 2 blog
Soalan akhir tahun p. seni tahun 2   blogSoalan akhir tahun p. seni tahun 2   blog
Soalan akhir tahun p. seni tahun 2 blog
 
Aves magacinedicion2
Aves magacinedicion2Aves magacinedicion2
Aves magacinedicion2
 

Semelhante a AJAX y JS: Mini chat (fase 1)

Primeros pasos con Backbone js, por Xavier Aznar
Primeros pasos con Backbone js, por Xavier AznarPrimeros pasos con Backbone js, por Xavier Aznar
Primeros pasos con Backbone js, por Xavier AznarPablo Aguilera
 
Usando Netbeans para desarrollos en PHP
Usando Netbeans para desarrollos en PHPUsando Netbeans para desarrollos en PHP
Usando Netbeans para desarrollos en PHPDKR Visión SRL
 
Base de datos desde vb 6.0
Base de datos desde vb 6.0Base de datos desde vb 6.0
Base de datos desde vb 6.0WendyMendez30
 
Manual de netbeans_7(2)(2)(2)
Manual de netbeans_7(2)(2)(2)Manual de netbeans_7(2)(2)(2)
Manual de netbeans_7(2)(2)(2)javier_ot99
 
Manual completo del manejador de base de datos Postgre SQL
Manual completo del manejador de base de datos Postgre SQLManual completo del manejador de base de datos Postgre SQL
Manual completo del manejador de base de datos Postgre SQLLorenzo Antonio Flores Perez
 
Todo Javascript para canibales
Todo Javascript para canibalesTodo Javascript para canibales
Todo Javascript para canibalesbriant pati
 
Javascript de Canibales
Javascript de CanibalesJavascript de Canibales
Javascript de Canibalesbriant pati
 
Java Script de canibaless
Java Script de canibalessJava Script de canibaless
Java Script de canibalessbriant pati
 
INFOSAN Delphi 603-752
INFOSAN Delphi  603-752INFOSAN Delphi  603-752
INFOSAN Delphi 603-752FRANCIACOCO
 
Guia bootstrap
Guia bootstrapGuia bootstrap
Guia bootstrapljds
 
Creación de VLANs (subredes) desde Cisco Packet Tracer Student
Creación de VLANs (subredes) desde Cisco Packet Tracer StudentCreación de VLANs (subredes) desde Cisco Packet Tracer Student
Creación de VLANs (subredes) desde Cisco Packet Tracer StudentIvan Luis Jimenez
 
Clase 1 java
Clase 1 javaClase 1 java
Clase 1 javamacbenach
 
Manual_java.pdf
Manual_java.pdfManual_java.pdf
Manual_java.pdfAnaLpez275
 

Semelhante a AJAX y JS: Mini chat (fase 1) (20)

Primeros pasos con Backbone js, por Xavier Aznar
Primeros pasos con Backbone js, por Xavier AznarPrimeros pasos con Backbone js, por Xavier Aznar
Primeros pasos con Backbone js, por Xavier Aznar
 
Usando Netbeans para desarrollos en PHP
Usando Netbeans para desarrollos en PHPUsando Netbeans para desarrollos en PHP
Usando Netbeans para desarrollos en PHP
 
WXWIDGET.PDF
WXWIDGET.PDFWXWIDGET.PDF
WXWIDGET.PDF
 
PROGRAMACIÓN DE CÓDIGOS CON PHP
PROGRAMACIÓN DE CÓDIGOS CON PHPPROGRAMACIÓN DE CÓDIGOS CON PHP
PROGRAMACIÓN DE CÓDIGOS CON PHP
 
Base de datos desde vb 6.0
Base de datos desde vb 6.0Base de datos desde vb 6.0
Base de datos desde vb 6.0
 
Manual de netbeans_7(2)(2)(2)
Manual de netbeans_7(2)(2)(2)Manual de netbeans_7(2)(2)(2)
Manual de netbeans_7(2)(2)(2)
 
Chap 15dpin
Chap 15dpinChap 15dpin
Chap 15dpin
 
Manual completo del manejador de base de datos Postgre SQL
Manual completo del manejador de base de datos Postgre SQLManual completo del manejador de base de datos Postgre SQL
Manual completo del manejador de base de datos Postgre SQL
 
Flexbox
FlexboxFlexbox
Flexbox
 
Todo Javascript para canibales
Todo Javascript para canibalesTodo Javascript para canibales
Todo Javascript para canibales
 
Javascript de Canibales
Javascript de CanibalesJavascript de Canibales
Javascript de Canibales
 
Java Script de canibaless
Java Script de canibalessJava Script de canibaless
Java Script de canibaless
 
INFOSAN Delphi 603-752
INFOSAN Delphi  603-752INFOSAN Delphi  603-752
INFOSAN Delphi 603-752
 
Layout
LayoutLayout
Layout
 
Layout
LayoutLayout
Layout
 
Guia bootstrap
Guia bootstrapGuia bootstrap
Guia bootstrap
 
Creación de VLANs (subredes) desde Cisco Packet Tracer Student
Creación de VLANs (subredes) desde Cisco Packet Tracer StudentCreación de VLANs (subredes) desde Cisco Packet Tracer Student
Creación de VLANs (subredes) desde Cisco Packet Tracer Student
 
Clase 1 java
Clase 1 javaClase 1 java
Clase 1 java
 
Manual_java.pdf
Manual_java.pdfManual_java.pdf
Manual_java.pdf
 
manual de eclipse
manual de eclipse manual de eclipse
manual de eclipse
 

Mais de Moisés Pérez Delgado

Conceptos básicos de electricidad en mi entorno
Conceptos básicos de electricidad en mi entornoConceptos básicos de electricidad en mi entorno
Conceptos básicos de electricidad en mi entornoMoisés Pérez Delgado
 
Conceptos básicos de electricidad: elementos en mi entorno
Conceptos básicos de electricidad: elementos en mi entornoConceptos básicos de electricidad: elementos en mi entorno
Conceptos básicos de electricidad: elementos en mi entornoMoisés Pérez Delgado
 

Mais de Moisés Pérez Delgado (20)

02 resistencias y condensadores
02 resistencias y condensadores02 resistencias y condensadores
02 resistencias y condensadores
 
02 croquis y canalizacion
02 croquis y canalizacion02 croquis y canalizacion
02 croquis y canalizacion
 
02 carcasa y fuente
02 carcasa y fuente02 carcasa y fuente
02 carcasa y fuente
 
03 circuitos en cc
03 circuitos en cc03 circuitos en cc
03 circuitos en cc
 
Conceptos básicos de electricidad en mi entorno
Conceptos básicos de electricidad en mi entornoConceptos básicos de electricidad en mi entorno
Conceptos básicos de electricidad en mi entorno
 
Conceptos básicos de electricidad
Conceptos básicos de electricidadConceptos básicos de electricidad
Conceptos básicos de electricidad
 
Conceptos básicos de electricidad: elementos en mi entorno
Conceptos básicos de electricidad: elementos en mi entornoConceptos básicos de electricidad: elementos en mi entorno
Conceptos básicos de electricidad: elementos en mi entorno
 
Naturales temas 01 al 04
Naturales   temas 01 al 04Naturales   temas 01 al 04
Naturales temas 01 al 04
 
Tema 02 elementos del medio natural
Tema 02   elementos del medio naturalTema 02   elementos del medio natural
Tema 02 elementos del medio natural
 
Naturales temas 05 al 07
Naturales   temas 05 al 07Naturales   temas 05 al 07
Naturales temas 05 al 07
 
Matemáticas: Temas 1 a 4
Matemáticas: Temas 1 a 4Matemáticas: Temas 1 a 4
Matemáticas: Temas 1 a 4
 
Tema 1. El planeta Tierra
Tema 1. El planeta TierraTema 1. El planeta Tierra
Tema 1. El planeta Tierra
 
La Tierra
La TierraLa Tierra
La Tierra
 
Cálculo de circuitos: Thévenin
Cálculo de circuitos: ThéveninCálculo de circuitos: Thévenin
Cálculo de circuitos: Thévenin
 
Teoría de circuitos: superposición
Teoría de circuitos: superposiciónTeoría de circuitos: superposición
Teoría de circuitos: superposición
 
Resolución de circuitos con Kirchoff
Resolución de circuitos con KirchoffResolución de circuitos con Kirchoff
Resolución de circuitos con Kirchoff
 
Corriente alterna
Corriente alternaCorriente alterna
Corriente alterna
 
Que sabes de electricidad
Que sabes de electricidadQue sabes de electricidad
Que sabes de electricidad
 
Git: control de versiones
Git: control de versionesGit: control de versiones
Git: control de versiones
 
Qué sabes de word?
Qué sabes de word?Qué sabes de word?
Qué sabes de word?
 

Último

Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfenelcielosiempre
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptxolgakaterin
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxKarlaMassielMartinez
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxlupitavic
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...JAVIER SOLIS NOYOLA
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdfenelcielosiempre
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfMaritzaRetamozoVera
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioELIASAURELIOCHAVEZCA1
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 

Último (20)

Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdf
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptx
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdf
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 

AJAX y JS: Mini chat (fase 1)

  • 2. 2/22 Visión global  En esta nueva versión de cRono vamos a añadirle un mini-chat  Haremos uso intensivo de Javascript, CSS y AJAX
  • 3. 3/22 Algunos requisitos del mini-chat  Al hacer doble click sobre un jugador conectado se me abre una ventana de mini-chat con ese jugador  NO puedo abrir un mini-chat conmigo mismo  NO puedo abrir un mini-chat con un jugador con el que ya estoy chateando  Solo se permite un máximo de 3 mini-chats simultáneos  El servidor hará de almacén de conversaciones  Comunicaremos los clientes con el servidor vía AJAX  Cada jugador consultará de forma periódica si hay un mensaje para él vía AJAX  Una vez ha descargado un mensaje, se marcará en el servidor como leído, de modo que NO se vuelva a enviar al jugador
  • 4. Fase 1: los 6 pasos
  • 5. 5/22 PASO 1: Devolver lista de jugadores conectados separados por ;  El servidor debe olvidarse de la capa de presentación, así que devolverá simplemente la lista de jugadores como una cadena de texto en la que separamos por ; los login  Modifica los métodos Jugador.toString y JugadoresList.toString  Asegúrate que este paso funciona
  • 6. 6/22 PASO 2 – cliente: panel de conectados, una capa por cada jugador  Desde el cliente, cuando recibes en AJAX la lista de jugadores conectados, vuélcala a un array  Para ello utiliza el método split  Crea una rutina crearUnaCapaPorJugador(vectorJugadores) que cree dinámicamente código HTML en el panel de jugadores conectados  Esta rutina devuelve el código HTML que se inserta en el inner del panel de conectados  Prueba este paso antes de seguir
  • 7. 7/22 PASO 3: Evento doble click sobre jugador  Captura el evento doble click sobre un jugador conectado  Hazlo sobre la capa del jugador  Asegúrate de que este paso funciona simplemente mostrando un alert
  • 8. 8/22 PASO 4: registrar número de chats establecidos  Llegados a este punto nuestro cRono ya reacciona a doble click sobre un jugador conectado  La rutina que maneja el doble click llámala agregarVentanaChat(who)  who representa el alias ó login del jugador contra el que he abierto el mini-chat  Todos el código asociado al mini-chat alójalo en un fichero llamado chat.js  Crea una nueva capa chats que alojará todas las ventanas de mini-chat.  En este paso, esta capa contendrá simplemente el número de chats abiertos  Crea una variable global nchats para llevar esta cuenta  Actualiza esta cuenta en tu función que captura el doble-click sobre un jugador  Muestra el valor de nchats en la capa de chats.
  • 9. 9/22 PASO 5: controla la apertura de chats  Evita que el jugador pueda abrir un mini-chat consigo mismo  Evita que el jugador pueda abrir más de 3 mini-chats  Evita que el jugador pueda abrir un chat con un jugador con el que ya está hablando  Para ello, crea un array chats_with que contenga una entrada con el login (ó alias) del jugador con el que inicia un chat  Antes de abrir un chat, comprueba que ese jugador NO esté ya en la lista de chats_with
  • 10. 10/22 PASO 6: Ventana de chat básica tituloChat <span <span tituloChat...> <DIV tituloChat...> botoneraChat...> conversacionChat ventanaChat chats mensajeChat
  • 12. 12/22 Fuente  Este mini-tutorial es una traducción de BarelyFitz Designs  En esta URL tienes la fuente original: Enlace al original
  • 13. 13/22 1. position: static  Este es el posicionamiento por defecto de cualquier elemento  Indica que NO se le asigna una posición, sino simplemente se ubica “donde le toque”  Normalmente NO se indica explícitamente, salvo para modificar el posicionamiento de un objeto que previamente hemos establecido
  • 14. 14/22 2. position: relative  Nos permite establecer top - bottom y left - right  De esta manera lo desplazamos de la ubicación que le correspondería si no hubiéramos modificado/variado su posición  El div-1 se ha desplazado a la izquierda de donde le tocaba  El siguiente elemento (div-after) se coloca donde le hubiera tocado, de modo que queda detrás de div-1
  • 15. 15/22 3. position: absolute  Cuando establecemos position: absolute, el elemento se elimina del documento y se ubica exactamente donde le indiquemos.  Vamos a mover div-1a al top de la página:  Hemos colocado el div-1a en una posición absoluta de la página  Nos podría interesar en una posición absoluta dentro de otro div, y aquí es donde usaremos la combinación relative-absolute
  • 16. 16/22 4. position:relative + position:absolute  Si establecemos position:relative para div-1, cualquier elemento dentro de él será posicionado de forma relativa a su posición  Ahora, al div-1a, dentro de div-1, le indicamos position:absolute, lo podemos colocar en el top de div-1
  • 17. 17/22 5. dos columnas absolute  Una ventaja del posicionamiento absoluto es que podemos definir los elementos en cualquier orden en la página y se ubicarán en la posición deseada...  ...con independencia de cuál declaremos primero
  • 18. 18/22 6. dos columnas de altura absoluta  Una posible solución puede ser estacer una altura absoluta para los elementos  El problema está en que NO podemos saber a priori qué tamaño de letra van a contener los elementos ni cuánto texto van a albergar
  • 19. 19/22 7. float  En caso de que la altura de las columnas sea variable, el posicionado absoluto NO nos vale  Podemos hacer flotar un elemento lo máximo posible a la izquierda o a la derecha, y hacer que el texto se “encaje” alrededor de éste.
  • 20. 20/22 8. Dos columnas flotantes  Si “flotamos” una columna hacia la izquierda, y la otra también a la izquierda, se colocará la una a continuación de la otra
  • 21. 21/22 9. columnas flotantes y clear  Después de elementos flotantes, podemos “limpiar” el float y colocar el resto del contenido
  • 22. 22/22 10. Cuidado con IE  Todo lo visto aquí no se ha adaptado al funcionamiento particular de IE...  ...de modo que un uso literal de este tutorial podría dar problemas en ese navegador