2010-05-21 5 views
1

xml을로드하면 사이트 속도가 느려질 수 있습니까?xml을로드하면 내 사이트가 느려집니다

내가 PHP에서이 작은 기능을 작성했습니다

배열이 약 10 항목 큰

function getFeedCount() { 
    foreach ($array as $value) { 
     $xml = simplexml_load_file("http://api.feedburner.com/awareness/1.0/GetFeedData?uri=$value") 
       or die ("Unable to load XML file!"); 
     $circulation += $xml->feed->entry['circulation']; 
    } 
    return $circulation; 
} 

내 추종자의 총량을 계산하는 문자열의 배열을 반복하고 나는 그것을 사용하기 시작하기 때문에, 그것을 정말 내 사이트 속도가 느려졌습니다.

이 문제를 해결하려면 어떻게해야합니까?

답변

5

피드 버너 (feedburner)에서 데이터를로드하면 다음과 같은 결과가 발생합니다. 누군가가 귀하의 페이지를 볼 때마다 피드에 대한 10 건의 요청을 피드에 보내야만 방문자에게 데이터를 반환 할 수 있습니다.

아마도 가장 좋은 방법은 피드 버너 피드를 주기적으로 서버에 캐시하고 페이지 생성시 캐시 된 사본을 읽는 것입니다.

+1

이 줄을 따라 feedburner API의 TOS를 확인하여 어느 지점에서든 스로틀 할 수 있는지 확인할 수 있습니다. – NotMe

1

자주 변경되는 번호입니까? 어쩌면 파일을 캐싱 (예 : 파일에 저장)하고 하루에 한 번만 피드를 얻을 수 있습니다 (예 : cron 작업).

URL에 액세스하는 데 시간이 걸립니다. 귀하의 방문자가 귀하의 사이트에 액세스하기 전에 귀하의 방문자가 10 페이지에 액세스하는 것과 같습니다 ...

3

절대적으로 귀하의 사이트 속도를 늦출 수 있습니다. 비동기식 작업이 아니기 때문에, 해당 페이지의 전체 생성은 XML을 다운로드 한 후에 다른 작업을 완료 할 수 있기를 기다리고 있습니다.

XML이 변경되는 정도에 따라 사람들은 XML 데이터의 로컬 캐시를 수행하고 주기적으로 업데이트를 수행합니다. 이것에 대한 단점은 대부분의 페이지 뷰에서 리소스를 로컬에서 가져 오는 것이므로 실시간 데이터가 아니라는 단점이 있습니다.

또 다른 옵션은 페이지가로드 된 후에 javascript를 사용하여 XML 데이터를로드하려고 시도하지만이 프로세스의 단점은 PHP가 XML 데이터에 액세스 할 수 없다는 것입니다.

1

모든 페이지로드시 HTTP 요청을하는 것은 매우 비용이 많이 들며, 사이트가 느려지는 것이 일반적입니다. XML parser that supports caching을 작성하는 것이 가장 좋습니다.

this PHP API too을 사용할 수 있습니다.

+0

링크를 북마크 해 주셔서 감사합니다. – Ayrton

관련 문제