2013-10-01 3 views
0

Я хотел бы отобразить вывод некоторых изменяющихся файлов cronjob live в админпанели.AJAX: Как читать измененный (cronjob-) файл вживую?

Я знаю, как читать файл через ajax и как устанавливать интервалы. Но я не знаю, как это сделать вживую.

Вот некоторые псевдокод:

$.ajax({ 
    url: "cronjob.php", 
    live: true, 
    interval: 4000, 
    output: "#outputDiv", // gets updated every 4 seconds 
    timeout: 30000 
}).done(function() { 
    alert("cronjob done."); 
}); 

Выход:

- cronjob start - 
Task 1: done (2.3 seconds) 
Task 2: done (214.9 seconds) 
Task 3: done (19.2 seconds) 
- cronjob end - 

Я мог бы использовать IFRAME для живого эффекта, но мне нужен обратный вызов, когда cronjob делается.

Кто-нибудь знает, как справиться с этой проблемой? Плагин jQuery будет отличным.

ответ

1

Я решил это с интервалом, который вызывает функцию АЯКС

некоторые псевдокод:

Аякса:

function cronlive(intervallid) { 
    $.ajax({ 
      url: "cronjob.php", 
      async: false, 
      type: "POST", 
      success: function(response) { 
        if(response == 'finished') { 
          window.clearInterval(intervalid); 
        } else { 
          $('#log').append(response); 
        } 
      } 
    }); 
} 

JavaScript:

$('#showlivecron').click(function() { 
     var interval = setInterval(cronlive(interval), 4000); 
    } 

HTML:

<html> 
     <head> 
     <!-- include jquery --> 
     </head> 
     <body> 
     <button id="showlivecron">Show Live Cronjobs</button> 
     <div id="log"></div> 
     </body> 
</html> 
1

Websockets поможет вам ответить на страницу. Вам не нужно использовать setInterval & ajax. Больше как чат-приложение

Смежные вопросы