2012-06-11 5 views
0

빈 양식 태그가있는 간단한 웹 페이지를 만들었습니다. 이 태그는 AJAX 요청의 응답으로 채워집니다. 요청은 PHP 스크립트에 데이터를 요청합니다. 이 스크립트는 실행 시간을 반환합니다. 이제는 정말 이상한 것이 있습니다. 나는 손으로 주소를 입력하면 다음 스크립트는 나에게AJAX로 요청하면 PHP 속도가 느립니까?

<!-- Duration: 0.8 milliseconds (~1242 pages per second) -->

을 알려줍니다하지만 다음 (로드 된 내용을 시청) 크롬의 네트워크 구축에 요청 로거를 사용하는 경우 나는이

있어

<!-- Duration: 52.7 milliseconds (~19 pages per second) -->

왜 80 배 더 느린가요? 동일한 스크립트, 동일한 매개 변수, 동일한 응답 (원인 지속 시간), 동일한 서버, 다른 요청 유형 : AJAX 및 브라우저 주소 줄.

<?php 
class AbstractModule 
{ 

    final function __construct(..) 
    { 
     // for measuring creation time 
     $this->starttime = microtime(true); 
    } 

    public final function return_duration() 
    { 
     $duration = (microtime(true) - $this->starttime) * 1000; 
     return "\n<!-- Duration: " . number_format($duration, 1, '.', '') . " milliseconds (~" . number_format(1000/$duration, 0, '.', '') . " pages per second) -->"; 
    } 

} 

$demo = new AbstractModule(); 
// doing very much :)< 
echo $demo->return_duration(); 
?> 

감사합니다.

+1

시간을 어디에서 볼 수 있는지 여기에 코드를 게시 해주십시오. – verisimilitude

+0

나는 내 직책보다 더 많이 알고 있다고 생각하지 않는다. 그것은 처음부터 끝까지 모든 길입니다. 그 이상으로 나는 무엇을 말할 수 있습니까? – ortreum

+0

흠은 임의적 인 문제 인 것 같습니다. 오늘은 모든 것이 다시 잘됩니다. 아마도 1 페이지는 아파치를 너무 바빠서 AJAX 페이지를 보낼 수 없었을 것이다. 그러나 그것은 단지 야생의 추측입니다 ... 그것은 몇 시간에 걸쳐 반복 가능했습니다. – ortreum

답변

0

세션을 사용합니까? 차이점은 쿠키를 보내지 않기 때문에 매번 ajax 요청이 세션을 다시 시작한다는 것입니다.

그렇지 않으면, 디버거를 빠져 나와 범인을 추적하는 것이 좋습니다.

+0

AJAX 요청에는 일반 요청에 포함될 모든 쿠키가 포함됩니다. – ThiefMaster

+0

그것은 추적 할 수없는 임의의 문제였습니다 : 그리고 그것은 결코 되돌아 오지 않았습니다. – ortreum

관련 문제