Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript——我应该请求一大团数据还是一系列较小的ajax请求? 简介_Javascript_Ajax - Fatal编程技术网

javascript——我应该请求一大团数据还是一系列较小的ajax请求? 简介

javascript——我应该请求一大团数据还是一系列较小的ajax请求? 简介,javascript,ajax,Javascript,Ajax,我正在尝试运行一个登录到facebook的方法。登录的成功回调请求当前用户的id、他们的事件、他们的朋友列表,然后运行朋友列表,请求每个朋友的事件,并将每个朋友的事件列表与当前用户的事件进行比较 我之所以要运行这么多单独的请求,是因为分解它似乎更有效,这样我就不会一下子得到这么大的数据块而阻塞我的应用程序。现在我不太确定 问题 我想得到一些建议,关于我是否应该只发出一个大型ajax请求来获取所有数据,或者是否应该将其分解为较小的调用 如果我把它分成几个小的电话,我能得到一些最好的建议吗?例如,我

我正在尝试运行一个登录到facebook的方法。登录的成功回调请求当前用户的id、他们的事件、他们的朋友列表,然后运行朋友列表,请求每个朋友的事件,并将每个朋友的事件列表与当前用户的事件进行比较

我之所以要运行这么多单独的请求,是因为分解它似乎更有效,这样我就不会一下子得到这么大的数据块而阻塞我的应用程序。现在我不太确定

问题 我想得到一些建议,关于我是否应该只发出一个大型ajax请求来获取所有数据,或者是否应该将其分解为较小的调用

如果我把它分成几个小的电话,我能得到一些最好的建议吗?例如,我是否应该将它们作为回调链接到彼此

看来前进的道路是: 1.获取用户的id

  • 获取用户的事件列表和获取用户的朋友列表可以独立执行,而不必链接在一起

  • 获取用户的好友列表(作为步骤2的回调-在收到事件列表和好友列表后)

  • 为每个朋友运行用户的事件和他们朋友的事件(作为步骤3的回调)

  • (对于不可靠的格式设置,我感到很抱歉-我尝试过处理代码格式设置,但出于某种原因,它今天不想工作:()

    函数collectFriendsRankedByCommonEvents(){
    粘虫变种;
    var eventComparisonData=[];
    var-myData;
    var myFriendsList;
    //使用userEvents、Friendslist和friend's events的权限登录
    FB.登录(功能(响应){
    如果(response.status==“已连接”){
    api('/me',函数(response){myId=response['id']});
    api((myId+'?fields=id,events'),'GET',函数(response){myData=response})
    api((myId+'?fields=id,friends'),'GET',函数(response){myFriendsList=response})
    对于(i=0;i
    在大多数情况下,您最好尽可能少地执行HTTP请求。在任何应用程序中,HTTP请求都是昂贵的,而且是最薄弱的故障点(考虑网络连接波动的移动环境),因此,如果可以的话,只需在一个请求中执行所有操作。它还可以使您的代码更易于维护,因为它避免了回调链接


    除非您收到的是多兆字节的响应,否则这不会影响性能。如果您发现解析响应确实需要时间,可以使用Web Worker;这会将解析任务移到后台,释放主线程,以便在处理过程中显示反馈。

    我的请求似乎太大,正在重新处理中受facebook的api影响。也就是说,当我只请求朋友列表时,请求通过。但是,当我请求他们的活动时,我也会收到一个未知错误。如果我一次只请求一个活动,我不会收到错误。作为SO的资深成员,你认为我应该编辑此问题以针对facebook示例还是公开一个新问题?我很感谢你的建议!嗯,我喜欢Facebook的未知错误。如果你找不到任何相关的错误,你可能应该为这个特定的错误提出一个新问题(也许可以查看)
    function collectFriendsRankedByCommonEvents(){
    
      var myId;
      var eventComparisonData = [];
      var myData;
      var myFriendsList;
    
      //login with permission to userEvents, Friendslist and friend's events
      FB.login(function(response){
                    if(response.status == 'connected'){
                        FB.api('/me', function(response) {   myId = response['id']   });
                        FB.api((myId + '?fields=id,events'), 'GET', function(response){ myData = response   })
                        FB.api((myId + '?fields=id,friends'), 'GET', function(response){    myFriendsList = response    })
                        for(i=0; i < myFriendsList.length; i++){
                          var thisFriendId = myFriendsList[i]
                          var thisFriendData; //call to API to request friend's event data
                          var comparisonWithThisFriend = compareFriendEventsWithMe(myData, thisFriendData);
                        }
                        eventComparisonData.push(comparisonWithThisFriend);
                    } else {    console.log('couldn\'t connect to facebook')    }
                     }, 
                      {scope: 'user_friends, friends_events'}
          );
    
      //to iterative rendering method
    
    }