2013-02-17 2 views
1

Каков наилучший способ справиться с оператором jQuery, который имеет много вызовов AJAX?Работа с оператором jQuery с большим количеством вызовов AJAX

Код ниже кажется немного неэффективным.

$("#search_building").on("change blur", function() { 
    var building = $("#search_building").val(); 
    var room = $("#search_room").val(); 
    var dept = $("#dept").val(); 
    var dataString = 'room=' + room + '&' + 'building=' + building + '&' + 'dept=' + dept; 
    $.ajax({ 
     type: "POST", 
     url: "process_building.php", 
     data: dataString, 
     cache: false, 
     success: function (html) { 
      $('#search_room').html(html); 
     } 
    }); 
    $.ajax({ 
     type: "POST", 
     url: "process_timetableMon.php", 
     data: dataString, 
     cache: false, 
     success: function (html) { 
      $('#grid2_mon').html(html); 
     } 
    }); 
    $.ajax({ 
     type: "POST", 
     url: "process_timetableTue.php", 
     data: dataString, 
     cache: false, 
     success: function (html) { 
      $('#grid2_tue').html(html); 
     } 
    }); 
    $.ajax({ 
     type: "POST", 
     url: "process_timetableWed.php", 
     data: dataString, 
     cache: false, 
     success: function (html) { 
      $('#grid2_wed').html(html); 
     } 
    }); 
    $.ajax({ 
     type: "POST", 
     url: "process_timetableThu.php", 
     data: dataString, 
     cache: false, 
     success: function (html) { 
      $('#grid2_thu').html(html); 
     } 
    }); 
    $.ajax({ 
     type: "POST", 
     url: "process_timetableFri.php", 
     data: dataString, 
     cache: false, 
     success: function (html) { 
      $('#grid2_fri').html(html); 
     } 
    }); 
}); 
+1

объединить содержимое на сервере и сделать один звонок, разобрать ответ на соответствующие контейнеры – charlietfl

ответ

2

Заменить все ваши AJAX звонки с одного AJAX вызова:

$.ajax({ 
    type: "POST", 
    dataType: "json", 
    url: "process_all.php", 
    data: dataString, 
    cache: false, 
    success: function (data) { 
    //This is your json data 
    //data[n] is just an illustration of how you could use your json that you get back. 
    //In reality it depends on how you do your server side processing 
    $('#grid2_day1').html(data[0]); 
    $('#grid2_day2').html(data[1]); 
    $('#grid2_day3').html(data[2]); 
    $('#grid2_day4').html(data[3]); 
    $('#grid2_day5').html(data[4]); 
    } 
}); 

отметить также, что URL называют бы одно место, где вы делаете все ваши обработки или, по крайней мере, триггер независимо от обработки, что вам нужно делать.

Чтобы вернуться JSON после обработки, вызов JSON кодирования данных с помощью PHP json_encode()

+0

Упс теперь его неподвижная – karancan

Смежные вопросы