AJAX:如何实时读取更改(crontab-)文件?

时间:2013-10-01 14:41:49

标签: javascript php jquery ajax asynchronous

我想在管理面板中显示一些不断变化的cronjob文件 live 的输出。

我知道如何通过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插件会很棒。

2 个答案:

答案 0 :(得分:1)

我用一个调用ajax函数的间隔来解决这个问题

一些伪代码

AJAX:

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 :(得分:1)

Websockets帮助您在页面上激活响应。你不需要使用setInterval&amp;阿贾克斯。更像是聊天应用程序