1

处理具有许多 AJAX 调用的 jQuery 语句的最佳方法是什么?

下面的代码似乎效率低下。

$("#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);
        }
    });
});
4

1 回答 1

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,请使用 PHP json_encode() 调用 JSON 编码数据

于 2013-02-17T02:26:56.590 回答