【问题标题】:Loading the same file via ajax 12 times at once通过ajax一次加载同一个文件12次
【发布时间】:2014-03-14 06:33:32
【问题描述】:

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

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

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

【问题讨论】:

    标签: javascript php jquery ajax


    【解决方案1】:

    我相信您需要使用同步请求,希望这会有所帮助:

    jQuery: Performing synchronous AJAX requests

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-15
      • 2011-09-15
      • 1970-01-01
      • 2016-11-03
      • 1970-01-01
      • 2010-09-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多