datatable ajax как обновлять данные строки последовательно, а не сразу? - PullRequest
0 голосов
/ 04 мая 2020

Я использую flask с маршрутами ajax и flask, которые возвращаются через 3 минуты с единичным временем доступа с ajax. Я хочу обновить веб при получении от flask маршрутов. Тем не менее, кажется, обновлять веб сразу, когда возвращают все итерации. (Поскольку я новичок в javascript и jquery, ajax, мне сложно найти, где проблема.)

Не могли бы вы посоветовать, как обновлять веб при каждом получении jsonify возврата от search_word?

<script>
    $(document).ready(function () {
        var events = $('#events');
        var table = $('#example').DataTable({
            dom: 'Bfrtip',
            select: true,
            order: [[0, "desc"]],
            buttons: [
                {
                    text: 'Get selected data',
                    action: function () {
                        //var array = []
                        //var count = table.rows({ selected: true }).count(); 
                        table.rows('.selected').every(function (rowIdx) {
                            //array.push(table.row(rowIdx).data())
                            $.ajax({
                                type: 'POST',
                                url: '/search_word',
                                contentType: 'application/json',
                                data: JSON.stringify(table.row(rowIdx).data()),
                                success: function (data) {
                                    table.cell({ row: rowIdx, column: 2 }).data(data[2]);

                                    //console.log("Current process " + rowIdx);
                                    //alert(data);
                                }
                            })
                        })
                    }
                }
            ]
        });
    });

</script>

@app.route('/search_word', methods=['POST'])
def search_word():
start_time = time.time()
data = request.get_json()
data[2] = 0
combination_keyword = data[1].split(' | ')

logfiles = getListOfFiles('jquery_log_analyzer/logs')
cnt_keyword = 0
for logfile in logfiles:
    loglines = open(logfile, 'r').readlines()
    for logline in loglines:
        if all(word in logline for word in combination_keyword):
            data[2] = data[2] + 1        

print(time.time() - start_time)
return jsonify(data)

enter image description here

...