Seite 1 von 1

RSS-Reader extrem langsam

Verfasst: Mo 12. Nov 2007, 18:55
von malsdgtac
Hallo,

ich habe soeben den RSS-Reader eingebaut. Das funktioniert grundsätzlich ist aber extrem langsam (Ladezeit 1 min.). Es ist definitiv der RSS-Reader, denn alle anderen Seiten der Website werden wesentlich (viel) schneller geladen.

Ich habe folgendes Modul in Verwendung:

Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname   :     Insert RSS feed
* Authors:	  :	    Timo Hummel, Andreas Lindner
* Copyright   :     Contenido - four for business
* Created     :     30.09.2005
************************************************/

cInclude("pear", "XML/Parser.php");
cInclude("pear", "XML/RSS.php");

if ("CMS_VALUE[0]" == "")
{
  $sFeed = "http://www.contenido.org/rss/de/news";
} else {
  $sFeed = "CMS_VALUE[0]";
}

if ("CMS_VALUE[2]" == "")
{
  $FeedMaxItems = 999;
} else {
	$FeedMaxItems = intval("CMS_VALUE[2]");
}

/* Preparse feed for an encoding due to the poorly designed
   PHP XML parser */
$sFeedContent = substr(@file_get_contents($sFeed),0,1024);

$regExp = "/<\?xml.*encoding=[\"\'](.*)[\"\']\?>/i";
		
preg_match($regExp,trim($sFeedContent),$matches);

if ($matches[1])
{
  $rss =& new XML_RSS($sFeed, $matches[1]);
} else {
  $rss =& new XML_RSS($sFeed);
}

$rss->parse();

$tpl = new Template;

$i = 0;
foreach ($rss->getItems() as $item)
{
	if ($i < $FeedMaxItems) {
	    $tpl->set("d", "TITLE", htmlentities($item['title'],ENT_QUOTES));
    	$tpl->set("d", "LINK", htmlentities($item['link'],ENT_QUOTES));
    	$tpl->set("d", "DESCRIPTION", $item['description'],ENT_QUOTES);
    	$tpl->set("d", "READ_ON", mi18n("weiterlesen"));
	    $tpl->next();
	}
	$i++;
}

$tpl->generate($cfgClient[$client]["path"]["frontend"]."templates/"."CMS_VALUE[1]");
?>
Habe es auch mit dem Contenido-RSS und einem zweiten versucht, beide sind so langsam.

Kann mir jemand weiter helfen? Vielleicht ein anderes Modul? Danke

Verfasst: Di 20. Nov 2007, 19:27
von emergence
eine beschleunigung wird da beim erstmaligen abfragen ziemlich schwer möglich sein...
d.h da müsste man einen cache reinbauen...
ein bestehendes modul das dies bereits hat, ist mir aber leider nicht bekannt..