2014-05-09 2 views
0

에서 호출측정 처리 시간은 내가 내 아약스 호출의 처리 시간을 측정 할 수있는이 방법으로 같은 페이지

var ajaxTime= new Date().getTime(); 
$.ajax({ 
    type: "POST", 
    url: "some.php", 
}).done(function() { 
    var totalTime = new Date().getTime()-ajaxTime; 
    // Here I want to get the how long it took to load some.php and use it further 
}); 

하지만, 어떻게 내가 여러 아약스의 처리 시간을 얻기 원한다면 할 수 같은 페이지에서 전화할까요?

나는 이런 식으로 뭔가 의미 : 나는 각각의 호출에 대한 응답 시간을 알 필요가

var i; 
var j = 5; 
for (i = 0; i < j; i++) { 
var ajaxTime= new Date().getTime(); 
$.ajax({ 
    type: "POST", 
    url: "some.php", 
}).done(function() { 
    var totalTime = new Date().getTime()-ajaxTime; 
    // Here I want to get the how long it took to load some.php and use it further 
}); 
} 

답변

1

귀하의 문제는 너무 ajaxTime가 (이 설정되어 모든 루프 반복에서 다시 선언되지 않으며, no block scope in JavaScript가 있다는 것입니다 현재 시간이 각 반복마다 무엇이든간에). 당신은 함수로 $.ajax 코드를 리팩토링하거나 새 ajaxTime 변수가 모든 요청에 ​​대해 사용되도록 클로저를 사용할 수 있습니다

var i; 
for (i = 0; i < 5; i++) { 
    makeRequest(i); 
} 

function makeRequest(i) { 
    var ajaxTime = new Date().getTime(); 
    $.ajax({ 
     url: 'some.php', 
     type: 'POST' 
    }).done(function() { 
     var total = new Date().getTime() - ajaxTime; 
     console.log('Elapsed time: ' + total); 
    }); 
} 

예 :http://jsfiddle.net/Y9MJk/1/

관련 문제