我希望这是有道理的......
我有一个页面,根据用途加载相同的外部文件1-12次。加载页面所需的加载时间较长,因此我尝试通过ajax加载每个文件,但使用循环加载文件会使服务器完全挂起。
这是我到目前为止使用的代码:
function getSchedule(startday,scheduleID,scheduleView){
$.ajax({
type: 'POST',
url: siteURL+'/includes/schedule-'+scheduleView,
data: {startday:startday,scheduleID:scheduleID},
success: function(data){
$('.scheduleHolder'+scheduleID).html(data).removeClass('loading');
}
});
}
var loadSchedules = [];
var startday = $('#the_start_day').text();
var totalSchedules = $('.scheduleHolder').length;
var i = 0;
$('.scheduleHolder').each(function(){
var currentHolder = $(this);
var scheduleView = currentHolder.attr('rel');
var scheduleID = currentHolder.attr('id');
loadSchedules.push(getSchedule(startday,scheduleID,scheduleView));
if (totalSchedules==i) {
$.when.apply($, loadSchedules);
}
i++;
});
每个文件在单独加载时只需要2-5秒加载,所以我真的希望总加载时间从60秒到10左右。
所以,我的问题是如何在不杀死服务器的情况下多次同时加载同一个文件?这有意义吗?
答案 0 :(得分:0)
我相信您需要使用同步请求,这有助于:
jQuery: Performing synchronous AJAX requests
(措辞有点误导,请在此处阅读:Asynchronous and Synchronous Terms)
但是我不能保证你的服务器会发生12个同步请求会发生什么 - 如果另一端写得好,没什么。