Está en la página 1de 3

3/5/2021 jquery - Ejecutar función php con pagina con ajax a cada cierto tiempo - Stack Overflow en español

Stack Overflow en español es un sitio de


preguntas y respuestas para
programadores y profesionales de la
informática. Solo te toma un minuto
registrarte.

Regístrate para unirte a esta comunidad

Cualquiera puede formular una pregunta

Cualquiera puede responder

Se vota a favor de las


mejores respuestas, y éstas
suben a los primeros puestos

Ejecutar función php con pagina con ajax a cada cierto tiempo
Formulada hace 3 años y 2 meses Activa hace 3 años y 2 meses Vista 6k veces

necesito ejecutar una función php (que ejecuta una consulta) cada cierto tiempo, entiendo que es
con ajax pero la función tiene que estar en el mismo archivo que la función de ajax que lo va a
0 ejecutar. GRACIAS!

<?php
function update(){
//query
}
?>
<script> //ajax que ejecuta funcion </script>
<html>//poner la función php en alguna parte del html para poder llamarla desde ajax
</html>

php jquery ajax

Compartir Mejora esta pregunta Seguir formulada el 22 feb. 18 a las 20:06


Gustavo Oliva
25 2 10

¿Lo vas a ejecutar en el lado del cliente o del servidor? si es en el lado del cliente es como dices, solo
incluye la función ajax como indicas en el código y cada vez que un cliente conecte, lanzará una petición
contra el servidor cada cierto tiempo, pero si es en el lado del servidor, debería ser un cron (para entornos
gnu/linux). – track3r el 22 feb. 18 a las 20:13

https://es.stackoverflow.com/questions/140653/ejecutar-función-php-con-pagina-con-ajax-a-cada-cierto-tiempo 1/3
3/5/2021 jquery - Ejecutar función php con pagina con ajax a cada cierto tiempo - Stack Overflow en español

3 respuestas Activo Más antiguo Votos

Usando tu mismo código, añado la parte que conseguiría llamar la función:

3 <?php
if(isset($_POST["action"])) { // Se pasa una acción
switch(sprintf("%d", $_POST["action"]))) { // ¿Qué acción?
case 1:
update(); // Llamar a tu función
echo "Tarea completada!";
break;
default:
echo "Error: Falta una acción";
}
}

function update() {
//query
}
?>

La parte HTML sería así:

<script>
$(function() { // Ojo! uso jQuery, recuerda añadirla al html
cron(); // Lanzo cron la primera vez
function cron() {
$.ajax({
method: "POST",
url: "index.php", // Podrías separar las funciones de PHP en un fichero
a parte
data: {
action: 1
}
}).done(function(msg) {
console.log(msg);
});
}
setInterval(function() {
cron();
}, 10000); // Lanzará la petición cada 10 segundos
});
</script>

Compartir Mejora esta respuesta Seguir respondida el 22 feb. 18 a las 20:32


track3r
1,893 1 8 20

Podés usar una función llamada setInterval() de JavaScript.

0 Ejemplo:

https://es.stackoverflow.com/questions/140653/ejecutar-función-php-con-pagina-con-ajax-a-cada-cierto-tiempo 2/3
3/5/2021 jquery - Ejecutar función php con pagina con ajax a cada cierto tiempo - Stack Overflow en español
timer = setInterval("update()", 5000);

Eso va a ejecutar tu función update cada 5 segundos

En update realizas la llamada a tu archivo.php.

Compartir Mejora esta respuesta editada el 23 feb. 18 a las 0:48 respondida el 22 feb. 18 a las 20:13
Seguir Mariano mafewo
24k 19 67 98 21 3

Fíjate que la función que quiere ejecutar es parte de php, por lo que no puedes llamar la función
directamente y tienes que usar ajax. – track3r el 22 feb. 18 a las 20:15

gracias, en por eso explique que en update realizas la llamada ajax. me equivoco al respecto? – mafewo el
22 feb. 18 a las 20:17

Te pongo un ejemplo en la respuesta, se podría mejorar. – track3r el 22 feb. 18 a las 20:19

Puedes añadir un "throttle" a tu función:

0
function throttle(f, delay){
var timer = null;
return function(){
var context = this, args = arguments;
clearTimeout(timer);
timer = window.setTimeout(function(){
f.apply(context, args);
},
delay || 750);
};
}

En los argumentos que acepta esta función pondrías el nombre de tu función y el tiempo en
milisegundos de retraso en la ejecución. Mas o menos así:

throttle(miFuncion(), 10000);

Compartir Mejora esta respuesta Seguir respondida el 23 feb. 18 a las 17:35


Gonsabb
120 2 11

https://es.stackoverflow.com/questions/140653/ejecutar-función-php-con-pagina-con-ajax-a-cada-cierto-tiempo 3/3

También podría gustarte