我需要
所以脚本只运行我从浏览器调用free.php。我想只使用 php 5.3 + javascript / AJAX + html (=没有cron,jQuery等)
答案 0 :(得分:2)
set_time_limit(0);
$results = array();
while (TRUE) {
system('free -m', $result);
$results[] = $result;
sleep(60);
}
然而,这种事情在cron中会很有用。
答案 1 :(得分:2)
我知道你不想在这里使用jQuery,但它只是一个可用的工具。您可以完全用您喜欢的任何ajax库替换它。
关键是使用Javascript timer来管理setInterval
。
// Here's the function that will be run.
function get_free_mem() {
$.get('/free_mem.php', {}, function(data){
// data contains the HTML output from the script.
// '#somewhere' is the HTML element that you want the
// output of the script appended to.
$('#somewhere').append(data);
}, 'html');
}
// And here's how we'll run it.
var timer = setInterval(get_free_mem, 60 * 1000); // 60 seconds
这里是free_mem.php
:
<pre><?php passthru('free -m'); ?></pre>
每隔60秒,get_free_mem
函数将触发,它将请求PHP脚本并将输出附加到页面上的HTML元素。
(此代码未经测试。)
(是的,我知道如果被调用的脚本需要一段时间才能返回,setInterval
事情可能会适得其反并导致更新时间不均匀,并且使用setTimeout
代替并在ajax完成时重新触发它更好的做法,但我相信被调用的脚本很简单,这不应该是一个太大的问题。)