如何在异步查询中显示加载窗口?(或可能是同步)

时间:2014-10-13 11:53:51

标签: javascript jquery extjs

我有:

  function load_data(data) {

    var myMask = new Ext.LoadMask(Ext.getBody(), {msg:"Please wait..."});
    myMask.show();


    $.ajax({
            url: '/dostup/data_json.php',
            method: 'GET',
            async: true,
            data: {
                   epsg: data
            },
            dataType: 'json',
            error: function(jqXHR, status, error) {
              console.log('ошибка получения данных: '+data);
            },
            success: function(data2) {
                window[data] = data2;
                window[data+"_layer"].clearLayers();
                window[data+"_layer"].addData(eval(data));
                myMask.hide();
            }
    });

  }

在网站(客户端)加载窗口[数据]之前隐藏了myMask。 我尝试设置async:false并且myMask不显示(我尝试和beforeSend)。

P.S。我有:

 function search_handler(val) {
        search_list=[];
        for (var t = 0; t < layer_array.length; t++) {   //>
           if (window[layer_array[t]] != undefined && !eval(layer_array[t]).features) load_data(layer_array[t]);
           if (window[layer_array[t]] != undefined && eval(layer_array[t]).features) {
             for (var i = 0; i < eval(layer_array[t]).features.length; i++) {   //>
                search_list.push(eval(layer_array[t]).features[i]);
             }
           }
        }
  ....more script
 }

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

1 个答案:

答案 0 :(得分:1)

您需要使用ajaxStartajaxStop

$(document)
  .ajaxStart(function () {
    myMask.show();
  })
  .ajaxStop(function () {
    myMask.hide();
  });