懒惰加载PHP的RSS源

时间:2014-07-02 07:38:49

标签: php ajax lazy-loading

我自己编写的插件减慢了我的Wordpress网站的速度。此插件从不同站点的RSS源加载事件。

我已停用该插件,它在Google Page Speed中的差异为20。

我如何在Ajax或Javascript中加载RSS源?

我的代码:

  $rss = simplexml_load_file(get_option('capu_url'));

foreach ($rss->channel->item as $item) {
     echo '<h4><a href="'. $item->link .'">' . $item->title . "</a></h4>";
 //echo "<p>" . $item->description . "</p>";


$dom = new DOMDocument;
$dom->strictErrorChecking = FALSE ;
libxml_use_internal_errors(true);
$dom->loadHTML($item->description);
$xpath = new DOMXPath($dom);                     
$nodes = $xpath->query('//ul[@class="ee-event-datetimes-ul"]');   // get <ul>'s with class 'up'
foreach($nodes as $node) {                      // loops through each <ul>
    foreach($node->getElementsByTagName('li') as $li) {    // loops through the <li>'s

    echo $li->nodeValue . "<br/>\n";   // echo's the <li> elements

1 个答案:

答案 0 :(得分:3)

根据您对服务器的访问权限,考虑运行cron作业,例如每小时检索一次RSS源,将其转换为JSON并将其保存为Web根目录中的某个文件。

现在,您可以使用JavaScript从服务器异步检索Feed作为JSON数据文件,并将其显示在您的网站上。

如果您没有shell访问权限,请尝试在Wordpress中使用wp_cron功能。