Страница перестает отвечать и зависает при отправке непрерывного запроса на веб-сервер с ajax - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь создать сигнал на веб-странице и отобразить зеленый или красный цвет на основе значений, извлеченных из базы данных. Но когда я отправляю запрос через 10 секунд, страница кажется зависшей и не отвечает. Я не могу определить, в чем проблема, пожалуйста, помогите мне решить эту проблему.

Использование Techstack - HTML, CSS, Js, Ajax, Python (Flask) и PostgreSQL

function healthstatus(){

    var header = document.getElementById("circle");

    var tbid = $('#multipletestbench').val();

    var signal = $.ajax({
        type: 'POST',
        url: '/healthstatus?tbid='+tbid,
        data: "",
        contentType: false,
        dataType: "json",
        async:false,
        cache: false,
        processData: false,
        success: function(data) {
        },
        //error: function(data) {
        //  alert("Data Not received !!");
        //},
        complete: function(data){
            setTimeout(healthstatus, 10000);
        }
    });

    var signaldata = JSON.parse(signal.responseText);

    var signalvalue = signaldata[0].signalvalue;
    var datevalue = signaldata[0].date;

    if(signalvalue == '1')
    {
        header.style.background = "green";
    }
    else
    {
        header.style.background = "red";
    }
};

setTimeout(healthstatus, 10000);

Flask Код:

from flask import Flask, redirect, url_for, request, render_template
from werkzeug.utils import secure_filename
from flask import jsonify
import json

from collections import OrderedDict

import psycopg2

app = Flask(__name__)

@app.route('/healthstatus', methods = ['POST', 'GET'])
def health_status():

    tbid = request.args['tbid']

    if request.method == 'POST':

        connection = psycopg2.connect(user = "postgres", password = "abcd",host = "localhost",port = "5432", database="mydb")
        cursor = connection.cursor()

        sql1 = "Select * from health_status_vw where tb_id = %s"

        record_to_update = (tbid,)

        cursor.execute(sql1,record_to_update)
        record = cursor.fetchall()

        health_arr = []

        for i in record:
            hs = OrderedDict()
            hs["signalvalue"] = i[0]
            hs["date"] = i[1]
            hs["tbid"] = i[2]

            health_arr.append(hs)


        json_date = json.dumps(health_arr, default = str)

        return json_date

if __name__ == '__main__':
    app.run(debug = True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...