如何在执行另一个呼叫之前使ajax呼叫等待完成

时间:2016-12-09 22:37:34

标签: javascript jquery ajax

我必须在两个网络上工作,一个是开放的,一个是秘密的。我的开发环境是在我的开放网络上,而prod就是秘密。在prod中,我通过json从另一个部门加载我们的大部分数据,我无法从dev访问,所以我使用本地保存的json文件。这项工作很好,但似乎在prod中,当我的第二个函数试图运行时,文件还没有完成加载。我正在寻找一种更好的方法来使函数BootstrapNews等到函数GetData完全加载。

使用Jquery 2.1.4

$(function () {

    $.getScript("json.js", function(){

        Page();

    });

    function Page()
    {
        var Breaking = ["F10209"]

        $('#loadingmessage').show();  // show the loading message.
        $.ajax({
            url: GetData(),
            success: function () {
                BootstrapNews();
                $('#loadingmessage').hide(); // hide the loading message
            },
            error: function (xhr, status, errorThrown) {
                $('#loadingmessage').hide(); // hide the loading message
            }            
        })

        function GetData() {
            displayContent(
               'BreakingNews',         //Control to receive the Data
               Breaking,               //Array of Categories to read from
               null,                   //Perform an AND query               20,                     //Max number of results to return
               false,                  //Categories that the Query Hit on.
               false,                  //Display the number of articles returned
               "T",                    //Date Range<strong></strong>
               "E",                     //E or F
               false,           //Is this a DataTable,
               true                     //Is this a Marquee
            );
        }

    function BootstrapNews() {
            $(".breaking-news").bootstrapNews({
                newsPerPage: 6,
                autoplay: true,
                pauseOnHover: true,
                navigation: false,
                direction: 'down',
                newsTickerInterval: 2500,
                onToDo: function () {
                    //console.log(this);
                }
            });
        }
    }
});

0 个答案:

没有答案