Обновление данных в реальном времени с помощью PHP

0

У меня есть 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();
 }
?>
  • 0
    Вы можете использовать таймер JavaScript с функцией setInterval для запуска каждые x секунд. убедитесь, что вы реализуете вызов ajax внутри него.
  • 0
    Это хорошо, чтобы вернуть JSON в вашем API. И для того, чтобы сделать это живым, вы можете периодически получать данные от своего API, с помощью Ajax обновляйте свой DOM вместе с ним. Также плохим подходом является обновление вашей страницы заголовками: header("Refresh: 2") .
Теги:

2 ответа

0
Лучший ответ

Используйте функцию setInterval для запроса API каждый раз: https://www.w3schools.com/jsref/met_win_setinterval.asp

Удобный для меня способ - использовать Vue и Vue-ресурс посредством привязки данных, после запроса API и изменения данных страница будет повторно отображена без обновления всей страницы.

  • 1
    Просто как <script type = "text / javascript"> var timeout = setInterval (reload, 1000); function reload () {$ ('# uptime'). load ('includes / functions / uptime.php'); } </ script>
  • 0
    @ user2720970 да, это самое простое решение
1

Чтобы все было просто, вы могли бы создать функцию, которая имеет ваш вызов 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);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню