Опрос одной функции за другой, вторая функция не срабатывает правильно - PullRequest
0 голосов
/ 28 марта 2020

--------- ИСПРАВЛЕНО ПРОБЛЕМА -----------

Не уверен, что проблема была, так как никогда не получал ошибку в консоли, но функции теперь работает как ожидалось.

У меня проблема с двумя функциями, которые опрашивают удаление и опрашивают вставку с использованием событий на стороне сервера

Опрос удаления работает нормально, как видно из фрагмента консоли ниже.

Проблема в опросе вставки, глядя на консоль, он показывает:

Начало вставки

Конец вставки

Процент выполнения 100

Вставка

Это на самом деле не показывает количество вставленных записей, и я изо всех сил пытаюсь заставить его работать правильно, любая помощь будет оценена.

Процент завершен 71
Процент завершен 74
Процент завершен 77
Процент выполнен 80
Процент выполнен 82
Процент выполнен 85
Процент выполнен 88
Процент выполнен 91

Процент завершен 94
Процент выполнен 97
Процент выполнен 100
Конец удаления

статус успешно

проверка статуса

Начало вставки

Конец вставки

Процент выполнения 100

Вставка

$(function () {
    $("#submissionData").html("");
    $("#uploadMembers").on("click",function (event) {
        event.preventDefault();
        console.log("Form submitted");
        checkDeleteStatus();
    });

});
//Delete Polling
function checkDeleteStatus() {
    if (typeof EventSource === "undefined") {
        $("#status").append("<div>Sorry your browser does not support SSE</div>");
    }
    console.log("Start of delete");
    var source = new EventSource("/PollingDeleteOldProducts");

    source.addEventListener("message", function (event) {
        var data = JSON.parse(event.data);

        $.each(data.DisplayPollingInsert, function (key, value) {

            document.getElementById("uploadProgress").value = value.TotalPercentageDone;
            console.log("Percentage complete " + value.TotalPercentageDone);
            $(".progress-bar-custom").css("width", value.TotalPercentageDone + "%");
            $(".progress-bar-custom").html(value.TotalPercentageDone + "%");


            $("#ajaxRegister").html(`<p class=\"text-danger-custom\">${value.DisplayUpdate}</p>`);
            if (value.DisplayUpdate === "Completed Delete") {
                console.log("End Of Delete");
                source.close();
                console.log("status success");
                InsertProducts();
            }
        });

    },
        false);
}
//Polling
function checkStatus() {
    console.log("check status");
    if (typeof EventSource === "undefined") {
        $("#status").append("<div>Sorry your browser does not support SSE</div>");
    }
    console.log("Start of insert");
    var source = new EventSource("/PollingFileUpload");

    source.addEventListener("message", function (event) {
        var data = JSON.parse(event.data);

        $.each(data.DisplayPollingInsert, function (key, value) {
            document.getElementById("uploadProgress").value = value.TotalPercentageDone;
            console.log("Percentage complete " + value.TotalPercentageDone);
            $(".progress-bar-custom").css("width", value.TotalPercentageDone + "%");
            $(".progress-bar-custom").html(value.TotalPercentageDone + "%");


            $("#ajaxRegister").html(`<p class=\"text-success-custom\">${value.DisplayUpdate}</p>`);
            if (parseInt(value.TotalCount) > 0) {
                console.log("Inserting");
                if (parseInt(value.TotalCount) === parseInt(value.CurrentCount)) {
                    source.close();
                }
            }

        });
    },
        false);

    console.log("End insert");
}

function InsertProducts() {
    var formData = new FormData(document.getElementById("frmUploadProducts"));
    checkStatus();
    jQuery.ajax({
        enctype: "multipart/form-data",
        contentType: false,
        processData: false,
        async: false,
        type: "Post",
        url: "/InsertProducts",
        data: formData,
        cache: false,
        dataType: "json",
        success: function (dataForm, status) {
            if (status === "success") {
                if (dataForm.Confirm === "NoTicket") {
                    $("#submissionData").append(`<p class=\"text-danger-custom\">${dataForm.Message}</p>`).show();

                } else if (dataForm.Confirm === "NoExcelFileUploaded") {
                    $("#submissionData").append(`<p class=\"text-danger-custom\">${dataForm.Message}</p>`).show();
                    $('#submissionData').html("");

                } else if (dataForm.Confirm === "OperationComplete") {
                    if (dataForm.Errors !== "") {
                        $("#submissionData").html("");
                        $("#submissionData").append(dataForm.Errors);
                        $("#uploadMembers").attr("disabled", true);
                    }
                }
                else if (dataForm.Confirm === "false") {
                    $("#ajaxRegister").html("");
                    $("#ajaxRegister").append(`<p class=\"text-danger-custom\">${dataForm.Message}</p>`).show();
                    $("#submissionData").html("");
                    $("#submissionData").append(dataForm.Errors);
                }
                else {
                    $("#submissionData").append(`<p class=\"text-danger-custom\">Something has went wrong</p>`).show();
                }
            }
        }
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...