Javascript:Javascript函数中的等待加载屏幕仅在我调试或暂停脚本时出现

Javascript:Javascript函数中的等待加载屏幕仅在我调试或暂停脚本时出现,javascript,Javascript,我遇到了一个问题,JavaScript函数中的等待加载屏幕仅在我调试或暂停脚本时出现。如果我尝试直接执行,它根本不会出现 $('#btnPesquisar').click(function () { $.ajax({ method: 'GET', url: '<%= ResolveUrl("LiberarBoleto.aspx/onSearch") %>', contentType: 'application/json; cha

我遇到了一个问题,JavaScript函数中的等待加载屏幕仅在我调试或暂停脚本时出现。如果我尝试直接执行,它根本不会出现

$('#btnPesquisar').click(function () {
    $.ajax({
        method: 'GET',
        url: '<%= ResolveUrl("LiberarBoleto.aspx/onSearch") %>',
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        data: { pv: JSON.stringify($('#txtVenda').val()), imob: JSON.stringify($('#drpDownImob').val()) },
        success: function (result) {
            console.log('Passo 1')
            showProgress();
            console.log ('Sleep')
            sleep(10000);

            ProcessVendas(result);
            sleep(10000);
            console.log('Passo 2')
            hideProgress();
            console.log('Passo 3')
        }
    });
});

function showProgress() {
    var updateProgress = $get("<%= UpdateProgress1.ClientID %>");
    sleep(10000);
    updateProgress.style.display = "block";
    sleep(10000);
    console.log('Exibição da Tela Aguarde Carregando Concluida')
    //updateProgress.style.display = "none";  

};

function hideProgress() {
    var updateProgress = $get("<%= UpdateProgress1.ClientID %>");
    updateProgress.style.display = "none";
}

function sleep(milliseconds) {
    var start = new Date().getTime();
    for (var i = 0; i < 1e7; i++) {
        if ((new Date().getTime() - start) > milliseconds) {
            break;
        }
    }
}
$('btnPesquisar')。单击(函数(){
$.ajax({
方法:“GET”,
url:“”,
contentType:'application/json;charset=utf-8',
数据类型:“json”,
数据:{pv:JSON.stringify($('txtVenda').val()),imob:JSON.stringify($('drpDownImob').val())},
成功:功能(结果){
console.log('Passo 1')
showProgress();
console.log('Sleep')
睡眠(10000);
处理结果;
睡眠(10000);
console.log('Passo 2')
hideProgress();
console.log('Passo 3')
}
});
});
函数showProgress(){
var updateProgress=$get(“”);
睡眠(10000);
updateProgress.style.display=“block”;
睡眠(10000);
console.log('Exibição da Tela Aguarde Carregando conclusida')
//updateProgress.style.display=“无”;
};
函数hideProgress(){
var updateProgress=$get(“”);
updateProgress.style.display=“无”;
}
函数睡眠(毫秒){
var start=new Date().getTime();
对于(变量i=0;i<1e7;i++){
如果((新日期().getTime()-start)>毫秒){
打破
}
}
}

这里的大问题是,您将JavaScript视为完全同步,而
get
请求则不是。因此,您可以使用jQuery发出一些
get
请求,并将JavaScript置于休眠状态,直到它加载了get请求。然而,等待10秒钟可能就足以完成所有代码并隐藏加载屏幕

扔掉sleep函数,使用从jQuery的
get
获取结果的正确方法构建更新函数(showprogress)

他们文档中的示例

$.get( "test.cgi", { name: "John", time: "2pm" } )
  .done(function( data ) {
     alert( "Data Loaded: " + data );
 });
有关异步的详细信息:


这里的大问题是,您将JavaScript视为完全同步,而
get
请求则不是。因此,您可以使用jQuery发出一些
get
请求,并将JavaScript置于休眠状态,直到它加载了get请求。然而,等待10秒钟可能就足以完成所有代码并隐藏加载屏幕

扔掉sleep函数,使用从jQuery的
get
获取结果的正确方法构建更新函数(showprogress)

他们文档中的示例

$.get( "test.cgi", { name: "John", time: "2pm" } )
  .done(function( data ) {
     alert( "Data Loaded: " + data );
 });
有关异步的详细信息:


通过上面的提示,我解决了以下问题:

    $('#btnPesquisar').click(function () {
        $.when(
            $.ajax({
                method: 'GET',
                url: '<%= ResolveUrl("LiberarBoleto.aspx/onSearch") %>',
                contentType: 'application/json; charset=utf-8',
                dataType: 'json',
                data: { pv: JSON.stringify($('#txtVenda').val()), imob: JSON.stringify($('#drpDownImob').val()) },
                success: function (result) {
                    //console.log('Passo 1')
                    ////showProgress();
                    //// console.log ('Sleep')


                    //console.log('Passo 2')
                    ProcessVendas(result)

                    //console.log('Sleep')
                    sleep(1000);


                }
            }).then(showProgress())).done(function () { hideProgress() })



    });
$('btnPesquisar')。单击(函数(){
美元。什么时候(
$.ajax({
方法:“GET”,
url:“”,
contentType:'application/json;charset=utf-8',
数据类型:“json”,
数据:{pv:JSON.stringify($('txtVenda').val()),imob:JSON.stringify($('drpDownImob').val())},
成功:功能(结果){
//console.log('Passo 1')
////showProgress();
////console.log('Sleep')
//console.log('Passo 2')
ProcessVendas(结果)
//console.log('Sleep')
睡眠(1000);
}
}).then(showProgress()).done(函数(){hideProgress()})
});

通过上面的提示,我解决了以下问题:

    $('#btnPesquisar').click(function () {
        $.when(
            $.ajax({
                method: 'GET',
                url: '<%= ResolveUrl("LiberarBoleto.aspx/onSearch") %>',
                contentType: 'application/json; charset=utf-8',
                dataType: 'json',
                data: { pv: JSON.stringify($('#txtVenda').val()), imob: JSON.stringify($('#drpDownImob').val()) },
                success: function (result) {
                    //console.log('Passo 1')
                    ////showProgress();
                    //// console.log ('Sleep')


                    //console.log('Passo 2')
                    ProcessVendas(result)

                    //console.log('Sleep')
                    sleep(1000);


                }
            }).then(showProgress())).done(function () { hideProgress() })



    });
$('btnPesquisar')。单击(函数(){
美元。什么时候(
$.ajax({
方法:“GET”,
url:“”,
contentType:'application/json;charset=utf-8',
数据类型:“json”,
数据:{pv:JSON.stringify($('txtVenda').val()),imob:JSON.stringify($('drpDownImob').val())},
成功:功能(结果){
//console.log('Passo 1')
////showProgress();
////console.log('Sleep')
//console.log('Passo 2')
ProcessVendas(结果)
//console.log('Sleep')
睡眠(1000);
}
}).then(showProgress()).done(函数(){hideProgress()})
});

什么是“等待加载屏幕”?在您的代码中,具体哪里发生了问题?这些
sleep()
调用的目的是什么?Aggh
sleep
这不是JavaScript中需要的。对于其他编程语言来说很好,但对于JS来说不是。什么是“等待加载屏幕”?在您的代码中,具体哪里发生了问题?这些
sleep()
调用的目的是什么?Aggh
sleep
这不是JavaScript中需要的。适用于其他编程语言,但不适用于JS。