Javascript 事件函数full calendar中的多个ajax调用

Javascript 事件函数full calendar中的多个ajax调用,javascript,jquery,ajax,fullcalendar,Javascript,Jquery,Ajax,Fullcalendar,我在页面中使用fullcalendar jQuery插件创建/查看会议邀请 我的新要求是在我们的页面中显示在outlook中为特定用户创建的会议。我的Web服务(用于从outlook中提取会议)花了45秒发送回复。我不想让用户完全等待45秒(性能问题),所以我只想先从db加载事件,然后再附加作为webservice响应返回的事件。因此,用户感觉不到那么多的延迟 所以我只做了两个ajax调用来获取所需的细节。一个ajax调用是从本地数据库中提取事件(成功),另一个调用是调用webservice提取

我在页面中使用fullcalendar jQuery插件创建/查看会议邀请

我的新要求是在我们的页面中显示在outlook中为特定用户创建的会议。我的Web服务(用于从outlook中提取会议)花了45秒发送回复。我不想让用户完全等待45秒(性能问题),所以我只想先从db加载事件,然后再附加作为webservice响应返回的事件。因此,用户感觉不到那么多的延迟

所以我只做了两个ajax调用来获取所需的细节。一个ajax调用是从本地数据库中提取事件(成功),另一个调用是调用webservice提取Outlook中创建的事件

events: function(start, end, timezone,callback) {
            $.ajax({
                url:  // url hits db and gets meeting details in db
                dataType: 'json',

                success: function(response) {
                    var events = [];
               if(response != null){
                   alert("Success");
                    $.map(response ,function ( r ){
                       alert(r.title + " "  +  r.start + " " + r.end);

                      events.push({
                            title : r.title,
                            start : r.start,
                            end : r.end
                        });
                    });

               }    
               callback(events);
          }

          $.ajax({
                url:  // url calls webservice and gets meetings in Outlook
                dataType: 'json',

                success: function(response) {
                    var events = [];
               if(response != null){
                   alert("Success");
                    $.map(response ,function ( r ){
                       alert(r.title + " "  +  r.start + " " + r.end);

                      events.push({
                            title : r.title,
                            start : r.start,
                            end : r.end
                        });
                    });

               }    
               alert("External Events  "+ events.length);  //EXECUTED 

               callback(events);  //NOT EXECUTED
               }
        });
  }
现在的问题是

一,。第一个ajax调用运行良好

二,。我从Webservice获得正确的响应,但响应未附加到日历

我的问题是

  • 我们不能使用回调(事件)两次吗

  • 或者,请为我推荐另一种解决方案

  • 如果am分别使用两个事件函数,则只执行第二个事件函数。为什么没有执行第一个事件函数


  • 你的代码没有问题。确保您从服务器获得的响应是您期望的(例如,响应!=null)


    有点老了,但有一条路可供参考。在第一个ajax调用中,不是回调,而是放入第二个ajax调用

    $.ajax({
                url:  // url hits db and gets meeting details in db
                dataType: 'json',
    
                success: function(response) {
                    var events = [];
               if(response != null){
                   alert("Success");
                    $.map(response ,function ( r ){
                       alert(r.title + " "  +  r.start + " " + r.end);
    
                      events.push({
                            title : r.title,
                            start : r.start,
                            end : r.end
                        });
                    });
    
               }    
               //second call
               $.ajax({
                url:  // url calls webservice and gets meetings in Outlook
                dataType: 'json',
    
                success: function(response) {
                    var events = [];
               if(response != null){
                   alert("Success");
                    $.map(response ,function ( r ){
                       alert(r.title + " "  +  r.start + " " + r.end);
    
                      events.push({
                            title : r.title,
                            start : r.start,
                            end : r.end
                        });
                    });
    
               }    
               alert("External Events  "+ events.length); 
    
               callback(events); // return all results 
               }
             });
          }
    

    谢谢你的回复。。100%确定am getting response and alert已查看响应长度(执行良好),但未执行回调。
    $.ajax({
                url:  // url hits db and gets meeting details in db
                dataType: 'json',
    
                success: function(response) {
                    var events = [];
               if(response != null){
                   alert("Success");
                    $.map(response ,function ( r ){
                       alert(r.title + " "  +  r.start + " " + r.end);
    
                      events.push({
                            title : r.title,
                            start : r.start,
                            end : r.end
                        });
                    });
    
               }    
               //second call
               $.ajax({
                url:  // url calls webservice and gets meetings in Outlook
                dataType: 'json',
    
                success: function(response) {
                    var events = [];
               if(response != null){
                   alert("Success");
                    $.map(response ,function ( r ){
                       alert(r.title + " "  +  r.start + " " + r.end);
    
                      events.push({
                            title : r.title,
                            start : r.start,
                            end : r.end
                        });
                    });
    
               }    
               alert("External Events  "+ events.length); 
    
               callback(events); // return all results 
               }
             });
          }