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

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (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
 

Andere mochten auch

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
 

Andere mochten auch (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
 

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

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

Mehr von 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
 

Mehr von 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?
 

Kürzlich hochgeladen

ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptxdeimerhdz21
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICAÁngel Encinas
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfPaolaRopero2
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfNancyLoaa
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosJonathanCovena1
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
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
 
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática4    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática4    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
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
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesYanirisBarcelDelaHoz
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIIsauraImbrondone
 
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
 
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
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Alejandrino Halire Ccahuana
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 

Kürzlich hochgeladen (20)

ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficios
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
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...
 
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática4    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática4    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática4 MPG 2024 Ccesa007.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...
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
 
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...
 
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
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 

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