Thanks for your answer. I think it makes sense. So I guess if I want resolution not to be delayed I am stuck with Jquery Ajax. If anyone can offer me a better solution to solve this issue I am open to suggestions....
Thanks again for your help On Monday, April 14, 2014 6:51:36 PM UTC+2, [email protected] wrote: > > While I can't guarantee that this is the reason, it is probably due to > Angular's reliance on the digest cycle to notice when the response is > available. Both Angular and jQuery use a promise for handling the response > from an AJAX request, so it's not directly due to promises. However, > Angular's promises, to my understanding, are built on top of the digest > cycle to notice when things change with respect to the resolution of the > promise. This process is described at > http://docs.angularjs.org/guide/scope#scope-life-cycle and also discussed > in https://github.com/angular/angular.js/issues/2881 (hopefully those > aren't confusing). As I understand it, basically, whenever an Angular AJAX > request is resolved, it must trigger a scope digest cycle to notice that > the promise has resolved. This digest cycle will then process everything, > not just the AJAX request which just finished. This means that any other > processing related to the digest cycle can cause the resolution of the AJAX > request to be delayed. > > I am reasonably new to Angular so some of this understanding might be > incorrect. I hope that it is accurate enough to help you understand the > potential causes of your problem. > > On Monday, April 14, 2014 8:20:02 AM UTC-6, [email protected] wrote: >> >> I am trying to understand why AngularJS $http service success callback >> give me a slower response time compare to the $.ajax success callback. >> >> I trigger this code 5 times with differents json files : >> >> if(isJquery){ >> $.ajax({ >> type : 'GET', >> url : url1, >> async : true, >> beforeSend: function(xhr){ >> xhr.setRequestHeader('Content-Type', >> 'application/json;charset=UTF-8'); >> xhr.setRequestHeader('Access-Token', token); >> }, >> success : function (returnData) { >> Chrono.getTime('ajax success') >> }, >> error : function (xhr, textStatus, errorThrown) { >> }, >> complete : function (){ >> >> } >> }); >> }else{ >> var configuration = { >> method: 'GET', >> url: url1 >> }; >> >> var headers = {}; >> headers['Content-Type'] = >> 'application/json;charset=UTF-8'; >> headers['Access-Token'] = token; >> configuration.headers = headers; >> >> $http(configuration) >> .success( >> function (data, status, headers, config) { >> Chrono.getTime('httpService success') >> }) >> .error(function (data, status, headers, config) { >> }); >> } >> >> >> With ajax I received this response time : >> >> ajax success = 332 >> >> ajax success = 335 >> >> ajax success = 336 >> >> ajax success = 337 >> >> ajax success = 361 >> >> >> >> with $http : >> >> httpService success = 325 >> >> httpService success = 357 >> >> httpService success = 380 >> >> httpService success = 430 >> >> httpService success = 538 >> >> >> I noticed that the response time increase even more when there is data or >> function to process in the success callback. It's like Angular is hanging >> before processing the other sucess callbacks... >> I know Angulars is using promises to handle callbacks... could it explain >> why response time is increasing ? Maybe I didn't understand how to best use >> $http service. >> >> I am open to suggestion and anaylsis. >> >> Thanks for your time. >> >> >> >> -- You received this message because you are subscribed to the Google Groups "AngularJS" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/angular. For more options, visit https://groups.google.com/d/optout.
