Ergebnis 1 bis 8 von 8

Thema: JS-Zähler gesucht (Div Updaten)

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer
    Registriert seit
    21.11.2006
    Beiträge
    304
    Zitat Zitat von ztk-hosting Beitrag anzeigen
    Auf Dieser Seite könnte wohl eine mögliche Problemlösung stehen

    Wenn ich wüsste wie du aktualisieren möchtest, bzw. ein paar Details hätte, hätte ich dir ein kleines Beispiel zurecht gebastelt. Darfst natürlich gerne weitere Infos posten, oder mich auch kontaktieren diesbezüglich.
    Ich habe eine SQL-Query, wo Paidmails aus der DB gelesen und an die Mitglieder verschickt werden.....wenn jetzt 500 Mitglieder angemeldet sind, bleibt die Seite bis zum Verschicken aller Mails ohne Inhalt, da will ich in die Query ein JS einbauen, welches die Anzahl der bereits verschickten Mails anzeigt und aktualisiert

    Mit deinem Link kann ich mal garnichts anfangen, weil er total Themenfremd ist

  2. #2
    Erfahrener Benutzer Avatar von jpwfour
    Registriert seit
    06.02.2008
    Beiträge
    3.717
    in sql abfragen javascript einzubauen ist relativ unmöglich, javascript kann nur in html seiten eingebaut werden, die evtl. von php generiert werden.

    was ich mir vorstellen könnte, wäre (und damit umgeht man auch mögliche timeouts vom server), das verschicken der emails in eienr art warteschlange zu machen, also immer in 50er packeten z.bsp., und das ganze per GET parameter steuert.

    d.h.:
    klick auf "verschicken"-> verschicken.php?s=1
    beim onload ereignsi, d.h. wenn alle emails verschickt sind, wird verschicken.php?s=2 geladen, nun werden die nächsten 50 mails verschickt etc...

    oder manmacht es gleich mit ajax, also dass man nur eine seite hat, die im "hintergrund" das scruipt zum verschicken aufruft, und solange das keinen wert zurückgibt, eine art ladeanimation anzeigt.

    oder auch per php und flush(), nur dann kann man nur zahlen "anhängen" und keine vorhandenen aktualisieren.
    Kill one man, and you are a murderer.
    Kill millions of men, and you are a conqueror.
    Kill them all, and you are a god.
    - Jean Rostand, Thoughts of a Biologist (1939)

  3. #3
    Erfahrener Benutzer
    Registriert seit
    21.11.2006
    Beiträge
    304
    Zitat Zitat von jpwfour Beitrag anzeigen
    in sql abfragen javascript einzubauen ist relativ unmöglich, javascript kann nur in html seiten eingebaut werden, die evtl. von php generiert werden.

    was ich mir vorstellen könnte, wäre (und damit umgeht man auch mögliche timeouts vom server), das verschicken der emails in eienr art warteschlange zu machen, also immer in 50er packeten z.bsp., und das ganze per GET parameter steuert.

    d.h.:
    klick auf "verschicken"-> verschicken.php?s=1
    beim onload ereignsi, d.h. wenn alle emails verschickt sind, wird verschicken.php?s=2 geladen, nun werden die nächsten 50 mails verschickt etc...

    oder manmacht es gleich mit ajax, also dass man nur eine seite hat, die im "hintergrund" das scruipt zum verschicken aufruft, und solange das keinen wert zurückgibt, eine art ladeanimation anzeigt.

    oder auch per php und flush(), nur dann kann man nur zahlen "anhängen" und keine vorhandenen aktualisieren.
    Die Funktion zum verschicken läuft ja schon (per Funktion nicht per GET ), die Sache mit dem Ajax klingt ineressant, leider hab ich davon fast keine Ahnung, eine Lade-Animation wäre auch Cool :-)

  4. #4
    Erfahrener Benutzer
    Registriert seit
    21.11.2006
    Beiträge
    304
    Das ganze sieht so aus:

    PHP-Code:
    while($res2 sql_fetch_assoc($sql2)) {

    /* ca 2000 Datensätze verarbeiten */


    Anzeige für Adminwas und ob überhaupt etwas getan wird


    Dumemrweise wird in dieser Schleife nichtmal ein ein "echo" ausgegeben,

  5. #5
    Erfahrener Benutzer Avatar von jpwfour
    Registriert seit
    06.02.2008
    Beiträge
    3.717
    eine möglichkeit:
    PHP-Code:
    while($res2 sql_fetch_assoc($sql2)) {

    /* ca 2000 Datensätze verarbeiten */


    Anzeige für Adminwas und ob überhaupt etwas getan wird

    echo '.';
    flush(); //sendet den ausgabe puffer

    }

    echo 
    'fertig'
    so würde nach jedem verarbeiteten datensatz ein punkt erscheinen, und am ende fertig.

    wobei diese option nur auf ca. 40% aller syteme/server funzt, da zum teil der server weiter "puffert", also doch alles erst ausgibt, wenn fertig gearbeitet, oder dein browser weiterpuffert, also auch alle punkte auf einmal erscheinen und nicht nacheinander.

    aber einen test ist es ja wert.

    die bessere methode wäre, den der while schleife vorausgehenden query per limit abzugrenzen, und dann eben per GET varaibel und einem javascript die limits immer höher setzen.
    Kill one man, and you are a murderer.
    Kill millions of men, and you are a conqueror.
    Kill them all, and you are a god.
    - Jean Rostand, Thoughts of a Biologist (1939)

  6. #6
    Erfahrener Benutzer
    Registriert seit
    21.11.2006
    Beiträge
    304
    Zitat Zitat von jpwfour Beitrag anzeigen
    eine möglichkeit:
    PHP-Code:
    while($res2 sql_fetch_assoc($sql2)) {

    /* ca 2000 Datensätze verarbeiten */


    Anzeige für Adminwas und ob überhaupt etwas getan wird

    echo '.';
    flush(); //sendet den ausgabe puffer

    }

    echo 
    'fertig'
    so würde nach jedem verarbeiteten datensatz ein punkt erscheinen, und am ende fertig.

    wobei diese option nur auf ca. 40% aller syteme/server funzt, da zum teil der server weiter "puffert", also doch alles erst ausgibt, wenn fertig gearbeitet, oder dein browser weiterpuffert, also auch alle punkte auf einmal erscheinen und nicht nacheinander.

    aber einen test ist es ja wert.

    die bessere methode wäre, den der while schleife vorausgehenden query per limit abzugrenzen, und dann eben per GET varaibel und einem javascript die limits immer höher setzen.
    So hatte ich es ja auch gehabt, dummerweise konnte ich mit flush(); alleine kein Erfolg erzielen, nur mit :

    flush();
    ob_flush();

    wurde das Ergebniss direkt ausgegeben. Die Daten, die ausgegeben werden sollten, stehen direkt vor dem flush();

    So sieht es aus (bei einem JS-Noob ) :

    PHP-Code:

    // blabla
            echo '<div align="center"><div id="versand">Es werden <strong>' . $res4a . '</strong> Paidmails der Kampagne <strong>' . $k_name . '</strong> verschickt.<br /><br />';
            ob_flush();
            flush();

    // blabla

    ?>
    <script type="text/javascript">
    var count = 0;
    </script>
    <?PHP
            
    while($res4 sql_fetch_assoc($sql4)) {
                
    extract($res4);
                
    extract($res21);
    ?>
    <script type="text/javascript">
    count++;
    zahl.innerHTML = count;
    </script>
    <?PHP
                
    echo '<div id="zahl" style="font-size:14px; font-weight:bold;"></div>';
                
    ob_flush();
                
    flush();
    // blabla

            
    }
            echo 
    '</div></div>';
            
    ob_flush();
            
    flush();
    im Firefox läuft das Hochzählen für en 1. Durchgang perfekt, allerdings wird für den 2. Durchgang ein neuer DIV unter dem 1. gemacht und der Zähler läuft im 1. DIV wieder hoch, nicht im 2. :/

Ähnliche Themen

  1. [HTML/CSS/JS] Opener updaten.....Funktioniert es?
    Von breaker im Forum [HD] Programmieren
    Antworten: 6
    Letzter Beitrag: 24.11.2009, 09:15
  2. Updaten
    Von Speedy im Forum Support zum VMSone
    Antworten: 1
    Letzter Beitrag: 18.11.2009, 17:08
  3. VMS 1.0 auf 1.2 updaten aber wie?
    Von Klammgate im Forum [HD] Programmieren
    Antworten: 0
    Letzter Beitrag: 24.06.2008, 18:51
  4. Minusbanner Zähler
    Von MacMo im Forum Weiterentwicklung Basisscript
    Antworten: 11
    Letzter Beitrag: 21.03.2008, 18:17
  5. VMS zum Losescrript updaten ? Unterschied ?
    Von Wasserbaendiger im Forum [HD] Programmieren
    Antworten: 4
    Letzter Beitrag: 28.04.2007, 17:39

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •