Foros del Web » Programando para Internet » Javascript » Frameworks JS »

contador de usuarios inscritos con ajax

Estas en el tema de contador de usuarios inscritos con ajax en el foro de Frameworks JS en Foros del Web. hola. me gustaria tener en mi comunidad social.. un contador de usuarios registrados.. acutalmente estoy teniendo mas o menos 5 registros por cada 10 segundos ...
  #1 (permalink)  
Antiguo 22/09/2011, 09:54
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 2 meses
Puntos: 4
contador de usuarios inscritos con ajax

hola.

me gustaria tener en mi comunidad social.. un contador de usuarios registrados..
acutalmente estoy teniendo mas o menos 5 registros por cada 10 segundos en el portal
y me gustaria que se mostrara un contador de usuarios registrados cambiando constantemente, tal y como lo hace www.badoo.com en su pagina principal.

me imagino que es con ajax y con lenguaje de servidor para hacer la consulta
uso asp y mysql, alguein sabe como hacer esto ?

gracias.
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #2 (permalink)  
Antiguo 22/09/2011, 15:39
 
Fecha de Ingreso: febrero-2008
Ubicación: Sevilla
Mensajes: 91
Antigüedad: 16 años, 1 mes
Puntos: 15
Respuesta: contador de usuarios inscritos con ajax

Simplemente defines la funcion ajax con la url en la que el metodo del servidor ASP consulta a la base de datos y este te devuelve como respuesta el numero, y luego ese numero lo pones en el contador que tengas.

Luego basta con hacer un setTimeOut(funcionAjax, tiempo) dentro del success para que se repita cada x segundos.

Un saludo!
  #3 (permalink)  
Antiguo 22/09/2011, 15:46
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 2 meses
Puntos: 4
Respuesta: contador de usuarios inscritos con ajax

hola gracias por la respuesta,
la verdad no tengo ni idea de ajax.
podrias darme un ejemplo. de un ajax qeu se refresque constantemente o algun codigo que no genere sobrecarga en mi servidor .
solo para eso

gracias.
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #4 (permalink)  
Antiguo 22/09/2011, 17:36
 
Fecha de Ingreso: febrero-2008
Ubicación: Sevilla
Mensajes: 91
Antigüedad: 16 años, 1 mes
Puntos: 15
Respuesta: contador de usuarios inscritos con ajax

Hay muchos tutoriales de ajax por la red, te recomiendo que te leas alguno.

Igualmente te dejo un ejemplo adaptado a tu caso:

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. function peticionAjax(urlPeticion) {
  3.     var res = '';
  4.     var ajax = false;
  5.     try {
  6.         ajax = new ActiveXObject("Msxml2.XMLHTTP");
  7.     } catch (e) {
  8.         try {
  9.             ajax = new ActiveXObject("Microsoft.XMLHTTP");
  10.         } catch (E) {
  11.             ajax = false;
  12.         }
  13.     }
  14.     if (!ajax && typeof XMLHttpRequest != 'undefined') {
  15.         ajax = new XMLHttpRequest();
  16.     }
  17.     var url = urlPeticion;
  18.     ajax.open("POST", url, false);
  19.     ajax.setRequestHeader('Content-Type',
  20.             'application/x-www-form-urlencoded; charset=UTF-8');
  21.     ajax.onreadystatechange = function() {
  22.         if (ajax.readyState == 4) {
  23.             var res = ajax.responseText;
  24.             var xhr_data = res.substring(res.indexOf('<etiquetaElementoXML>'), res.indexOf('</etiquetaElementoXML>'));
  25.             xhr_data = xhr_data.substring(xhr_data.indexOf('>'), xhr_data.indexOf('</'));
  26.             if (!isNaN(xhr_data)) {
  27.                 document.getElementById('idContador').value=xhr_data;
  28.             }
  29.             setTimeout( function() { peticionAjax(url);}, 5000);
  30.         }
  31.     }
  32.     ajax.send();
  33. }
  34. setTimeout(function() { peticionAjax(urlPeticion); }, 1000);
  35. </script>

En el parametro urlPeticion debes poner la direccion donde vas a llamar al servidor para que te responda con el numero de registros que hay.

etiquetaElementoXML es la etiqueta donde vas a enmascarar el numero de registros dentro del xml que devuelve el servidor.

idContador es el id de por ejemplo un cuadro de texto donde vas a mostrar el numero de registros.

La peticion hace lo siguiente:

Realiza la peticion, coge la etiqueta xml donde esta el numero de registros y luego el numero dentro de esta etiqueta, comprueba que es un numero valido y lo pone en idContador. Luego hace una peticion nueva a los 5 segundos (5000 milisegundos). Asi hasta que el cliente cierre o cambie la pagina.

El xml que responde el servidor podria ser asi:
<?xml version="1.0"?>
<numeroRegistros>
<etiquetaElementoXML>1000</etiquetaElementoXML>
</numeroRegistros>

Basicamente no necesitas mas que modificar la url del servidor, como quieres llamar a la etiqueta XML y el id del campo donde vayas a mostrar el numero de registros.

Depende de donde coloques el script, quizas necesites añadirlo como funcion al onLoad de tu body, o bien al final de la pagina.

Un saludo!
  #5 (permalink)  
Antiguo 23/09/2011, 06:43
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 2 meses
Puntos: 4
Respuesta: contador de usuarios inscritos con ajax

excelente muchisimas gracias por tu colaboracion,
voy a ponerlo en practica,
me haz sido de gran ayuda con tu ejemplo.
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #6 (permalink)  
Antiguo 23/09/2011, 07:17
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 2 meses
Puntos: 4
Respuesta: contador de usuarios inscritos con ajax

hola intente de esta forma pero no logro ver nada en pantalla que sera qeu estoy haciendo mal..
esta pagina la llamo principal.asp
Código HTML:
Ver original
  1. <html xmlns="[URL]http://www.w3.org/1999/xhtml[/URL]">
  2. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  3. <title>Documento sin título</title>
  4. <script type="text/javascript">
  5. function peticionAjax(urlPeticion) {
  6. var res = '';
  7. var ajax = false;
  8. try {
  9. ajax = new ActiveXObject("Msxml2.XMLHTTP");
  10. } catch (e) {
  11. try {
  12. ajax = new ActiveXObject("Microsoft.XMLHTTP");
  13. } catch (E) {
  14. ajax = false;
  15. }
  16. }
  17. if (!ajax && typeof XMLHttpRequest != 'undefined') {
  18. ajax = new XMLHttpRequest();
  19. }
  20. var url = urlPeticion;
  21. ajax.open("POST", url, false);
  22. ajax.setRequestHeader('Content-Type',
  23. 'application/x-www-form-urlencoded; charset=UTF-8');
  24. ajax.onreadystatechange = function() {
  25. if (ajax.readyState == 4) {
  26. var res = ajax.responseText;
  27. var xhr_data = res.substring(res.indexOf('<etiquetaElementoXML>'), res.indexOf('</etiquetaElementoXML>'));
  28. xhr_data = xhr_data.substring(xhr_data.indexOf('>'), xhr_data.indexOf('</'));
  29. if (!isNaN(xhr_data)) {
  30. document.getElementById('idContador').value=xhr_data;
  31. }
  32. setTimeout( function() { peticionAjax(url);}, 5000);
  33. }
  34. }
  35. ajax.send();
  36. }
  37. setTimeout(function() { peticionAjax("contador.asp?nocache=<%=now()%>"); }, 5000);
  38. </head>
  39. <body><div id="idContador"></div>
  40. </body>
  41. </html>

esta pagina la llamo contador.asp
Código HTML:
Ver original
  1. <?xml version="1.0"?>
  2. <numeroRegistros>
  3. <etiquetaElementoXML>6</etiquetaElementoXML>
  4. </numeroRegistros>
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #7 (permalink)  
Antiguo 23/09/2011, 17:03
 
Fecha de Ingreso: febrero-2008
Ubicación: Sevilla
Mensajes: 91
Antigüedad: 16 años, 1 mes
Puntos: 15
Respuesta: contador de usuarios inscritos con ajax

No a ver, principal.asp no es el xml.

En principal.asp debes tratar la peticion que se ha hecho desde ajax, devolviendole como resultado el xml (una cadena de texto con el xml y los atributos de xml de la respuesta por ejemplo)

La cosa iria asi:

Cliente abre la pagina->Se ejecuta el AJAX->manda la peticion a principal.asp
->principal.asp consulta la base de datos, genera el xml y pone en los atributos de la respuesta que es un xml->devuelve como respuesta a la peticion el xml->AJAX trata el xml de respuesta, introduce el valor en la pagina (donde tengas lo que va mostrar la cantidad de usuarios registrados) y a los 5 segundos vuelve a mandar otra peticion a principal.asp (asi infinitamente hasta que se cierre/cambie la pagina que contiene el AJAX).

Si no tienes conocimientos en AJAX, te recomiendo que leas tutoriales para familiarizarte y hacer pequeños ejemplos practicos antes de hacer todo esto.

Un saludo!

Etiquetas: ajax
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:01.