gpt4 book ai didi

javascript - 如何以一种或另一种方式对从帖子返回的数据求和

转载 作者:行者123 更新时间:2023-12-03 08:54:56 28 4
gpt4 key购买 nike

下面的代码基本上查询一个 PHP 文件,该文件查询数据库中的 cpu_names(在我的测试用例中总共 4 个)以及每个文件的相关负载。然后,我需要分别获取这四个 CPU 时间,将它们加在一起,然后除以 CPU 总数。这基本上得到了我的总 CPU 负载。因此,对于测试用例,此代码升级了 5 个总 CPU 指标,其中之一是总数。唯一的问题是,无论我尝试哪种方式,我都无法总结这些帖子!谢谢。

setInterval(function() {
fill_sum=0.0;
$("canvas[name='gauge']").each(function(){

var cpu_name=this.innerHTML;
var ctx = this.getContext('2d');
var padding = this.style.padding.replace(/[^0-9]+/, '');
var w=this.width
var h=this.height;
//var fill_percent=.02;


$.post("BH_Responder.php",
{cpu_use: true, cpu_name: cpu_name},
function(data, status){
fill_percent = data;
ctx.clearRect(0, 0, w, h);
DrawGauge(ctx, w, h, fill_percent);


}
).done(function() {
fill_sum = fill_sum+parseFloat(fill_percent);
});
});

alert(fill_sum);
total_percent = fill_sum/<?php echo $num_rows_cpu; ?>;

$("canvas[name='master_gauge']").each(function(){
var ctx = this.getContext('2d');
var padding = this.style.padding.replace(/[^0-9]+/, '');
var w=this.width
var h=this.height;
//var fill_percent=.02;
ctx.clearRect(0, 0, w, h);
DrawGauge(ctx, w, h, total_percent);
});
}, 100);

PHP 脚本响应程序脚本部分:

}elseif (isset($_POST['cpu_use']) == true && empty($_POST['cpu_use'])==false && $_POST['cpu_use']==true){
$cpu_name = $_POST['cpu_name'];
$sql= mysql_query("SELECT used FROM tbl_cpu_use WHERE cpu_name='$cpu_name' ORDER BY id DESC LIMIT 1;");
echo (mysql_num_rows($sql) != 0) ? mysql_result($sql,0,'used') : NULL;
}

最佳答案

For a good explanation of AJAX, callbacks, and all that

看起来你已经接近 .done() 但你需要把所有这些东西:

total_percent = fill_sum/<?php echo $num_rows_cpu; ?>;

$("canvas[name='master_gauge']").each(function(){
...
DrawGauge(ctx, w, h, total_percent);
});

在 .done() 回调中,但仅在最后一个 ajax 响应时调用它。要么跟踪您在发出 ajax 请求之前设置的计数器,要么跟踪您将在 PHP 方面发出多少请求。

类似于:

var totalCpus = <?php echo $numCpus; // assuming you're using PHP to echo out the gauges in
// the first place. otherwise use ?>
var totalCpus = $("canvas[name='gauge']").length; // use this.
// assuming of course, that the # of gauges is the same throughout each interval
setInterval(function() {
fill_sum=0.0;
$("canvas[name='gauge']").each(function(){

var numDoneRequests = 0; // this one keeps track of *dun dun dunnn* the number of requests that have completed
var cpu_name=this.innerHTML;
...
).done(function() {
fill_sum = fill_sum+parseFloat(fill_percent);
numDoneRequests++;

if(numDoneRequests === totalCpus) {
total_percent = fill_sum/<?php echo $num_rows_cpu; ?>;

$("canvas[name='master_gauge']").each(function(){
var ctx = this.getContext('2d');
...
DrawGauge(ctx, w, h, total_percent);
});
...
alert(fill_sum);
}, 100);

还有害怕 @alfasin 的 friend ,小 Bobby Tables。当你这样做时

$sql= mysql_query("SELECT used FROM tbl_cpu_use WHERE cpu_name='$cpu_name' ORDER BY id DESC LIMIT 1;");
^^^^^^^^^

您将完全未经检查的用户输入插入到将要访问您的数据库的查询中,并使自己面临 SQL 注入(inject)。我意识到这可能是一个人为的例子,如果是的话,我很抱歉指出了您已经知道的事情。

(另外,请查看“Why shouldn't I use mysql_* functions in PHP? ”,了解您不应该使用 mysql_ 库连接到数据库的原因以及一些漂亮的替代方案)

关于javascript - 如何以一种或另一种方式对从帖子返回的数据求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32546146/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com