Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AJAX不一致返回值_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript AJAX不一致返回值

Javascript AJAX不一致返回值,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我在插入USB温度探测器的服务器上对PHP脚本进行了一个简单的ajax调用。当温度超过100时,ajax调用不会始终返回正确的温度。有时返回完整的温度,即145.78,有时仅返回超过100的部分,即45.78 从命令行运行PHP脚本每次都会产生一致的结果;不管我连续运行了多少次 我创建了另一个PHP文件,让它回显123.45,并通过ajax调用运行它,它似乎一致地返回完整的数字 以下是与此相关的示例代码: JS PHP 命令行 当我把时间间隔从1000毫秒减到2000毫秒甚至3000毫秒时,情况

我在插入USB温度探测器的服务器上对PHP脚本进行了一个简单的ajax调用。当温度超过100时,ajax调用不会始终返回正确的温度。有时返回完整的温度,即145.78,有时仅返回超过100的部分,即45.78

从命令行运行PHP脚本每次都会产生一致的结果;不管我连续运行了多少次

我创建了另一个PHP文件,让它回显123.45,并通过ajax调用运行它,它似乎一致地返回完整的数字

以下是与此相关的示例代码:

JS

PHP

命令行


当我把时间间隔从1000毫秒减到2000毫秒甚至3000毫秒时,情况似乎有所好转,但仍然不一致。我在上面发布的运行间隔设置为2000,但它从未显示整数

也许它不能很好地并行处理多个请求?当我告诉别人这个问题时,我意识到,如果我将整个系统切换到摄氏度,这将不会是一个问题。如果需要,我甚至可以在拉动摄氏度读数后转换为华氏温度。我考虑了并行请求,但如果我在网页循环的同时发出命令行请求,则只会出错。当您通过浏览器运行脚本temp0.php时,您是否也有同样的问题?
function monitorLoop() {
    $.ajax({
        url: 'temp0.php',
        type: 'get',
        dataType: 'html',
        success: function(data) {
            console.log( data );
        }
    });

}

$("#toggleMonitor").on( "click", function() {
    looping = !looping;
    if (looping) {
        loop = setInterval( function() { monitorLoop(); }, 1000 );
    } else {
        clearInterval( loop );
    }
});
<?php
    $pattern = '/[0-9]*[0-9][0-9]\.[0-9][0-9]/';

    $temperature = exec('sudo pcsensor -f -n0');
    preg_match( $pattern, $temperature, $output, PREG_OFFSET_CAPTURE);
    echo $output[0][0];
?>
"90.74" brewery.js:47
"90.29" brewery.js:47
"90.29" brewery.js:47
"89.39" brewery.js:47
"89.39" brewery.js:47
"89.39" brewery.js:47
"89.39" brewery.js:47
"89.39" brewery.js:47
"89.39" brewery.js:47
"89.61" brewery.js:47
190.29pi@raspberrypi /var/www $ php temp0.php
190.40pi@raspberrypi /var/www $ php temp0.php
190.85pi@raspberrypi /var/www $ php temp0.php
191.08pi@raspberrypi /var/www $ php temp0.php
190.96pi@raspberrypi /var/www $ php temp0.php
190.29pi@raspberrypi /var/www $ php temp0.php
190.62pi@raspberrypi /var/www $ php temp0.php
190.18pi@raspberrypi /var/www $ php temp0.php
189.61pi@raspberrypi /var/www $ php temp0.php
189.39pi@raspberrypi /var/www $ php temp0.php