dtgv52982 2014-07-02 07:38
浏览 33
已采纳

懒惰加载PHP的RSS源

My Wordpress website is slowed down by a plugin i wrote myself. This plugin loads events from a RSS feed on a different site.

I have disabled the plugin and it made a difference of 20 in Google Page Speed.

How can i lazy load a RSS feed in Ajax or Javascript?

The code i have:

  $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/>
";   // echo's the <li> elements
  • 写回答

1条回答 默认 最新

  • douxi6903 2014-07-02 08:00
    关注

    Depending on the access you have to the server, consider running a cron job, for example once an hour to retrieve the RSS feed, convert it to JSON and save it as a file somewhere within the web root.

    Now you can use JavaScript to retrieve the feed asynchronously from your server as a JSON data file and display it on your site.

    If you don't have shell access, try to use the wp_cron function in Wordpress.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测