0

私は問題を抱えていて、それを解決する方法がわかりません。どちらもAJAX経由で呼び出され、最初の関数は値を取得してDBにレコードを挿入し、2番目の関数はDBから読み取り、結果を表示します。最初の関数はリモートで値を取得するため、応答時間が 2 番目の関数よりも長くなることがあります。そのため、2 番目の関数は最初の関数よりも先に実行されます。私が必要とするのはbuildTablesFromDB()、AJAX 呼び出しbuildClassification()が完了した場合にのみ呼び出すことです。これは私のコードがどのように見えるかです:

$(document).ready(function() {
    function buildTablesFromDB() {
        var request = $.ajax({
            type: 'GET',
            dataType: 'json',
            url: "http://local/parser/reader.php",
            success: function(data) {
                $("#clasification-data").html();

                if (data.response === false) {
                    $(".alert").show();
                    $(".close").after(data.error);
                } else {
                    if (data.html_content.position.length != 0) {
                        $("#clasification-holder").show();
                        var iterator = data.html_content.position;
                        var tr = "";
                        $.each(iterator, function(key, value) {
                            tr += "<tr>";
                            tr += '<td><img src="' + value.team_image + '" alt="' + value.team_name + '" title="' + value.team_name + '">&nbsp;&nbsp;' + value.team_name + '</td>';
                            tr += '<td>' + value.team_jj + '</td>';
                            tr += '<td>' + value.team_jg + '</td>';
                            tr += '<td>' + value.team_jp + '</td>';
                            tr += '<td>' + value.team_difference + '</td>';
                            tr += '<td><span class="glyphicon glyphicon-play"></span><span class="glyphicon glyphicon-stop"></span></td>';
                            tr += '</tr>';
                        });

                        $("#clasification-data").html(tr);
                    }
                }
            },
            error: function() {
                request.abort();
            }
        });
    }

    function buildClassification() {
        var request = $.ajax({
            type: 'GET',
            dataType: 'json',
            url: "http://local/parser/parser.php",
            success: function(data) {
                if (data.response === false) {
                    // some error
                }
            },
            error: function() {
                request.abort();
            }
        });
    }

    window.setInterval(function() {
        buildClassification();
    }, 1800000); // Updates table results each 30 minutes

    window.setInterval(function() {
        buildTablesFromDB();
    }, 1800000); // Updates table results each 30 minutes

    buildClassification();
    buildTablesFromDB();
});

どうすればこれを行うことができますか?

4

1 に答える 1