Выполнять функцию php со страницей с ajax в периодически

я нуждаюсь в том, чтобы выполнить функцию php (что выполняет консультацию) периодически, я понимаю, что он с ajax, но функция должна быть в том же файле, что и функция ajax, которая будет выполнять это. Спасибо!

<?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>
0
задан 22.02.2018, 22:06
3 ответа

Используя твой собственный c¦digo, añado часть, что conseguir¦, - чтобы называть funci¦n:

<?php
    if(isset(

Используя твой собственный c¦digo, añado часть, что conseguir¦, - чтобы называть funci¦n:

[110]

Часть HTML ser¦ - в 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>
POST["action"])) { // Se pasa una acción switch(sprintf("%d",

Используя твой собственный c¦digo, añado часть, что conseguir¦, - чтобы называть funci¦n:

[110]

Часть HTML ser¦ - в 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>
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 } ?>

Часть HTML ser¦ - в 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>
2
ответ дан 24.11.2019, 01:41

Podés использовать так называемый funci¦n setInterval () из языка сценариев JavaScript.

Пример:

timer = setInterval("update()", 5000);

Это будет выполнять твой funci¦n update каждые 5 секунд

В update ты реализуешь призыв к твоему archivo.php.

0
ответ дан 24.11.2019, 01:41
  • 1
    Fí jate, что funció n, который он хочет выполнить, является частью php, а следовательно ты не можешь называть funció n прямо и ты должен использовать ajax. –  track3r 22.02.2018, 22:15
  • 2
    спасибо, в поэтому объясните, что в update ты реализуешь вызов ajax., я ошибаюсь по этому поводу? –  mafewo 22.02.2018, 22:17
  • 3
    Я помещаю тебе пример в ответ, podrí чтобы улучшаться. –  track3r 22.02.2018, 22:19

Ты можешь añadir "throttle" в твой funci¦n:

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);
  };
}

В аргументах, которые принимают этот funci¦n, pondr¦-схвати имя твоего funci¦n и времени в миллисекундах задержки в ejecuci¦n. Более или менее as¦-:

throttle(miFuncion(), 10000);
0
ответ дан 24.11.2019, 01:41