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 呼び出しを 1 つの 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 は、すべての処理を行うか、少なくとも必要な処理をトリガーする 1 つの場所になることに注意してください。

処理後に JSON を取得するには、JSON を呼び出し、PHP json_encode() を使用してデータをエンコードします。

于 2013-02-17T02:26:56.590 に答える