我想在管理面板中显示一些不断变化的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插件会很棒。
答案 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;阿贾克斯。更像是聊天应用程序