Navigation Ladezeiten

Wie verwendet man Templates oder erstellt Navigationen und passt diese an.

Navigation Ladezeiten

Beitragvon krischna » 3. Feb 2012, 15:49

Hallo,

bin absoluter Neuling bei Redaxo und habe auch gleich das erste Problem...

Habe eine Hauptnavigation mit 4 Ebenen - (Klappboxen rein css gesteuert). Dafür habe ich ein Template
mit folgendem Code verwendet:

Code: Alles auswählen
<?php
echo '<ul id="navmenu-h">';
foreach (OOCategory::getRootCategories(1) as $lev1) {
$cat_typ = $lev1->getValue("cat_typ");
if($lev1->getId() != 1 AND $cat_typ == 1) {
echo '<li><a href="'.$lev1->getUrl().'">'.$lev1->getName().'</a>';
if(count($lev1->getChildren())>0) { $z = 0; $h = -27;
  echo '<ul>';
  foreach ($lev1->getChildren(true) as $lev2) { $z++; $h = $h+27;
   echo '<li><a href="'.$lev2->getUrl().'">'.$lev2->getName().'</a>';
   if(count($lev2->getChildren())>0) { $zz = 0; $hh = -27;
    echo '<ul>';
    foreach ($lev2->getChildren(true) as $lev3) { $zz++; $hh = $hh+27;
     if($z > 1) {
      echo '<li style="top:-'.$h.'px"><a href="'.$lev3->getUrl().'">'.$lev3->getName().'</a>';
     } else {
      echo '<li><a href="'.$lev3->getUrl().'">'.$lev3->getName().'</a>';
     }
     if(count($lev3->getChildren())>0) {
     echo '<ul>';
     foreach ($lev3->getChildren(true) as $lev4) {
      if($zz > 1) {
      echo '<li style="top:-'.$hh.'px"><a href="'.$lev4->getUrl().'">'.$lev4->getName().'</a></li>';
     } else {
     echo '<li><a href="'.$lev4->getUrl().'">'.$lev4->getName().'</a></li>';
   } }
   echo '</ul>';
  }
  echo '</li>';
  }
   echo '</ul>';
  }
  echo '</li>';
}
echo '</ul>';
}
echo '</li>';
} }
echo '</ul>';
?>


Funktioniert auch wie gewünscht. Nur die Ladezeiten sind miserabel ... ca. 3-4 Sekunden.

Die 1. Ebene der Hauptnavigation besteht aus 7 Kategorien, die weiteren Unterebenen enthalten zunächst ca. 200 Kategorien. Denke doch nicht, dass es ein Problem sein sollte etwas über 200 Datensätze aus der Datenbank zu lesen und weiss nicht an welcher 'Schraube' ich drehen könnte um eine vernünftige Performance zu erzielen.

Lasse ich die 3. und 4. Ebene weg ist die Geschwindigkeit ok.

Dasselbe Phänomen tritt auch bei folgendem 'Sitemap Konstukt' auf:

Code: Alles auswählen
<?php
$nav = rex_navigation::factory();
echo $nav->get(0,4,TRUE,TRUE);
?>


Lasse ich nur die Ebenen der aktuellen Kategorie anzeigen ist es wieder ok:
Code: Alles auswählen
<?php
$nav = rex_navigation::factory();
echo $nav->get(0,4,FALSE,TRUE);
?>


Das ganze läuft zunächst nur lokal, sollte aber egal sein, da der Geschwindigkeitsunterschied zwischen
den geschilderten Varianten 'real' ist.

Weiss nicht wo ich den Hebel für den Tuner finde!

Wer kann mir Tipps geben??

Vielen Dank
krischna
krischna
 
Beiträge: 5
Registriert: 3. Feb 2012, 14:41

Re: Navigation Ladezeiten

Beitragvon jeandeluxe » 3. Feb 2012, 17:27

krischna hat geschrieben:Nur die Ladezeiten sind miserabel ... ca. 3-4 Sekunden.
... Denke doch nicht, dass es ein Problem sein sollte etwas über 200 Datensätze aus der Datenbank zu lesen

Nein, und: zumindest rex_navigation nutzt eh den cache.. (deinen code hab ich grad nicht angekuckt). Hast du mal im Firebug Netzwerk-Tab gekuckt wer/was wie lang benötigt? Nicht das das irgendein rendering Effekt ist oder so..
RexSEO Support Checklist | Redaxo API Docu | rexdev.de | "You start with some money.."
mark your solved threads [SOLVED]™ promotion tour..
Benutzeravatar
jeandeluxe
 
Beiträge: 1941
Registriert: 29. Sep 2005, 09:50
Wohnort: Hamburg

Re: Navigation Ladezeiten

Beitragvon krischna » 3. Feb 2012, 19:29

Hi
jeandeluxe hat geschrieben:Nein, und: zumindest rex_navigation nutzt eh den cache.. (deinen code hab ich grad nicht angekuckt). Hast du mal im Firebug Netzwerk-Tab gekuckt wer/was wie lang benötigt? Nicht das das irgendein rendering Effekt ist oder so..


Danke für deine Antwort!
Hatte ich mir angeschaut - ist aber der 'eigentliche Seitenaufruf' der so lange braucht. Was mich halt stutzig macht ist, dass es bei zwei Ebenen ok ist, kommen dann durch die beiden zusätzlichen Ebenen
weitere DB-Abfragen dazu wirds langsam?

Werde jetzt mal interessehalber versuchen die Navi direkt durch SQL Anfragen zu generieren und sehen was passiert. Muss mir dazu aber erst die Redaxo-Syntax reintun, mal sehen wie schnell ich das blicke.

Ich weiss, ist etwas das Rad neu erfinden - interessiert mich aber.

Gruß
Krischna
krischna
 
Beiträge: 5
Registriert: 3. Feb 2012, 14:41

Re: Navigation Ladezeiten

Beitragvon jeandeluxe » 3. Feb 2012, 19:50

krischna hat geschrieben:Was mich halt stutzig macht ist, dass es bei zwei Ebenen ok ist, kommen dann durch die beiden zusätzlichen Ebenen weitere DB-Abfragen dazu wirds langsam?

Wie gesagt, meines Wissens nach läuft das alles übern Cache.. sollten eigentlich garkeine queries im Spiel sein, egal wecleh Tiefe. Dito wenn man die Navi selbst trickt und über OO geht.. aber auch dann sollte es - wie du selbst sagst - wg. ein paar queries nicht so in die Knie gehn. Hast du nen rewriter im Einsatz?
RexSEO Support Checklist | Redaxo API Docu | rexdev.de | "You start with some money.."
mark your solved threads [SOLVED]™ promotion tour..
Benutzeravatar
jeandeluxe
 
Beiträge: 1941
Registriert: 29. Sep 2005, 09:50
Wohnort: Hamburg

Re: Navigation Ladezeiten

Beitragvon krischna » 4. Feb 2012, 10:12

jeandeluxe hat geschrieben:Hast du nen rewriter im Einsatz?

Nee.

Wie bei Redaxo gecacht wird, weiss ich nicht - bin noch nicht soweit vorgedrungen und möchte da derzeit
auch nicht so in die Tiefe gehen. Sollte auch ohne dsbzgl. Wissen möglich sein, eine kleine performante Seite zu erstellen. Gecacht wird jedenfalls, habe das getestet. Wahrscheinlich sitzt das Problem wie meist zwischen meinen Ohren... Werde alles nochmal durchgehen.

Dachte nur, vielleicht habe ich eine grundsätzliche Einstellung übersehen oder einen grundsätzlichen Denkfehler bei der Verwendung der im Codeschnipsel verwendeten Funktionen.

Im übrigen ist mir aufgefallen, dass wenn ich ein Haupttemplate aktualisiere, dann wird das ganze ziemlich
genau doppelt so schnell (immer noch nicht befriedigend 1.5s), das hält dann genau bis zum nächsten Neustart der Seite??

Krischna
krischna
 
Beiträge: 5
Registriert: 3. Feb 2012, 14:41

Re: Navigation Ladezeiten

Beitragvon jeandeluxe » 4. Feb 2012, 10:29

krischna hat geschrieben:Im übrigen ist mir aufgefallen, dass wenn ich ein Haupttemplate aktualisiere, dann wird das ganze ziemlich genau doppelt so schnell (immer noch nicht befriedigend 1.5s), das hält dann genau bis zum nächsten Neustart der Seite??

Neustart?!?
RexSEO Support Checklist | Redaxo API Docu | rexdev.de | "You start with some money.."
mark your solved threads [SOLVED]™ promotion tour..
Benutzeravatar
jeandeluxe
 
Beiträge: 1941
Registriert: 29. Sep 2005, 09:50
Wohnort: Hamburg

Re: Navigation Ladezeiten

Beitragvon krischna » 4. Feb 2012, 12:08

jeandeluxe hat geschrieben:Neustart?!?


Dumm ausgedrückt. Seite im Browser geschlossen. Seite erneut aufgerufen.
krischna
 
Beiträge: 5
Registriert: 3. Feb 2012, 14:41

Re: Navigation Ladezeiten

Beitragvon krischna » 4. Feb 2012, 12:28

Habe jetzt alles auf einen anderen Rechner geladen und da ist alles wunderbar!!
Komisch, da der erste eigentlich mein 'Hauptrechner' ist und da auch deutlich größere Seiten stabil laufen.

jeandeluxe -> DANKE FÜR DEINE MÜHE

P.S. Bin nach kurzer Einarbeitungszeit schon recht begeistert wie schnell sich intuitiv Dinge umsetzen lassen, mal sehen ob's so bleibt, wenn es ans Eingemachte geht
krischna
 
Beiträge: 5
Registriert: 3. Feb 2012, 14:41


Zurück zu Templates/Navigationen [R4]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast