Foros del Web » Programando para Internet » PHP »

Ejecutar un funcion despues de 10 minutos

Estas en el tema de Ejecutar un funcion despues de 10 minutos en el foro de PHP en Foros del Web. Quiero que despues de 10 minutos de haber abierta mi pagina de ejecute una funcion, como se hace?...
  #1 (permalink)  
Antiguo 02/01/2009, 17:00
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Ejecutar un funcion despues de 10 minutos

Quiero que despues de 10 minutos de haber abierta mi pagina de ejecute una funcion, como se hace?
  #2 (permalink)  
Antiguo 02/01/2009, 17:04
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Ejecutar un funcion despues de 10 minutos

Para eso necesitas un lenguaje de parte del cliente, como Javascript.

http://www.webtaller.com/construccio..._javscript.php
  #3 (permalink)  
Antiguo 02/01/2009, 17:15
 
Fecha de Ingreso: febrero-2006
Mensajes: 858
Antigüedad: 18 años, 2 meses
Puntos: 4
Respuesta: Ejecutar un funcion despues de 10 minutos

Puedes usar php, pero tienes que ir actualizando la página.. asi que yo te recomiendo usar javascript

saludos
__________________
*La amistad se multiplica cuando se divide*
  #4 (permalink)  
Antiguo 02/01/2009, 18:03
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Ejecutar un funcion despues de 10 minutos

Hola:

Si se trata de una función php, no es posible ni con php ni con javascript... lo mejor sería replicar esa función con javascript... pero dejaría de ser accesible... podrías recargar esa página con un tag meta refresh, pero no te lo aconsejo... y la otra opción que se me ocurre posible, es con ajax...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 02/01/2009, 18:11
 
Fecha de Ingreso: febrero-2006
Mensajes: 134
Antigüedad: 18 años, 2 meses
Puntos: 10
Respuesta: Ejecutar un funcion despues de 10 minutos

En la página desde la que quieres hacerlo puedes colocar un iframe con destino en otra página que contega tu función, y luego puedes hacer dos cosas:

Si puedes hacer llamadas al sistema, puedes hacer un
Código PHP:
shell_exec('sleep 600 && /path/to/php -c /path/to/php.ini -f /path/to/archivo_a_ejecutar'); 
O bien,
Código PHP:
ignore_user_abort(1);
set_time_limit(0); // o bien set_time_limit(10*60+30); // 30 segundos más
// O Bien:
/*
for($i = 0; $i < 10*30; $i++) {
  set_time_limit(30); // Reset time_limit
  sleep(2);
}

/// Y luego del metodo que quieras, pones la llamada a tu funcion 
__________________
Si te ha gustado lo que he dicho, puedes darme algún punto de reputación, que no te cuesta nada ^_^.

Di no a los juicios de valor!
  #6 (permalink)  
Antiguo 02/01/2009, 23:28
 
Fecha de Ingreso: enero-2008
Mensajes: 53
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Ejecutar un funcion despues de 10 minutos

La mejor forma y la más correcta de hacer algo como eso, sería con AJAX.
Creas un intervalo de tiempo en Javascript (los 10 minutos), que cuando se cumpla, haga una petición asíncrona por medio de AJAX que ejecute la función. O si esta necesita un refresco total de la página, que simplemente recargue la página.

Saludos =)
  #7 (permalink)  
Antiguo 03/01/2009, 12:50
 
Fecha de Ingreso: febrero-2006
Mensajes: 134
Antigüedad: 18 años, 2 meses
Puntos: 10
Respuesta: Ejecutar un funcion despues de 10 minutos

El problema de hacerlo con AJAX es que necesitas que el usuario no abandone la página ni cierre el navegador, y además que tenga JavaScript habilitado.
Para mí, el método más apropiado sería un marco en la página, que se recargue a los 10 minutos. (iframe o con varios frames si la página ya los usa; aunque los frames no me gustan en general, xD)
__________________
Si te ha gustado lo que he dicho, puedes darme algún punto de reputación, que no te cuesta nada ^_^.

Di no a los juicios de valor!
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 11:39.