Menü nicht neu laden / Content neu laden

resoucer

Gesperrt
ID: 77379
L
20 April 2006
2.846
109
Hi, wollte mal fragen ob irgendwer eine möglichkeit sieht, dass ich mein Menü (welches neorm viele DB Abfrage hat) nur 1 mal laden muss und dann nie wieder.

Aber der content sich immer wieder neu lädt.

Evtl. geht das mit divs, aber bin noch nicht soweit das ich die richtig einsetzten kann das es funktioniert

PS: Frames wollte ich nicht benutzen
 
Das würde dem Server glaube ich mehr Arbeit machen, als wenn du das Menü neu lädst. Das Einzige was mir dazu jetzt einfallen würde, wäre mit AJAX den Content aus einer PHP einzulesen. Damit schließt du User mit älteren Browsern aber aus.

Evtl. können wir dir ja auch helfen, das Menü zu optimieren, kannst uns ja mal den Code zeigen. Faustregel ist aber erstmal: kein SELECT * - damit kann der in MySQL eingebaute Optimizer nicht wirklich umgehen.

P.S.: Wenn der User auf den 'Aktualisieren'-Button klickt, wird das Menü so oder so neu geladen - mach dir also nicht allzu viel Hoffnung, was das angeht ;)

P.P.S.: Wäre übrigens auch noch interessant zu hören, was genau du unter 'viel' verstehst - um mich auf wittis' Post unter mir zu beziehen.
 
Zuletzt bearbeitet:
du könntest das nun mit frames regeln, was aber nicht wirklich geschickt wäre

aber warum?
denn die MySQL DB ist für viele Anfragen ausgelegt und kann sehr hohe Datenmengen verarbeiten, daher ist es gleich, ob nun das menü neu geladen wird oder nicht...
 
H3v3n schrieb:
Das würde dem Server glaube ich mehr Arbeit machen, als wenn du das Menü neu lädst. Das Einzige was mir dazu jetzt einfallen würde, wäre mit AJAX den Content aus einer PHP einzulesen. Damit schließt du User mit älteren Browsern aber aus.

Evtl. können wir dir ja auch helfen, das Menü zu optimieren, kannst uns ja mal den Code zeigen. Faustregel ist aber erstmal: kein SELECT * - damit kann der in MySQL eingebaute Optimizer nicht wirklich umgehen.

P.S.: Wenn der User auf den 'Aktualisieren'-Button klickt, wird das Menü so oder so neu geladen - mach dir also nicht allzu viel Hoffnung, was das angeht ;)

okay, hier ist meine aktuelle menücreation
PHP:
              <?
 $zusatz1="";
for($x=0;$x < count($array_kats);$x++) {
$zusatz1 .= " and kategorie!='".$array_kats[$x]."' ";	
	
	
}
  
                                                                 
$result33 = mysql_query('SELECT kategorie,hauptkategorie FROM artikel_kats WHERE kategorie !="Gewinnspiele" '.$zusatz1.' GROUP by hauptkategorie');
$numtmp=mysql_num_rows($result33);
echo mysql_error();
while($row23 = mysql_fetch_object($result33)){
	$querys++;
 
	$kat=$row23->hauptkategorie;
	$cookie_hauptkategorie .= ";".$kat;
	$kat3=$row23->kategorie;	
	$kat2= str_replace("%20", " ", $kat);
	$kat2= str_replace("&", "-uuu-", $kat2);
	$kat2= urldecode($kat);
	$kat3= str_replace("%20", " ", $kat3);
	$kat3= str_replace("&", "-uuu-", $kat3);
	$kat3= urldecode($kat3);
	$kat= str_replace("_", " ", $kat);
	if($kat!="") {
		$kat = ucfirst($kat); 
	echo '<img src="images/dot.gif"> <a href="index.php?navid=kat&h='.$kat2.'">'.$kat.'</a><br> ';


if($h==$kat2) {

		$h= urlencode($h);
	$result37 = mysql_query('SELECT kategorie,hauptkategorie FROM artikel_csv where hauptkategorie = "'.$kat.'" and kategorie != "" GROUP by kategorie');	
	echo mysql_error();
	$numtmp11=mysql_num_rows($result37);

	if($numtmp11 > 0) {
	while($row20 = mysql_fetch_object($result37)){		
		$querys++;
		$kat4 = $row20->kategorie;
		$kat5= urlencode($kat4);
	$kat4= substr($kat4, 0, 22);
	$kat4= str_replace("_", " ", $kat4);
	 echo '  <img src=img/icon_arrow.jpg><a href="index.php?navid=kat&h='.$kat2.'&d2='.$kat5.'">'.$kat4.'</a><br>';
	
  	}
	 
	 if($d2==$kat5) {
	 $result38 = mysql_query('SELECT kategorie2,hauptkategorie FROM artikel_csv where hauptkategorie = "'.$kat.'" and kategorie = "'.$kat5.'"  and kategorie2 !="" GROUP by kategorie2');	
	echo mysql_error();
	$numtmp12=mysql_num_rows($result38);
	if($numtmp12 > 0) {
	while($row18 = mysql_fetch_object($result38)){
		$querys++;
		$kat44 = $row18->kategorie2;
			$kat55= urlencode($kat44);
		$kat44 = substr($kat44, 0, 22);
		$kat44= str_replace("_", " ", $kat44);
	 echo '   <img src=img/icon_arrow.jpg><a href="index.php?navid=kat&h='.$kat2.'&d2='.$kat5.'&d3='.$kat55.'">'.$kat44.'</a><br>';

	}	
}	
	}
	 
	}
	
	}	
		
	}     
 }
    
          ?>

kann man bestimmt noch einiges dran optimieren

Also aktuell dauert es ca. 0.5-4 sekunden die seite zu loaden

Sind ca. 250.000 Einträge in artikel_csv (am ende sind es ca. 2mio Einträge)