处理包含许多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);
}
});
});
答案 0 :(得分: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编码数据json_encode()