php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 10.06.2009, 18:45  
Erfahrener Benutzer
 
Registriert seit: 02.12.2008
Beiträge: 357
webproger befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] dynamisches Menu ist zu langsam

Hallo Zusammen

Ich möchte gerne pro Menupunkt ein Untermenu reinladen.

PHP-Code:

<?php
class load_menu{

    public function 
__construct(){
        
$menu_1 "";
        
$menu_2 "";
        
$menu_3 "";
        
$menu_4 "";
        
$menu_5 "";
        
$this->load_sub();
        echo 
'<a href="index.php?seite=3"><div class="menu_punkt" onmouseover="mover(\'1\')" onmouseout="mout(\'1\')">&Uuml;ber uns<br/>
        <div class="menu_sub" id="uberuns" onmouseover="mover(\'1\')" onmouseout="mout(\'1\')">'
;
        echo 
$menu_1;
        echo 
'</div></div></a><div class="menu_FFFFFF"></div>';
        echo 
'<a href="index.php?seite=7"><div class="menu_punkt" onmouseover="mover(\'2\')" onmouseout="mout(\'2\')">Mobile<br/>
        <div class="menu_sub" id="uberuns" onmouseover="mover(\'2\')" onmouseout="mout(\'2\')">'
;
        echo 
$menu_2;
        echo 
'</div></div></a><div class="menu_FFFFFF"></div>';
        echo 
'<a href="index.php?seite=8"><div class="menu_punkt" onmouseover="mover(\'3\')" onmouseout="mout(\'3\')">Kurse<br/>
        <div class="menu_sub" id="uberuns" onmouseover="mover(\'3\')" onmouseout="mout(\'3\')">'
;
        echo 
$menu_3;
        echo 
'</div></div></a><div class="menu_FFFFFF"></div>';
        echo 
'<a href="index.php?seite=9"><div class="menu_punkt" onmouseover="mover(\'4\')" onmouseout="mout(\'4\')">Produkte<br/>
        <div class="menu_sub" id="uberuns" onmouseover="mover(\'4\')" onmouseout="mout(\'4\')">'
;
        echo 
$menu_4;
        echo 
'</div></div></a><div class="menu_FFFFFF"></div>';
        echo 
'<a href="index.php?seite=10"><div class="menu_punkt" onmouseover="mover(\'5\')" onmouseout="mout(\'5\')">Praxis<br/>
        <div class="menu_sub" id="uberuns" onmouseover="mover(\'5\')" onmouseout="mout(\'5\')">'
;
        echo 
$menu_5;
        echo 
'</div></div></a><div class="menu_FFFFFF"></div>';
    }
    
    private function 
load_sub(){
        
$db = new db();
        
$query $db->query("SELECT * FROM site_menu WHERE tmenu = 1;");
        while(
$daten mysql_fetch_object($query)){
            switch(
$daten->struktur){
                case 
1:
                    
$menu_1 .= '<a href="index.php?seite='.$daten->site_id.'">'.$daten_sub->menu.'</a><br/>';
                    break;
                case 
2:
                    
$menu_2 .= '<a href="index.php?seite='.$daten->site_id.'">'.$daten_sub->menu.'</a><br/>';
                    break;
                case 
3:
                    
$menu_3 .= '<a href="index.php?seite='.$daten->site_id.'">'.$daten_sub->menu.'</a><br/>';
                    break;
                case 
4:
                    
$menu_4 .= '<a href="index.php?seite='.$daten->site_id.'">'.$daten_sub->menu.'</a><br/>';
                    break;
                case 
5:
                    
$menu_5 .= '<a href="index.php?seite='.$daten->site_id.'">'.$daten_sub->menu.'</a><br/>';
                    break;
            }
        }
    }
}
?>
Funktioniert eigentlich soweit auch gut. Nur ist es sehr sehr langsam. =( Gibts da noch ne andere Möglichkeit, oder muss ich auf Nested Sets legen?

Danke für eure hilfreichen Antworten!
__________________
webproger ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 10.06.2009, 18:48  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.268
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

.. oder du holst dir das gesamte Menü aus der Datenbank und baust es in PHP zusammen. Mehrere verschachtelte Datenbankabfragen sind langsam, dagegen eine PHP-Schleife aber relativ schnell.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline  
Alt 11.06.2009, 08:24  
Erfahrener Benutzer
 
Registriert seit: 27.09.2008
Beiträge: 316
PHP-Kenntnisse:
Fortgeschritten
moveax1 befindet sich auf einem aufstrebenden Ast
Standard

und wenn schon objektorientiert, vielleicht noch die ausgabe von der logik trennen...

__toString() könnte dich weiterbringen
__________________
twitter.com/moveax1 || http://modxcms.com/ || http://ubuntuusers.de/

$live->free() OR die();
moveax1 ist offline  
Alt 25.06.2009, 14:07  
Erfahrener Benutzer
 
Registriert seit: 02.12.2008
Beiträge: 357
webproger befindet sich auf einem aufstrebenden Ast
Standard

@Chriz: Wie meinst du mit PHP zusammenbauen? Ich hole ja das Menu schon aus der DB und baue es mit PHP zusammen.
@moveax1: klar, werde ich machen. aber wo soll ich __toString(); anwenden? Bei dem abfüllen der DAten in die String-Variabel?
Danke!
__________________
webproger ist offline  
Alt 25.06.2009, 16:40  
Erfahrener Benutzer
 
Benutzerbild von drsoong
 
Registriert seit: 05.08.2008
Beiträge: 1.127
drsoong wird schon bald berühmt werden
Standard

Wie langsam ist denn langsam? Habe es mir jetzt nicht bis ins Detail angesehen, aber zum erstellen der 5 Menüpunkte dürfte nicht mehr als ein kleiner Bruchteil einer Sekunde vergehen.

Ansonsten wirkt Dein Ansatz etwas undynamisch, weil jede Erweiterung im Menü eine Erweiterung der Klasse bedeutet.
drsoong ist offline  
Alt 25.06.2009, 17:59  
Erfahrener Benutzer
 
Registriert seit: 02.12.2008
Beiträge: 357
webproger befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von drsoong Beitrag anzeigen
Wie langsam ist denn langsam? Habe es mir jetzt nicht bis ins Detail angesehen, aber zum erstellen der 5 Menüpunkte dürfte nicht mehr als ein kleiner Bruchteil einer Sekunde vergehen.

Ansonsten wirkt Dein Ansatz etwas undynamisch, weil jede Erweiterung im Menü eine Erweiterung der Klasse bedeutet.
Sehr langsam. sicher ca. 4 Sekunden bis dass ganze geladen ist. Danke für den Tipp. Nehme ich mir zu herzen.
__________________
webproger ist offline  
Alt 25.06.2009, 18:04  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

4 Sekunden für das da oben in #1?! Da stimmt doch was nicht.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 25.06.2009, 18:10  
Erfahrener Benutzer
 
Registriert seit: 02.12.2008
Beiträge: 357
webproger befindet sich auf einem aufstrebenden Ast
Standard

das würde ich auch meinen. deshalb komme ich ins forum.
es sind ca. 15 menupunkte die er hereinlädt. es sind noch relativ grosse bilder welche auch eine grosse ladezeit brauchen. aber dennoch liegt es nicht nur an diesen. wenn ich das menu statisch mache ist es viel schneller.
__________________
webproger ist offline  
Alt 25.06.2009, 18:13  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ich glaube wir sehen hier wieder Traumcode.

Zitat:
Ich hole ja das Menu schon aus der DB und baue es mit PHP zusammen.
Diese Aussage passt mit dem Codebeispiel nicht zusammen.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 25.06.2009, 18:28  
Erfahrener Benutzer
 
Registriert seit: 02.12.2008
Beiträge: 357
webproger befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Ich glaube wir sehen hier wieder Traumcode.


Diese Aussage passt mit dem Codebeispiel nicht zusammen.
Wie ist diese Aussage denn gemeint? Ich verstehe nicht wie ich die Menus aus der Datenbank holen sollte und dann mit PHP zusammenbauen. Mach ich das nicht jetzt schon?!
__________________
webproger ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
dynamisches Menü floh77 Scriptbörse 1 06.06.2009 10:28
[Erledigt] Dynamisches Menu (ewiges laden...) webproger PHP Tipps 2008 0 02.12.2008 12:27
horizontales Menü Fritz73 Scriptbörse 9 26.05.2008 22:26
dynamisches php menü + datenbank alexo PHP Tipps 2006 17 19.04.2006 00:29
[Erledigt] dynamisches dropdown menü PHP Tipps 2006 3 11.01.2006 15:15
wie gehts schöner/besser? AliceD HTML, Usability und Barrierefreiheit 1 06.09.2005 08:59
Menü aus MySQL Datenbank ausgelesen PHP Tipps 2005 9 02.06.2005 17:11
Dynamisches Menü mit Icons(!) zur Navigation Beitragsarchiv 9 20.04.2005 18:44
Dynamisches Menü mit Icons PHP Tipps 2005 2 18.04.2005 16:03
dynamisches MENÜ aus db lesen.probleme mit SUBid !! PHP Tipps 2005 26 24.03.2005 18:53
Dynamisches Menu PHP Tipps 2005 11 22.03.2005 20:36
[Erledigt] Dynamisches Menü erweitern?? PHP Tipps 2005 1 19.03.2005 14:41
Dynamisches Menü mit untermenü PHP Tipps 2005 3 03.02.2005 18:52
Menü auf php-Seite PHP Tipps 2005 20 01.02.2005 20:24
dynamisches Menü Calexico HTML, Usability und Barrierefreiheit 7 11.09.2004 14:54

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php dynamisches menü, div onmouseover langsam, php dynamisches onmouseover, php dynamisches menü mouseover, onmouseover zu langsam, menu.ist, menü untermenue struktur mit php, php dynamisches menü switch, ajax menü langsam erweitern

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:13 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum