Я пытаюсь создать сайт для поиска торрентов с помощью моего Synology NAS API. Запрос API строит результаты с частичными результатами, доступными для извлечения. Я хотел бы систематически извлекать эти результаты и строить свою таблицу, в то же время позволяя себе отменить задачу или просмотреть уже полученные результаты.
Я посмотрел библиотеку JS Parallel.js и мне не повезло. Я также искал в сети динамическое обновление таблиц и табличные результаты в JS, но не нашел ничего полезного.
<table id="example" class="table table-striped table-bordered" style="width:100%">
<thead>
<tr>
<th>Title</th>
<th>Date</th>
<th>Peers</th>
<th>Seeds</th>
<th>Size</th>
<th>Link</th>
</tr>
</thead>
<tbody id="maintable"></tbody>
<tfoot>
<tr>
<th>Title</th>
<th>Date</th>
<th>Peers</th>
<th>Seeds</th>
<th>Size</th>
<th>Link</th>
</tr>
</tfoot>
</tbody>
</table>
function sleep(miliseconds) {
var currentTime = new Date().getTime();
while (currentTime + miliseconds >= new Date().getTime()) {
}
}
$(document).ready(function() {
$('#example').DataTable();
} );
function GetSearchResults(taskID){
var url = "http://MY_IP:MY_PORT/webapi/DownloadStation/btsearch.cgi?api=SYNO.DownloadStation.BTSearch&version=1&taskid=" + taskID + "&method=list&offset=0";
//start loop
$.getJSON( url, function( data ) {
for(var i = recorded; i < data.data.items.length; i ++){
$("#maintable").append(
"<tr><td>" + data.data.items[i].title +
"</td><td>" + data.data.items[i].date +
"</td><td>" + data.data.items[i].peers +
"</td><td>" + data.data.items[i].seeds +
"</td><td>" + data.data.items[i].size +
'</td><td><a href="' + data.data.items[i].download_uri +
'">Link</a></td></tr>'
);
}
sleep(2000);
$("#tablebody").draw();
// end loop
});
}
Похоже, что это работает нормально, однако запрос установит для «возвращенного» значения в возвращаемых результатах значение true, когда поиск будет завершен. Я хочу просмотреть результаты, обновляя таблицу новыми результатами каждые две секунды. Если я перебираю это в цикле и жду, пока законченное значение не изменится, обновляя результаты по мере продвижения, в настоящее время страница останавливается.
Заранее спасибо.