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