Я добавляю строки в таблицу и заполняю данными из API с использованием JavaScript, могу ли я получить таблицу для обновления строк каждую минуту - PullRequest
0 голосов
/ 22 апреля 2019

Я пытаюсь создать строки, которые обновляются каждую минуту, я создал таблицу в html и добавляю в нее строки с помощью javascript. есть ли способ заставить эти строки обновляться каждую минуту, не добавляя больше строк в конец таблицы

Таблица в моем .html файле ниже

<table class="table table-dark" id = "statsTable">
  <thead>
    <tr>
      <th scope="col">Name</th>
      <th scope="col">Symbol</th>
      <th scope="col">Price </th>
      <th scope="col">Day High</th>
      <th scope="col">Day Low</th>
      <th scope="col">Market Cap</th>
      <th scope="col">%24h</th>
    </tr>
  </thead>
  <tbody id = "stats">
  </tbody>
</table>

JavaScript ниже


{% block jquery %}
var endpoint = '/api/table/data'
populateTable()

function populateTable(){
$.ajax({
  method: "GET",
  url: endpoint,
  success: function(data){
    console.log(data)
    var table_data ='';

    for (var key in data){
      table_data += '<tr>';
      table_data += '<td><a href = "{% url 'webapp-graph'%}"><img src="https://www.cryptocompare.com'+data[key].EUR.IMAGEURL+'"alt="'+key+'logo" style =" width:3em; height:auto;"></a></td>';
      table_data += '<td>' +key+ '</td>'
      table_data += '<td>' +data[key].EUR.PRICE+ '</td>';
      table_data += '<td>' +data[key].EUR.HIGHDAY+ '</td>';
      table_data += '<td>' +data[key].EUR.LOWDAY+ '</td>';
      table_data += '<td>' +data[key].EUR.MKTCAP+ '</td>';

      if (data[key].EUR.CHANGEPCT24HOUR[0] == '-') {
        table_data += '<td style = "color:red">' +data[key].EUR.CHANGEPCT24HOUR+ '</td>';
      } else {
        table_data += '<td style = "color:green">' +data[key].EUR.CHANGEPCT24HOUR+ '</td>';
      }
      table_data += '</tr>';
    }
    $('#stats').append(table_data);
    },
  })
}
 {% endblock %}

Ответы [ 2 ]

0 голосов
/ 23 апреля 2019

Вы можете иметь представление django, которое возвращает визуализированную таблицу:

def some_view(request):
    data_table = get_data_table()
    return render_to_string("table.html", data_table)

и назовите это js через ajax, результатом будет ваша html-таблица, которую вы затем можете вставить / заменить html в некоторый div.

0 голосов
/ 22 апреля 2019

Вы можете использовать setTimeout для опроса сервера через указанные интервалы. В конце вашей функции popualateTable вы можете добавить setTimeout(populateTable,1000); См. post для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...