오늘 모두 재미있게 보내세요.Javascript/PHP를 통해 RSS를보다 빨리 읽을 수 있습니다.
저는 다양한 RSS 피드에서 가져온 코드 중 가장 최근의 pubdate가있는 코드를 주문하는 작업 코드가 있습니다.
내가 가진 문제는 느리다는 것입니다. 사이트 로딩 속도가 느려집니다. 뿐만 아니라 모든 서버 측에서 호스팅되기 때문에 여러 사람이 사이트에 동시에 액세스하는 경우 응답 속도가 느려집니다.
그래서이 코드를 자바 스크립트 함수로 변환하면 태그의 innerHTML을 데이터베이스에서 다시 가져 오거나 다른 사람이 제안 할 수있는 다른 옵션으로 채울 수 있습니다 (빠른 경우). 더 작별없이
: 코드 : 끝에
PHP
function RSSFeeder() {
$client = buildCon();
//Query removed, simply gets the RSS URL from the database
$query = "";
$result = $client ->run($query);
$RSSList = array();
foreach($result ->getRecords() as $record)
{
$ComicArray = array();
$ComicName = $record ->value('Name');
$RSS = $record ->value('RSS');
$URL = $record ->value('URL');
$content = file_get_contents($RSS);
$x = new SimpleXmlElement($content);
for ($i = 0; $i < 1; $i++) {
$profile = $x ->channel ->item[$i];
$pubDate = $profile ->{ "pubDate"};
}
$ComicArray['URL'] = $URL;
$ComicArray['Comic'] = $ComicName;
$ComicArray['pubDate'] = $pubDate;
$RSSList[] = $ComicArray;
}
#usort($RSSList, "sortFunction");
usort($RSSList, "compareRSSTimes");
return $RSSList;
}
, 당신은 아마도에 usort 방법을보고, 그래서 여기있다 : 거기에서
function compareRSSTimes($a, $b) {
$a = strtotime($a['pubDate']);
$b = strtotime($b['pubDate']);
if ($a == $b) {
return 0;
}
return ($a > $b) ? -1 : 1;
}
, 배열은 업데이트의 시간 순서에 따라 출력을 만드는 PHP 스크립트로 되돌려 보내집니다. 그것은 잘 작동합니다. 페이지를로드하는 데 약간의 시간이 걸리며 더 많은 사용자가 페이지에 액세스 할 때 내 테리브 서버의 지속 가능성에 대해 걱정합니다.
제안 사항?
사용자가 페이지를 조회 할 때마다이 작업을 수행합니까? – IncredibleHat
@Randall 예. 이것이 바로 문제입니다. 나는 이것을 고치는 방법에 대한 제안을 할 것이다. (참고, 내가 사용하고있는 데이터베이스에서 시간 제한 트리거를 설정할 수 없습니다. 지원되지 않습니다.) –
서버에서 실행되고 정기적으로 URL을 폴링하는 스크립트가 있습니다. 결과를 구문 분석하고 작업 할 수있는 형식으로 데이터베이스에 저장하십시오. 매번이 쿼리를 실행하는 대신 데이터베이스에서 컨텐츠를 제공하십시오. 특정 URL 등을 호출하여 스크립트를 실행할 수있는 크론 작업을 설정하고 사람들이 귀하의 사이트를 방문 할 때 페이지로드에 영향을주지 않으면 서 트리거되도록 페이지에 자바 스크립트를 삽입하십시오. – miknik