У меня есть API, который работает хорошо, однако я бы хотел, чтобы он был в прямом эфире (периодически получайте данные из API и показывайте его в моем html-коде).
Мне просто нужно немного намека на то, с чего я больше всего начинаю. Javascript, Ajax?
Любой ключ был бы оценен.
Мой PHP/HTML:
<h4>Cpu Load</h4>
<span class="text-muted"><?php
echo "" . $first['cpu-load'] . " %" . "";
?></span>
Какой выход 2% или что-то еще. При обновлении страницы обновляется новое значение.
Мой PHP API:
<?php
require('includes/routeros_api.class.php');
$API = new RouterosAPI();
$API->debug = false;
if ($API->connect('MYIP', 'USER', 'PASS')) {
$ARRAY = $API->comm("/system/resource/print");
$first = $ARRAY['0'];
$API->disconnect();
}
?>
Используйте функцию setInterval для запроса API каждый раз: https://www.w3schools.com/jsref/met_win_setinterval.asp
Удобный для меня способ - использовать Vue и Vue-ресурс посредством привязки данных, после запроса API и изменения данных страница будет повторно отображена без обновления всей страницы.
Чтобы все было просто, вы могли бы создать функцию, которая имеет ваш вызов ajax. Вы должны искать использование jQuery.ajax, но это дает вам представление.
function ajaxQuery(){
// some stuff inside here to perform call
$.ajax({
url: 'your-file.php',
dataType: 'what ever data type you expect from server...',
success: function(data) {
// this is where i would normal have an id setup to update
// a specific textbox or form field...
}
});
}
Затем вам нужно будет использовать функцию таймера javascript setInterval() где-то на вашей странице:
setInterval(ajaxQuery(), 2000);
Ajax
обновляйте свой DOM вместе с ним. Также плохим подходом является обновление вашей страницы заголовками:header("Refresh: 2")
.