一次通过ajax加载同一个文件12次

时间:2014-03-14 06:33:32

标签: javascript php jquery ajax

我希望这是有道理的......

我有一个页面,根据用途加载相同的外部文件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左右。

所以,我的问题是如何在不杀死服务器的情况下多次同时加载同一个文件?这有意义吗?

1 个答案:

答案 0 :(得分:0)

我相信您需要使用同步请求,这有助于:

jQuery: Performing synchronous AJAX requests

(措辞有点误导,请在此处阅读:Asynchronous and Synchronous Terms

但是我不能保证你的服务器会发生12个同步请求会发生什么 - 如果另一端写得好,没什么。

相关问题