[PHP] php echo dauert lange

Dieses Thema im Forum "Webentwicklung" wurde erstellt von onip, 18. Februar 2011 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 18. Februar 2011
    php echo dauert lange

    hallo zusammen,

    vielleicht könnte mir jemand folgendes erklären.
    und zwar mach ich eine anfrage und erhalte derzeit 642 datensätze zurück.
    daraus bastel ich mir etwas html (li, table, input, select und button) zusammen.
    und geb mir das per echo aus.
    sobald ich die ausgabe mache, warte ich ca. 10 sekunden bis ich alles auf den schirm habe
    und der browser fertig geladen hat.
    ohne echo nicht mal ne 1 sekunde.

    ich versteh das so, dass das erstellen des strings zügig geht,
    jedoch die ausgabe lange dauert.
    mein string hat ca. 1712900 zeichen.

    zum testen hab ich mir ne while schleife gebastelt.
    das mir ein string mit 1712900 zeichen erstellt.
    die ausgabe geht sehr schnell.

    nutz ich diese schleife um mein html string nach zu ahmen,
    warte ich wieder ewig.

    ich versteh das nicht?

    speicher ich den string ab, ist die datei ca. 1,5 mb groß.
    das statisch html braucht im browser auch recht lang, mmh.
     
  2. 18. Februar 2011
    AW: php echo dauert lange

    hast du output-buffering aktiviert? wenn ja: abschalten
    aber bei 1,5 mb code solltest du dir vielleicht überlegen deine "strings" zum blättern anzubieten.
     
  3. 18. Februar 2011
    AW: php echo dauert lange

    php.ini
    output_buffering = Off

    die ausgabe zeigt die navistruktur in meinem cm-system,
    damit kann man dann per drag&drop die struktur verändern oder den artikel bearbeiten.
    blättern kommt daher nicht in frage.
    vielleicht sollte ich mir dafür ne ajax funktion schreiben, wenn das was helfen würde.
    also per js jeden knoten in einen container generieren.
     
  4. 18. Februar 2011
    AW: php echo dauert lange

    du solltest dir das auf alle fälle nochmal überlegen 1,5 MB auf einmal auzugeben.

    aber egal, poste mal ein wenig code vielleicht kann man was optimieren.
     
  5. 18. Februar 2011
    AW: php echo dauert lange

    das simuliert meine erstellung des strings.
    $modStr (Modulauswahl) und $aktivStrN (aktiv, inaktiv) sind <option>,
    die ich zuvor erstelle, damit diese auch nicht in der schleife laufen.
    PHP:
    $i  0 ;
    $x  '' ;
    while (
    $i  <=  650 ){
        
    $x  .=  '<li id="" class="" style="list-style: none;">
                    <table width="100%" border="0" cellspacing="0" cellpadding="0" class="menulist">
                        <tr>
                            <td width="50"class="noborder"><img src="img/tree_drag.gif" class="dragger" /><img src="img/tree_plus.gif" class="nCollapse" /></td>
                            <td align="right">
                                <input type="text" name="name" value="'
    . $i . '" class="inputbold" style="text-align:right;" />
                            </td>
                            <td width="160" align="right">
                                <select class="modul" name="modul" style="text-align:right;">
                                    '
    . $modStr . '
                                </select>
                            </td>
                            <td width="110" align="right">
                                <div class="selectaktiv">
                                <select name="aktiv" class="aktiv" style="text-align:right;">
                                    '
    . $aktivStrN . '
                                </select>
                                </div>
                            </td>
                            <td class="noborder" width="64" align="center">
                                <div class="btnEl">
                                    <input type="Submit" name="saveset" value="speichern" class="butsave" />
                                    <input type="submit" name="edit" value="bearbeiten" class="butedit" />
                                    <input type="Submit" name="del" value="löschen" class="butdelete" />
                                </div>
                                
                            </td>
                        </tr>
                    </table>'
    ;
        
    $i ++;
    }

    echo 
    $x ;
     
  6. 18. Februar 2011
    AW: php echo dauert lange

    probier mal direkt echo und dahinter ein flush() dann bist du das zeug direkt los.
    $x belegt sonst nur unnötig speicher.
     
  7. 18. Februar 2011
    AW: php echo dauert lange

    kaum bis gar kein unterschied
    PHP:
    $i  0 ;
    while (
    $i  <=  650 ){
        echo 
    '<li id="" class="" style="list-style: none;">
                    <table width="100%" border="0" cellspacing="0" cellpadding="0" class="menulist">
                        <tr>
                            <td width="50"class="noborder"><img src="img/tree_drag.gif" class="dragger" /><img src="img/tree_plus.gif" class="nCollapse" /></td>
                            <td align="right">
                                <input type="text" name="name" value="'
    . $i . '" class="inputbold" style="text-align:right;" />
                            </td>
                            <td width="160" align="right">
                                <select class="modul" name="modul" style="text-align:right;">
                                    '
    . $modStr . '
                                </select>
                            </td>
                            <td width="110" align="right">
                                <div class="selectaktiv">
                                <select name="aktiv" class="aktiv" style="text-align:right;">
                                    '
    . $aktivStrN . '
                                </select>
                                </div>
                            </td>
                            <td class="noborder" width="64" align="center">
                                <div class="btnEl">
                                    <input type="Submit" name="saveset" value=" " class="butsave" />
                                    <input type="submit" name="edit" value=" " class="butedit" />
                                    <input type="Submit" name="del" value=" " class="butdelete" />
                                </div>
                                
                            </td>
                        </tr>
                    </table>'
    ;
        
    flush ();
        
    $i ++;
    }
    // edit
    ich glaub das ich mir nen json string erstelle (extrem schneller) und dann per JS mein html zusammen bastel.
    könnte das was bringen?
     
  8. 18. Februar 2011
    AW: php echo dauert lange

    Die Struktur ist immer die selbe, daher würde sich, wie du schon gesagt hast, JSON anbieten damit du mit Javascript den immer gleichen Code in die Seite schreiben kannst!
     
  9. 21. Februar 2011
    AW: php echo dauert lange

    so,

    hab nun ein js, das mir aus json das html string generiert.
    ergebnis keine verbesserung.
    ich glaub, dass ich mir gedanken machen sollte in der struktur überhaupt soviele informationen
    zu zu lassen und es mehr auf module verteile.

    // edit
    ~closed~
     
  10. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.