ilch Forum » Allgemein » HTML, PHP, SQL,... » ladebalken vor ausgabe

Geschlossen
  1. #1
    User Pic
    SteKu Mitglied
    Registriert seit
    25.03.2007
    Beiträge
    259
    Beitragswertungen
    2 Beitragspunkte
    Servus

    ich bin auf der suche am probieren beim auslesen aus der DB einen ladebalken vor"zuschalten"

    Bei einem einfachem beispiel funktioniert dies auch:
    <script type="text/javascript">
    <!--
    function layer_close(){
     if(document.getElementById("statusload").style.visibility=="visible"){
      document.getElementById("statusload").style.visibility="hidden";
     }
    }
    window.setTimeout("layer_close()",3000); // Angabe in Millisekunden, Layer(Div) wird nach 3 Sek. ausgeblendet
    -->
    </script>
    
    <div>
     <div id="statusload" style="visibility:visible;background-repeat: no-repeat;background-position:center;background-image:url('kurze-stefan.de/bilder/mom.gif');background-color:#FFFFFF; position:absolute; height:16px; width:195px; z-index:1;"></div>
    
     <div style="height:16px; width:195px;">Jetzt siehst mich auch!</div>
    
    </div>


    Mach ich dies jetzt aber in einer while-schleife dann funktioniert dies nicht mehr. ich gehe mal davon aus das es am Script liegt. gibt es da vielleicht ein andere lösung ein DB ergebniss (while-schlefe) anzeigenzulasen mit "vorgeschaltetem" ladebalken?

    Das mein derzeitiger code

    <script type="text/javascript">
    <!--
    function layer_close(){
     if(document.getElementById("statusload").style.visibility=="visible"){
      document.getElementById("statusload").style.visibility="hidden";
     }
    }
    window.setTimeout("layer_close()",3000); // Angabe in Millisekunden, Layer(Div) wird nach 3 Sek. ausgeblendet
    -->
    </script>
    
    <?
              
    $abfrage = "SELECT * FROM prefix_userst WHERE uid = '".$_SESSION['authid']."'"; 
    $ergebnis = db_query($abfrage); 
    while($row = db_fetch_object($ergebnis)) 
        {
    	
    	echo '
        <tr>
            <td width="" height="11">'.$row->surl.':'.$row->sport.'</td>
            <td width="" height="11"><div>
    
     <div id="statusload"></div>
     
     <div style="height:16px; width:195px;">'.$status.'</div>
     
    </div>
    </td>
            <td width="" height="11">
                <table cellpadding="0" cellspacing="0">
                    <tr>
                        <td width="30">
                            <p><img src="include/images/icons/start.png" width="22" height="22" border="0" alt="star"></p>
                        </td>
                        <td width="30"><img src="include/images/icons/stop.png" width="22" height="22" border="0" alt="stop"></td>
                        <td width="30"><img src="include/images/icons/reload.png" width="22" height="22" border="0" alt="neu"></td>
                        <td width="30">
                            <p><img src="include/images/icons/logfile.png" width="22" height="22" border="0" alt="Logfile"></p>
                        </td>
                        <td width="30">
                            <p><img src="include/images/icons/edit.png" width="22" height="22" border="0" alt="edit"></p>
                        </td>
                    </tr>
                </table>
            </td>
        </tr>';
    				}
    				
    				?>
                </table>
    Wer Rechtschreibfehler findet darf sie behalten.
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Balthazar3k Mitglied
    Registriert seit
    23.04.2006
    Beiträge
    422
    Beitragswertungen
    7 Beitragspunkte
    das wird nicht gehen, ein ladebalken mit dem script, dein beispiel zeigt nur nach 3 sek den content an ob er nun fertig geladen ist oder nicht.

    und das hat auch nichts mit php while zu tun.

    sondern im echo vom php,
    da fehlt ein <table> zum beispiel.

    Zuletzt modifiziert von Balthazar3k am 20.07.2009 - 13:41:19
    Kein Support für den Raidplaner über PM.
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    annemarie gelöschter User
    was du dir da denkst, wirst du nicht sinngemäß umsetzen können, so wie du es anpackst!

    1. entweder du lädst die page und startest dann ajaxrequests zur content generierung (schwachsinn, wirst du wahrscheinlich eh nicht hinkriegen (das soll kein dizz sein!)).

    2. einen ladebalken anzeigen bevor der content eingeblendet wird, noch größerer schwachsinn. auf solch einer page würde ich nicht lange surfen.

    solltest du dennoch wollen das du einen anständigen ladebalken im design hast schau dir jQuery + jQueryUI an, jQuery UI bringt dir direkt einen ladebalken mit und die funktionsweise ist gut dokumentiert.
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    OloX Hall Of Fame
    Registriert seit
    25.02.2006
    Beiträge
    990
    Beitragswertungen
    23 Beitragspunkte
    Dito zwinker
    PHP, JavaScript, CSS
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    lookout Mitglied
    Registriert seit
    31.10.2007
    Beiträge
    152
    Beitragswertungen
    0 Beitragspunkte
    Ich hab das mal irgendwo gesehen, ich glaube es war bei einem CMS dabei...hat ganz cool ausgeschaut, und annemarie, das hat nichts mit ajax zu tun gehabt, es war aber auch nicht so dass es einfach 3 Sekunden gewartet hat.

    Ich hab mich damals schon gewundert wie das geht, wenn jemand das wieder findet, schreibt einfach den link, dann kann man sich das mal anschauen.
    Zur Zeit geheimes Projekt am Laufen!
    Der Web Informant
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    annemarie gelöschter User
    ZitatZitat geschrieben von lookout
    Ich hab das mal irgendwo gesehen, ich glaube es war bei einem CMS dabei...hat ganz cool ausgeschaut, und annemarie, das hat nichts mit ajax zu tun gehabt


    na dann wars nur show off.

    wie willst du einen status von etwas anzeigen ohne informationen vom vorgang selbst zu bekommen?

    spricht wenn schritt 4 von 10 dran ist, woher weiß der ladebalken das er auf 40% springen muss? :>

    und komm mir jetzt nicht mit activeX control oder java.

    ein ladebalken macht nur sinn wenn dieser immer aktualisiert wird, das erreichst du entweder über ajax request oder page refresh. da n page refresh unsinnig ist bleibt wohl nur der ajax request.
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    lordrepha Mitglied
    Registriert seit
    11.03.2006
    Beiträge
    1.362
    Beitragswertungen
    22 Beitragspunkte
    also man muss auch dazu sagen das es gerade bei ajax üblich ist anhand einer animation dem user lediglich zu zeigen das gerade irgendwas geladen wird. Ohne das dort irgendwelche % Zahlen stehen.

    allerdings ist bei sowas auch ein httprequest nötig ala ajax wie das jetzt mit php gehen soll wäre mir schleierhaft.

    das einzige was ich mir noch vorstellen kann wäre das Inhalte die nachgeladen werden sollen gleich von vorneherein geladen werden und man lediglich große Bilder Bilder nachläd. Sprich bei einer gallerie werden alle Kommentare zu den Bildern geladen aber nur die die auf der ersten seite sichtbar sind werden angezeigt der rest ist unsichtbar. es wird aber auch nur wirklich das 1 Bild das sichtbar ist geladen. sprich als zusammenfassung..

    1 Bild wurde geladen und angezeigt
    alle Komentare wurden geladen und alle für Bild 1 werden angezeigt

    nun kann man natürlich mit javascript beim klick auf einen Button es so aussehen lassen als ob irgendetwas dynamisch nachgeladen wird. sprich man bindet ein Eventhandler an das neu zu ladene Bild das erst feuert wenn das Bild kommplett geladen ist solange soll eben die ladeanimation abspielen..

    ich weiss nicht ob das verständlich war. wahrscheinlich eher nicht^^
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    annemarie gelöschter User
    joa joa, so hab ichs schonmal für ne andere gallerie realisiert.
    aber das ist lediglich auf bilder anwendbar, willst du HTML nachladen benötigst du halt ajax.
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    lordrepha Mitglied
    Registriert seit
    11.03.2006
    Beiträge
    1.362
    Beitragswertungen
    22 Beitragspunkte
    richtig lächeln das gleiche gilt auch für php


    Zuletzt modifiziert von lordrepha am 20.07.2009 - 16:07:41
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Naja das was an eine Seite lange dauert zu laden sind nunmal Bilder und Flash, und man kann schon ein Ladebalken machen, der angezeigt wird, bis z.B. alle Bilder geladen wurden, ob das nun Sinn macht sei mal dahin gestellt, der Browser hat ja sein eigenen Ladebalken zunge

    Außerdem gibts dann Probleme, wenn man Bilder nicht so schnell geladen werden können, da schaut man in der Regel ja schon lieber auf ne unfertige Seite als auf ne Meldung, man soll doch bitte mal warten.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    Scriptpfuscher Mitglied
    Registriert seit
    24.06.2009
    Beiträge
    44
    Beitragswertungen
    0 Beitragspunkte
    und das ganze ganz ohne javascript, flash, activex oder der gleichen ginge in php wohl nur mit flush / ob_flush aber in wieweit das sinnvoll ist soll mal dahingestellt sein zwinker
    Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    SteKu Mitglied
    Registriert seit
    25.03.2007
    Beiträge
    259
    Beitragswertungen
    2 Beitragspunkte
    also erstmal sorry das ich mich jetzt erst wieder melde.

    es geht einfach darum das ein Status ausgelesen wird der auf grund von fsocken und fopen, dauert dies manchmal ein klein wenig .. und ich wollte eben das die seite schon angezeigt wird und eben dann

    Status ist: "Ladebalken oder so"

    angezeigt wird bis der Status fertig ausgelesen ist.

    Ich denke mal das ich mir da ajax anschauen muss, ich werd mir auch mal das von annemarie anschauen.
    Wer Rechtschreibfehler findet darf sie behalten.
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Eigentlich ist immer anzuraten, wenn man den Status von irgendwas mit fsockopen abfragt, das Ergebnis zwischenzuspeichern, womit die Ladezeit eigentlich niedrig gehalten werden kann, zumindest im Mittel, wenn du Cronjobs hast, dann kannst du sie generell niedrig halten.

    Dann müsstest du das Ergebnis einfach nur Cachen und könntest es dann einfügen.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten