Closed ghost closed 12 years ago
Ja, es spricht tatsächlich etwas dagegen. Der Rückgabewert muss nämlich nicht immer derselbe sein, es kann sich ja beispielsweise etwas an der Tabelle ändern. Mich wundert zudem, wieso diese Funktion bei Dir überhaupt im Frontend aufgerufen wird. Ich habe gerade die Demo geprüft und wie erwartet taucht die Funktion dort überhaupt nicht auf!
Ich schätze also, es liegt an einer Erweiterung. Welche verwendest Du?
--- Originally created on March 24th, 2009, at 10:09am
Ok, ob sich während eines Seitenaufrufes tatsächlich etwas an der Tabelle ändern kann, übersehe ich nicht. Ich habe jetzt noch mal genauer geguckt, Ursache ist bei mir wohl ModuleNavigationSub.php und dort der Aufruf von getChildRecords in renderNavigation Zeile 209
if (
![]($this->showLevel || $this->showLevel >= $level ||
()$this->hardLimit && ($objPage->id == $objSubpages->id ||
in_array($objPage->id, $this->getChildRecords($objSubpages->id, 'tl_page')))))
In getChildRecords wird dann fieldExists aufgerufen
if (is_null($blnSorting))
{
$blnSorting = $this->Database->fieldExists('sorting', $strTable);
}
und das ruft dann wiederum listFields auf.
Gehört ModuleNavigationSub nicht mit zum Core?
--- Originally created by anonymous on March 24th, 2009, at 10:48am
Ja, wobei es in der Version 2.7 nicht mehr enthalten sein wird (schon lang veraltet).
Im Frontend ist es tatsächlich eher unwahrscheinlich, dass etwas an den Tabellen geändert wird, wobei es auch dort nicht ausgeschlossen ist! Ich kann mir durchaus entsprechende Einsatzmöglichkeiten vorstellen. Ein guter Kompromiss ist vielleicht eine Option, den Cache wahlweise zu umgehen.
--- Originally created on March 24th, 2009, at 11:05am
... allmählich bekomme ich Angst vor der 2.7! Hoffentlich hält sich der Migrationsaufwand in erträglichen Grenzen... (Aber das gehört natürlich nicht hierher, ich weiß.)
--- Originally created by anonymous on March 24th, 2009, at 11:09am
--- Originally completed on March 24th, 2009, at 11:21am
Hi Leo, Bei einer Analyse bzgl. kleinerer Performance-Problemchen ist mir aufgefallen, dass die Funktion Database::listFields für die gleiche Tabelle je nach Seiteninhalt mehrfach aufgerufen wird (bei einer Beispielseite bei uns z.B. 63 mal). Der Rückgabewert ist natürlich immer der gleiche. Durch ein Cachen dieses Rückgabewertes konnte ich die Zeit zur Erzeugung der Beispielseite auf die Hälfte reduzieren. Folgendes habe ich geändert: in system/Database.php neue Variable
und Änderung von listFields in:
Spricht etwas dagegen und sollte die Änderung vielleicht in den Typolight-Kern übernommen werden?
--- Originally created by anonymous on March 20th, 2009, at 11:40am (ID 609)