Script braucht zu lange habe es nur geschafft von 9 sec auf 5 sec zu reduzieren

PHP:
$template = <<<HTML
<td style="color:%s"><form id="Feld%s" action="{$_SERVER['PHP_SELF']}" method="post" onclick="this.submit()"><INPUT class="input" type="hidden" name="neu" value="{$wg}"><INPUT class="input" type="hidden" name="Kordinaten" value="%s">%s</form></td>
HTML;

was macht der Befehl <<<HTML den kenn ich noch garnicht ?

Dein generites script braucht 0,7 sekunden zur ausführund und 0,2 für das array zu erstellen.

Ich glaub es liegt an der $template = zeile das deines Schneller aus geführt wird. Vorallem schreib er dann den Quelltext alles in eine Zeile bem ausführen im browser.
 
Die Schreibweise wird Heredoc bezeichnet, ich hätte aber genauso gut die übliche Schreibweise mit Anführungszeichen verwenden können.

Übrigens gibt es noch weitere Ursachen für das Geschwindigkeitsdefizit. So kann auch der Webserver oder PHP ungünstig konfiguriert sein. Ich habe das Skript auch nur lokal auf meinem optimierten System getestet, daher wohl der gravierende Geschwindigkeitsunterschied unserer Testläufe. Bei mir dauert das Generieren der Testdatensätze sogar etwas länger als das der Spielfeldtabelle.
 
Ich hab Test weiße das script mal so angepasst das die Daten von Db ins Array geladen werden.

Allerdings ist das Ergebniss nicht zufriedenstellend Farben werden ingnoriert und keine Leeren Felder werden angezeigt. Da bleibt dann alles frei.
Dafür ist der aufbau schnell

Dann hab ich mal so geändert das auch die Leer felder angezeigt werden siehe unten Code .
Nun braucht das script 2 sekunden und die Farben werden noch immer nicht dargestellt

hab nun dann bgcolor="%s" statt dem sytly ersetzt.

Was noch auffällt das nun ein parr felder nicht korreckt dargestellt werden.

PHP:
<?
include_once ("../inc/db.php");
$db = new db($fehler);


$Kord=($_POST['Kordinaten']);
$Kor = explode("-", $Kord);
echo "v".$Kor[0];
echo "h".$Kor[1]."<br>";
$H = 50;
$V = 50;
$wg = 'wg';

$template = <<<HTML
<td width="15" height="15" style=" font-size:9" style="color:%s"><form id="Feld%s" action="{$_SERVER['PHP_SELF']}" method="post" onclick="this.submit()"><INPUT class="input" type="hidden" name="neu" value="{$wg}"><INPUT class="input" type="hidden" name="Kordinaten" value="%s">%s</form></td>
HTML;




// Beispieldaten werden generiert

$start = microtime(true);

$Sql_allmap="Select V,H,F_artid,Weg from map1 order by V,H"; 
$db->query($Sql_allmap);
$daten=0;
while ($db->next_record()) {
		
	$records[]= array(
		
		'V'=>(integer)$db->r("V"),
		'H'=>(integer)$db->r("H"),
		'weg'=>$db->r("Weg"),
		'F_artid'=>$db->r("F_artid")
		) ;

	
	$daten++;
}	


echo '<p>Beispieldaten generieren: '.(microtime(true)-$start).' Sekunden</p>';


// Spielfeld wird generiert

$start = microtime(true);

$fetch = true;
$i = 0;
echo '<table border="1">';
for( $coordY=0; $coordY<$V; $coordY++ ) {
    echo '<tr>';
    for( $coordX=0; $coordX<$H; $coordX++ ) {
        if( $fetch ) {
            $record = $records[$i++];
            $fetch = false;
        }
        if( $record['V'] == $coordY && $record['H'] == $coordX ) {
            printf(
                $template,
                ($record['Weg'] === 'j' ? 'yellow' : 'gray'),
                $coordX.'-'.$coordY,
                $coordX.'-'.$coordY,
                $record['F_artid']
            );
            $fetch = true;
        } else { ?>
          <td width="15" height="15" style=" font-size:9" style="color:%s">
         	<form id="Feld<?=$coordX.'-'.$coordY; ?>" action="{$_SERVER['PHP_SELF']}" method="post" onclick="this.submit()">
         	<INPUT class="input" type="hidden" name="neu" value="{$wg}">
         	<INPUT class="input" type="hidden" name="Kordinaten" value="<?=$coordX.'-'.$coordY; ?>"></form></td>
       <? }
    }
    echo '</tr>';
}
echo '</table>';

echo '<p>Spielfeld generieren: '.(microtime(true)-$start).' Sekunden</p>';
 
Zuletzt bearbeitet:
Zurück