Foros del Web » Programación web » Javascript »

como refrescar pagina sin pulsar f5?

Estas en el tema de como refrescar pagina sin pulsar f5? en el foro de Javascript en Foros del Web. hola amigos tengo un problema y uds, me podrián dar solución tengo una consulta a mysql con php donde me devuelve registros de la gente ...
  #1 (permalink)  
Antiguo 04/11/2011, 11:48
 
Fecha de Ingreso: octubre-2010
Ubicación: montevideo
Mensajes: 169
Antigüedad: 3 años, 10 meses
Puntos: 4
como refrescar pagina sin pulsar f5?

hola amigos tengo un problema y uds, me podrián dar solución
tengo una consulta a mysql con php donde me devuelve registros de la gente que esta conectada en un sistema de chat, imaginense algo asi como lo es facebook, te conectas y te registras en la base de datos y tus amigos pueden verte, (en mi caso si pulsas f5).
y justamente lo que quiero es evitar la tecla f5, sino que periodicamente se ejecute una funcion o algo que me mantenga alertado.
por lo que e leido con ajax se podria lograr. pero si de javascript se poco mucho menos de ajax, espero me puedan ayudar un abrazo!
  #2 (permalink)  
Antiguo 04/11/2011, 11:53
Avatar de Raziel_Ravenheart  
Fecha de Ingreso: agosto-2011
Ubicación: Ibagué, Tolima
Mensajes: 190
Antigüedad: 3 años
Puntos: 37
Exclamación Respuesta: como refrescar pagina sin pulsar f5?

Te respondo con lo poco que se, luego edito, cuando investigue o si alguien más no te responde. Si eso se hace con ajax, pero tienes que jugar con alguna de las dos funciones de Javascript ya sea setTimeOut o setInterval, para que el navegador envie cada cierto tiempo una petición por ajax, para refrescar datos.

Inicia estudiando esto

SetInterval

Exitos. Y si nadie más te colabora, volveré pronto.. ya que voy de salida....
  #3 (permalink)  
Antiguo 04/11/2011, 11:55
 
Fecha de Ingreso: octubre-2010
Ubicación: montevideo
Mensajes: 169
Antigüedad: 3 años, 10 meses
Puntos: 4
Respuesta: como refrescar pagina sin pulsar f5?

Muchas gracias! ya mismo voy a investigar!
  #4 (permalink)  
Antiguo 04/11/2011, 12:21
 
Fecha de Ingreso: junio-2009
Mensajes: 59
Antigüedad: 5 años, 1 mes
Puntos: 6
Respuesta: como refrescar pagina sin pulsar f5?

Es cierto con setInterval. Lo que pasa es que vas a teer que llamar a un metodo, y despues ahi ejecutar el Ajax. Que es una llamada al servidor, sin que se actualice.

Código HTML:
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Act.</title>
<script type="text/javascript">
  
var timer = setInterval("prueba()", 300);
function prueba(){
    document.write("actualizado, y se vuelve a ");
}

</script>
        </head>
        <body>
</body>
</html> 
Ahí te actualiza cada 300 milisegundos.

Después búscate un script de Ajax, o poder utilizar jquery. Que lo soporta muy bien.

Última edición por PercevalCiro; 04/11/2011 a las 12:26 Razón: Cambio en el titulo del title
  #5 (permalink)  
Antiguo 04/11/2011, 12:31
 
Fecha de Ingreso: octubre-2010
Ubicación: montevideo
Mensajes: 169
Antigüedad: 3 años, 10 meses
Puntos: 4
Respuesta: como refrescar pagina sin pulsar f5?

lo que probe no me esta dando el resultado deseado por que me recarga la pagina constantemente generando actividad de manera que cada ves que recargo los codigos que yo tengo entienden que hay actividad y no me desconecta de la base de datos, por tanto el usuario permanece activo.
  #6 (permalink)  
Antiguo 04/11/2011, 12:34
 
Fecha de Ingreso: octubre-2010
Ubicación: montevideo
Mensajes: 169
Antigüedad: 3 años, 10 meses
Puntos: 4
Respuesta: como refrescar pagina sin pulsar f5?

Cita:
Iniciado por PercevalCiro Ver Mensaje
Es cierto con setInterval. Lo que pasa es que vas a teer que llamar a un metodo, y despues ahi ejecutar el Ajax. Que es una llamada al servidor, sin que se actualice.

Código HTML:
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Act.</title>
<script type="text/javascript">
  
var timer = setInterval("prueba()", 300);
function prueba(){
    document.write("actualizado, y se vuelve a ");
}

</script>
        </head>
        <body>
</body>
</html> 
Ahí te actualiza cada 300 milisegundos.

Después búscate un script de Ajax, o poder utilizar jquery. Que lo soporta muy bien.
perdon, pero como sería, en esto si me considero un principiante, no entiendo mucho y no se como desarrollarlo, de todas formas muchas gracias!
  #7 (permalink)  
Antiguo 04/11/2011, 12:47
 
Fecha de Ingreso: junio-2009
Mensajes: 59
Antigüedad: 5 años, 1 mes
Puntos: 6
Respuesta: como refrescar pagina sin pulsar f5?

Bueno aqui un ejemplo sencillo y completo:

1) crear dos archivos, en un servidor que soporte php, el primero es prueba.php y otro con index.php

el codigo de prueba.php

Código PHP:
<?php
echo " Hora actual- " date(" h : m : s");
?>
De este archivo obtendremos los valores.

el codigo de index.php

Código HTML:
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Act</title>
<script type="text/javascript">
    //Se toma el tiempo cada cuanto se realiza una actualizacion
    //cada 300 MILISEGUNDO se ejecuta el metodo Enviar()
    //y se pasa como argumento, la pagina prueba.php
    // y resultado, que sera el nombre de nuestro div en la pagina.
var timer = setInterval("Enviar('prueba.php','resultado')", 300);

//llamara a la funcion ajax, que lo que hara sera una peticion a la
//_pagina pasada como argumento, y la capa es donde se colocara el resultado.

function Enviar(_pagina,capa) {
var
ajax;
ajax = ajaxFunction();

ajax.open("POST", _pagina, true);

ajax.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded");
ajax.onreadystatechange = function()
{

if (ajax.readyState == 4)
{
document.getElementById(capa).innerHTML = ajax.responseText;

}}
ajax.send(null);
}

//Se instancia el objeto y se devuelve
//dependiendo del navegador.
function ajaxFunction() {
var xmlHttp;
try {
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
return xmlHttp;
} catch (e) {
// Internet Explorer
try {
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
return xmlHttp;
} catch (e) {
try {
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
return xmlHttp;
} catch (e) {
alert("Tu navegador no soporta AJAX!");
return false;
}}}
}
</script>
        </head>
        <body>
            <!--Aqui se colocaran los datos obtenidos.-->
<div id="resultado">Nuestro Div Resultado.</div>
</body>
</html> 

Bueno y en este archivo usamos de nuevo el setInterval y a los tres milisegundos se solicita la pagina prueba.php, se obtiene el horario, y se coloca en el div con el id resultado.

Es interesante el siguiente experimento, podes ir modificando el archivo prueba, y dejar el otro corriendo, y vas a ver que despues de guardar los resultados cambian.

Cualquier duda, pregunta, pero te conviene revisar en internet un codigo mas completo.

Saludos.
  #8 (permalink)  
Antiguo 04/11/2011, 12:54
 
Fecha de Ingreso: junio-2009
Mensajes: 59
Antigüedad: 5 años, 1 mes
Puntos: 6
Respuesta: como refrescar pagina sin pulsar f5?

Cita:
Iniciado por pablobuitres Ver Mensaje
lo que probe no me esta dando el resultado deseado por que me recarga la pagina constantemente generando actividad de manera que cada ves que recargo los codigos que yo tengo entienden que hay actividad y no me desconecta de la base de datos, por tanto el usuario permanece activo.
Claro, este es otro tema, mmmm... ... Bueno, lo que se me ocurre es que podes capturar las pulsaciones del teclado, y del mouse, con eso determinar si el usuario esta activo, y despues con un setInterval que compruebe que esto sea cierto y en ese caso que actualice.

Serviria?
  #9 (permalink)  
Antiguo 04/11/2011, 13:04
 
Fecha de Ingreso: octubre-2010
Ubicación: montevideo
Mensajes: 169
Antigüedad: 3 años, 10 meses
Puntos: 4
Respuesta: como refrescar pagina sin pulsar f5?

Bueno amigo parece ser a simple vista que es lo que busco, hoy a probarlo bien, en la pagina con la que trabajo, muchisimas gracias!!!
  #10 (permalink)  
Antiguo 04/11/2011, 13:30
 
Fecha de Ingreso: octubre-2010
Ubicación: montevideo
Mensajes: 169
Antigüedad: 3 años, 10 meses
Puntos: 4
Respuesta: como refrescar pagina sin pulsar f5?

perdon gente se que no es el tema, pero se que uds saben de lo siguiente,
como debo poner esto asi?
var timer = setInterval("Enviar('prueba.php'?id='$_GET['id']'&alguien='$_GET['alguien]','resultado')", 300);
muchas gracias y perdonen mi ignorancia
  #11 (permalink)  
Antiguo 04/11/2011, 13:48
 
Fecha de Ingreso: junio-2009
Mensajes: 59
Antigüedad: 5 años, 1 mes
Puntos: 6
Respuesta: como refrescar pagina sin pulsar f5?

Cita:
Iniciado por pablobuitres Ver Mensaje
perdon gente se que no es el tema, pero se que uds saben de lo siguiente,
como debo poner esto asi?
var timer = setInterval("Enviar('prueba.php'?id='$_GET['id']'&alguien='$_GET['alguien]','resultado')", 300);
muchas gracias y perdonen mi ignorancia
Hola bueno mira, justo entre para mostrarte una mejora, en realidad no tenes que poner $_GET['id'] por ejemplo, basta con poner:

...php?id=1100&alguien=yo', 'resultado'', 300);

y lo levantarias con: por ejemplo:

Código PHP:
 echo $_POST['id']; 
y saldria
Código HTML:
1100
  #12 (permalink)  
Antiguo 04/11/2011, 13:54
 
Fecha de Ingreso: octubre-2010
Ubicación: montevideo
Mensajes: 169
Antigüedad: 3 años, 10 meses
Puntos: 4
Respuesta: como refrescar pagina sin pulsar f5?

sabes lo que pasa traigo por get mi identidad ymi nick, traerlo por post me complica bastante
  #13 (permalink)  
Antiguo 04/11/2011, 13:55
 
Fecha de Ingreso: junio-2009
Mensajes: 59
Antigüedad: 5 años, 1 mes
Puntos: 6
Respuesta: como refrescar pagina sin pulsar f5?

Aca te paso el codigo de ejemplo anterior
agregue un codigo
este en particular controla si estas o no activo, si estas inactivo mas de 5 segundos entonces no ejecuta el Ajax. caso contrario lo hacer.

El tema seria asi:
idleTime controla, se agregan dos eventos, si se produce algunos lo ponen en cero.
cada un segundo se suma una unidad.

Código:
var idleInterval = setInterval("timerIncrement()", 1000);
Acordate que 1000 es un segundo.

Código:
if(idleTime <= 5){
Aqui lo que se controla que no se haya incrementado 5 veces la variable idelTime, que si lo haces por 1000 milisegundos (es decir 1 segundo) te daria que a los cinco segundo pone no disponible.


Código:
 if(idleTime > 5){
   document.getElementById(capa).innerHTML = "No disponible";
   }
Aqui esta si es mayor a 5, cosa que es obvia, pero lo coloco para que veas donde podrias poner otras excepciones.
Espero que asi si te sirva, ahora actualizaras si esta disponible el usuario, en caso contrario, si pasan cinco segundos, no hara nada mas que poner No disponible.

Código PHP:
<!DOCTYPE html>
<
html>
    <
head>
        <
meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <
title>Act</title>
<
script type="text/javascript">
    
//Se toma el tiempo cada cuanto se realiza una actualizacion
    //cada 300 MILISEGUNDO se ejecuta el metodo Enviar()
    //y se pasa como argumento, la pagina prueba.php
    // y resultado, que sera el nombre de nuestro div en la pagina.
var timer setInterval("Enviar('prueba.php','resultado')"1000);
var 
idleTime 0;
//Aqui el script para detectar si el usuario esta o no activo.
var idleInterval setInterval("timerIncrement()"1000);
//cuerpo.onclick =activar;
var cuerpo document;
cuerpo.addEventListener("mousemove"activarfalse);
cuerpo.addEventListener("keypress"activarfalse);

function 
activar(e)
    {
    
idleTime 0;
    }

function 
timerIncrement()
    {
    
idleTime++;
       }


//llamara a la funcion ajax, que lo que hara sera una peticion a la
//_pagina pasada como argumento, y la capa es donde se colocara el resultado.

function Enviar(_pagina,capa) {
if(
idleTime <= 5){
var 
ajax;
ajax ajaxFunction();

ajax.open("POST"_paginatrue);

ajax.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded");
ajax.onreadystatechange = function()
{

if (
ajax.readyState == 4)
{
document.getElementById(capa).innerHTML ajax.responseText;

}   }
ajax.send(null);
}else{
   if(
idleTime 5){
   
document.getElementById(capa).innerHTML "No disponible";
   }
}
}
//Se instancia el objeto y se devuelve
//dependiendo del navegador.
function ajaxFunction() {
var 
xmlHttp;
try {
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
return 
xmlHttp;
} catch (
e) {
// Internet Explorer
try {
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
return 
xmlHttp;
} catch (
e) {
try {
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
return 
xmlHttp;
} catch (
e) {
alert("Tu navegador no soporta AJAX!");
return 
false;
}}}


}
</script>
        </head>
        <body>
            <!--Aqui se colocaran los datos obtenidos.-->
<div id="resultado">Nuestro Div Resultado.</div>
</body>
</html> 
  #14 (permalink)  
Antiguo 04/11/2011, 13:59
 
Fecha de Ingreso: junio-2009
Mensajes: 59
Antigüedad: 5 años, 1 mes
Puntos: 6
Respuesta: como refrescar pagina sin pulsar f5?

Cita:
Iniciado por pablobuitres Ver Mensaje
sabes lo que pasa traigo por get mi identidad ymi nick, traerlo por post me complica bastante
No entiendo.. como tienes elaborada la funcion, porque vos estas haciendo una peticion, en todo caso deberias traer los valores en una cadena, que sean obtenidos por los argumentos que le pases, y despues dividirlo para seguir trabajando.

Si es que entendi algo.. no me quedo claro como estas trabajando.

Saludos.
  #15 (permalink)  
Antiguo 04/11/2011, 14:08
 
Fecha de Ingreso: octubre-2010
Ubicación: montevideo
Mensajes: 169
Antigüedad: 3 años, 10 meses
Puntos: 4
Respuesta: como refrescar pagina sin pulsar f5?

PercevalCiro trabajo con php y mysql traigo desde mysql los id y los nick de mis amigos cuando estan conectados, pero para evitar confuciones en la consulta por get traigo mi id y mi nick, para bajarlos por get y ponerlos en la ventana de chat, entonces por un lado tengo el nick de a quien le voy a escribir y por otro el nick de quien escribe osea (yo) por eso te decia lo de poder llamar a la pagina prueba.php con variables php
  #16 (permalink)  
Antiguo 04/11/2011, 14:15
 
Fecha de Ingreso: junio-2009
Mensajes: 59
Antigüedad: 5 años, 1 mes
Puntos: 6
Respuesta: como refrescar pagina sin pulsar f5?

Cita:
Iniciado por pablobuitres Ver Mensaje
PercevalCiro trabajo con php y mysql traigo desde mysql los id y los nick de mis amigos cuando estan conectados,
pero para evitar confuciones en la consulta por get traigo mi id y mi nick, para bajarlos por get y ponerlos en la ventana de chat, entonces por un lado tengo el nick de a quien le voy a escribir y por otro el nick de quien escribe osea (yo) por eso te decia lo de poder llamar a la pagina prueba.php con variables php
Claro, por eso mismo la forma de trabajar en estos casos, se me ocurre es de la siguiente manera:

El Id, y tu nombre debería estar fijo ubicado en un costado desde el principio y no debes reactualizarlo, antes podría llegar a ser, pero ahora no tienes esa necesidad, porque no se reactualiza la pagina entera solo modifica los valores de los conectados.

Podrías en vez de traer texto, traer un elemento html desde php, o sea, suponete, realizas la consulta, volcas los resultados a un $array

despues lo recorres con un foreach{} y vas creando el elemento html, y lo introduces directamente en donde se muestra, se entiende. Y no necesitas utilizar get, ni post. haciendo un echo, te devolvería este elemento.

Pensa bien en esta parte, me parece que te estas complicando.

Saludos,
  #17 (permalink)  
Antiguo 04/11/2011, 14:57
 
Fecha de Ingreso: octubre-2010
Ubicación: montevideo
Mensajes: 169
Antigüedad: 3 años, 10 meses
Puntos: 4
Respuesta: como refrescar pagina sin pulsar f5?

parece que quedaria le busque la vuelta y parece que nada bien, solo que en chrome me hace saltar la panatalla en opera y mozilla no tengo problema, pero imagino que para cambiar eso nada puedo hacer. muchas gracias de verdad muchas gracias!!
  #18 (permalink)  
Antiguo 04/11/2011, 15:51
 
Fecha de Ingreso: octubre-2010
Ubicación: montevideo
Mensajes: 169
Antigüedad: 3 años, 10 meses
Puntos: 4
Respuesta: como refrescar pagina sin pulsar f5?

Descubri un problema en el codigo anterior hay una parte que dice:
Código Javascript:
Ver original
  1. var cuerpo = document;
  2. cuerpo.addEventListener("mousemove", activar, false);
  3. cuerpo.addEventListener("keypress", activar, false);
esto hace que al moverme(yo) en el explorador me active a mis amigos, cuando en realidad lo que yo necesito es que busque en mysql quien esta conectado y me lo traiga como conectado o en su defecto quien este mas de N minutos sin actividad lo desconecte, como podría arreglar esto? muchas gracias!
  #19 (permalink)  
Antiguo 04/11/2011, 20:31
 
Fecha de Ingreso: junio-2009
Mensajes: 59
Antigüedad: 5 años, 1 mes
Puntos: 6
Respuesta: como refrescar pagina sin pulsar f5?

Cita:
Iniciado por pablobuitres Ver Mensaje
Descubri un problema en el codigo anterior hay una parte que dice:
Código Javascript:
Ver original
  1. var cuerpo = document;
  2. cuerpo.addEventListener("mousemove", activar, false);
  3. cuerpo.addEventListener("keypress", activar, false);
esto hace que al moverme(yo) en el explorador me active a mis amigos, cuando en realidad lo que yo necesito es que busque en mysql quien esta conectado y me lo traiga como conectado o en su defecto quien este mas de N minutos sin actividad lo desconecte, como podría arreglar esto? muchas gracias!
Entiendo!... igualmente no te convendria que el estado quede guardado en la base de datos???... entendes?, entonces cuando uno de tus amigos deje de estar activo, no traera los datos pero hara una consulta update donde marcara que esta no disponible. Y cuando tu que estas activo traera estos valores. En caso contrario no tocara a tus amigos porque no actualizara, pero te dara el valor de los mismos.

Saludos.
  #20 (permalink)  
Antiguo 05/11/2011, 10:14
 
Fecha de Ingreso: octubre-2010
Ubicación: montevideo
Mensajes: 169
Antigüedad: 3 años, 10 meses
Puntos: 4
Respuesta: como refrescar pagina sin pulsar f5?

como haría esto que me propones? por que el código que yo tengo me registra al entrar en el sistema, por medio de una $_GET['alguien'] que es el nick y viene en la url, si te parece te pego el código.
Lo que más o menos habia pensado como solucion es sustituir el fragmento de código siguiente:
Código Javascript:
Ver original
  1. var cuerpo = document;
  2. cuerpo.addEventListener("mousemove", activar, false);
  3. cuerpo.addEventListener("keypress", activar, false);
por algún otro que conecte con BD, osea que no por que yo me mueva o presione una tecla me traiga a los amigos, sino que ejecute la consulta y si hay amigos conectados los traiga.
Se entiende? Se podrá hacer algo? muchas gracias!!
  #21 (permalink)  
Antiguo 05/11/2011, 10:36
 
Fecha de Ingreso: junio-2009
Mensajes: 59
Antigüedad: 5 años, 1 mes
Puntos: 6
Respuesta: como refrescar pagina sin pulsar f5?

Como obtienes el estado de tus amigos?... y que base de datos estas usando, MySql?

Saludos.
  #22 (permalink)  
Antiguo 05/11/2011, 10:55
 
Fecha de Ingreso: octubre-2010
Ubicación: montevideo
Mensajes: 169
Antigüedad: 3 años, 10 meses
Puntos: 4
Respuesta: como refrescar pagina sin pulsar f5?

uso mysql te pego el código:
Código PHP:
Ver original
  1. <?php
  2. $_SESSION['username'] = "".$_GET['alguien'].""
  3.  
  4. ?>
  5.  
  6. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/loose.dtd" >
  7.  
  8. <html>
  9. <head>
  10. <title></title>
  11. <style>
  12. .conecta {
  13. float:left;
  14. }
  15. </style>
  16.  
  17. <link type="text/css" rel="stylesheet" media="all" href="css/chat.css" />
  18. <link type="text/css" rel="stylesheet" media="all" href="css/screen.css" />
  19.  
  20. <!--[if lte IE 7]>
  21. <link type="text/css" rel="stylesheet" media="all" href="css/screen_ie.css" />
  22. <![endif]-->
  23.  
  24. </head>
  25. <body>
  26. <div id="main_container">
  27. <?php
  28. $link = mysql_connect("localhost", "root", "");
  29.  
  30. mysql_select_db("pablo", $link);
  31.  
  32.  
  33.  
  34. function usuarios_activos()
  35. {
  36.    //permitimos el uso de la variable portadora del numero ip en nuestra funcion
  37.    global $REMOTE_ADDR;
  38.  
  39.    //asignamos un nombre memotecnico a la variable
  40.    $ip = $_GET['alguien'];
  41.    //definimos el momento actual
  42.    $ahora = time();
  43. $host="localhost";
  44. $user="root";
  45. $password="";
  46. $db="pablo";
  47.    //conectamos a la base de datos
  48.    //Usad vuestros propios parametros!!
  49.    $connect = mysql_connect($host,$user,$password);
  50.    mysql_select_db($db,$connect);
  51.  
  52.    //actualizamos la tabla
  53.    //borrando los registros de las ip inactivas (24 minutos)
  54.    $limite = $ahora-1*60;
  55.    $ssql = "delete from control_ip where fecha < ".$limite;
  56.    mysql_query($ssql);
  57.  
  58.    //miramos si el ip del visitante existe en nuestra tabla
  59.    $ssql = "select ip, fecha from control_ip where ip = '$ip'";
  60.    $result = mysql_query($ssql);
  61.  
  62.    //si existe actualizamos el campo fecha
  63.    if (mysql_num_rows($result) != 0) $ssql = "update control_ip set fecha = ".$ahora." where ip = '$ip'";
  64.    //si no existe insertamos el registro correspondiente a la nueva sesion
  65.    else $ssql = "insert into control_ip (ip, fecha) values ('$ip', $ahora)";
  66.  
  67.    //ejecutamos la sentencia sql
  68.    mysql_query($ssql);
  69.  
  70. $result = mysql_query("SELECT *
  71. FROM control_ip c
  72. INNER JOIN amigos a ON
  73. c.ip = a.nick
  74. WHERE id2 = '".$_GET['id']."'and level='1' ORDER BY fecha DESC ");
  75. while ($row = mysql_fetch_array($result))
  76. {
  77.    echo "<div class='conecta'><a href=\"javascript:void(0)\" onclick=\"javascript:chatWith('".$row['nick']."')\"><img src='files2/".$row['ima2']."'width='50' height='50'><br /> ".$row['nick']."</a></div>";
  78. }
  79.  
  80.   $ssql = "select ip from control_ip";
  81.    $result = mysql_query($ssql);
  82.    $usuarios = mysql_num_rows($result);
  83.  
  84.    //liberamos memoria
  85.    mysql_free_result($result);
  86.  
  87.    //devolvemos el resultado
  88.    return $usuarios;
  89. }
  90.  
  91. {
  92.  
  93.  
  94. }
  95. //llamada a la funcion
  96. $active_users=USUARIOS_ACTIVOS();
  97.  
  98.  
  99.  
  100. ?>
  101.  
  102.  
  103.  
  104. </div>
  105.  
  106. <script type="text/javascript" src="js/jquery.js"></script>
  107. <script type="text/javascript" src="js/chat.js"></script>
  108.  
  109. </body>
  110. </html>
  #23 (permalink)  
Antiguo 05/11/2011, 11:22
 
Fecha de Ingreso: junio-2009
Mensajes: 59
Antigüedad: 5 años, 1 mes
Puntos: 6
Respuesta: como refrescar pagina sin pulsar f5?

Entiendo... Realmente nunca realice una chat, ni siquiera lo pensé. No se como compartirás las conversaciones, calculo que abrirás sockets, por lo que en este caso te seria conveniente manejar de otra manera los datos, y no volcarlo en la pagina de una.

esto lo digo por que lo vi en el siguiente articulo:

Servidores Sockets en PHP

En segundo lugar y creo que es el gran problema, no deberias entender a las funciones como parte de tu pagina, separa el código php del html, de forma inmediata, entonces podrías trabajar mucho mejor, mas limpio, y de forma correcta.

Utiliza a PHP como un lenguaje de scripts, es decir que realice determinada función y retorne los valores para que puedas manipularlos a tu gusto.

Por ejemplo, create una clase que se conecte a la base de datos.
Otra clase que obtenga los valores de los usuario que están conectado, pero que necesite llamar a la primer clase que creaste (la que se conecta a la base de datos), entonces cuando tengas que llamar desde Javascript a una función no tengas que recargar la pagina.

No se si sabes o no, quizá me paso de atrevido, pero aplica Programación Orientada a Objetos, y si no la sabes prueba aprender ,te llevara un tiempo pero te sera increíblemente útil. Te lo digo desde la experiencia.
  #24 (permalink)  
Antiguo 05/11/2011, 11:30
 
Fecha de Ingreso: octubre-2010
Ubicación: montevideo
Mensajes: 169
Antigüedad: 3 años, 10 meses
Puntos: 4
Respuesta: como refrescar pagina sin pulsar f5?

muchas gracias, no sos atrevido, mas bien adivino! jaja es cierto mucho no se, el sistema de chat ya lo tengo, no lo creé yo, sino que encontre el script en la red. con el código que te mostre muestro a quien tengo en linea, si esta en inactividad mas de un minuto es eliminado el registro de la tabla, lo único malo de todo esto es lo que venimos tratando. que tengo que pulsar f5 para ver quien queda o quien se conecto.
Pero de todas formas voy a seguir tu consejo, muchas gracias por todo!!!
  #25 (permalink)  
Antiguo 05/11/2011, 13:14
 
Fecha de Ingreso: octubre-2010
Ubicación: montevideo
Mensajes: 169
Antigüedad: 3 años, 10 meses
Puntos: 4
Respuesta: como refrescar pagina sin pulsar f5?

Analizando bien las cosas me di cuenta que el código me sirve,
ahora necesitaria modificarle algunas cosas, ya que cada cierta cantidad de tiempo me pone "no disponible" quiesiera que lo pusiera solo una ves y que la duración fuera breve o que no lo pusiera, parecerá muy obvio lo que pregunto pero probé y no me convencio, por que no entiendo bien. muchas gracias por todo!

Código Javascript:
Ver original
  1. function Enviar(_pagina,capa) {
  2. if(idleTime <= 5){
  3. var ajax;
  4. ajax = ajaxFunction();
  5.  
  6. ajax.open("POST", _pagina, true);
  7.  
  8. ajax.setRequestHeader("Content-Type",
  9. "application/x-www-form-urlencoded");
  10. ajax.onreadystatechange = function()
  11. {
  12.  
  13. if (ajax.readyState == 4)
  14. {
  15. document.getElementById(capa).innerHTML = ajax.responseText;
  16.  
  17. }   }
  18. ajax.send(null);
  19. }else{
  20.    if(idleTime > 5){
  21.    document.getElementById(capa).innerHTML = "No disponible";
  22.    }
  23. }
  24. }
  #26 (permalink)  
Antiguo 05/11/2011, 13:18
 
Fecha de Ingreso: junio-2009
Mensajes: 59
Antigüedad: 5 años, 1 mes
Puntos: 6
Respuesta: como refrescar pagina sin pulsar f5?

Código Javascript:
Ver original
  1. else{
  2.    if(idleTime > 5){
  3.    document.getElementById(capa).innerHTML = "No disponible";
  4.    }

O bien modificas ahi...
lo que dice es si se sumo 5 veces idleTime, hacer lo que sigue, en este caso .. coloca no disponible en el objeto que le asignamos a la variable capa.

Saludos.
  #27 (permalink)  
Antiguo 05/11/2011, 13:27
 
Fecha de Ingreso: octubre-2010
Ubicación: montevideo
Mensajes: 169
Antigüedad: 3 años, 10 meses
Puntos: 4
Respuesta: como refrescar pagina sin pulsar f5?

ok, lo deje así y parece que anda bien!
Código Javascript:
Ver original
  1. ajax.send(null);
  2. }else{
  3.    if(idleTime > 5){
  4.    document.getElementById(capa).innerHTML ;
  5.    }

Muchas Gracias!!!
  #28 (permalink)  
Antiguo 05/11/2011, 13:42
 
Fecha de Ingreso: junio-2009
Mensajes: 59
Antigüedad: 5 años, 1 mes
Puntos: 6
Respuesta: como refrescar pagina sin pulsar f5?

Cita:
Iniciado por pablobuitres Ver Mensaje
ok, lo deje así y parece que anda bien!
Código Javascript:
Ver original
  1. ajax.send(null);
  2. }else{
  3.    if(idleTime > 5){
  4.    document.getElementById(capa).innerHTML ;
  5.    }

Muchas Gracias!!!
Seria recomendable que saques todo...
incluso el else...
Podrías después agregar otra opción si deseas.


Buenisimo.. Saludos.

Etiquetas: ajax, funcion, php, pulsar, refrescar
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 02:52.
SEO by vBSEO 3.3.2