Endlosschleife Countdown

könntest du mir mehr weiterhelfen?
ich wüsste im moment nicht wo der fehler liegt und wo ich genau weiter machen soll.
aber die sec = sec + 10 entfernt, aber das Resultat bleibt das selbe

habe auch den pfad für die .load datei angepasst.
 
Zuletzt bearbeitet:
Probiere es so:
Code:
<script type="text/javascript">
jQuery(document).ready(function() {
    var day = <? echo $energy_datum_array[0]; ?>;
    var month = <? echo $energy_datum_array[1]; ?>;
    var year = <? echo $energy_datum_array[2]; ?>;
    var hour = <? echo $energy_uhrzeit_array[0]; ?>;
    var min = <? echo $energy_uhrzeit_array[1]; ?>;
    var sec = <? echo $energy_uhrzeit_array[2]; ?>;
    function myCountdown() {
        jQuery('#countdown_dashboard').countDown({
                 targetDate: {
                     'day':        day,
                     'month':    month,
                     'year':        year,
                     'hour':      hour,
                     'min':        min,
                     'sec':        sec
                   },
          
                   // onComplete function
                   onComplete: function() {
                       sec = sec +10;
                       jQuery( "#live_update" ).load( "counter_update_energy.php"  );  
                       myCountdown();
                    }
                 });
    }
    myCountdown();
  });
</script>
 
habe ich gemacht.
sieht bis jetzt gut aus, auch wenn ich die Seite manuell lade läuft der Timer an dieser Stelle weiter.

könntest du mir kurz grob erklären wie das script jetzt funktioniert?
 
Zuletzt bearbeitet:
Na, das ist doch schon mal ein Erfolg. Das verbleibende Problem erfordert schon eine fortgeschrittene Technik, indem Du den Zeitpunkt, z. B. in einem Cookie, speicherst. Informiere dich über Cookies, am besten zusammen mit einem Plugin, das die Handhabung erleichtert:
https://github.com/js-cookie/js-cookie
(Anleitung im README.md)
 
allerdings ist mir jetzt ein Fehler aufgefallen,

wenn ich diesen Counter in 2 Browsern manuell aufhaben, einen lasse ich einfach so laufen, bei dem anderen drücke ich ab und zu mal neu laden der seite und dann kommt der counter ins schwitzen, er ruft dann sehr oft ganz schnell hintereinander die .load funktion auf, welche mir in der DB einen Wert um +1 erhöht.

ne idee woran das liegen kann?
 
Ist deine Testseite unter dem Link oben aktuell? D. h. kann man es damit testen?
Edit: Bau mal eine Log-Ausgabe für das onComplete ein:
Code:
                   onComplete: function() {
                       console.log("onComplete triggered");
                       sec = sec +10;
                       jQuery( "#live_update" ).load( "counter_update_energy.php"  );  
                       myCountdown();
                    }
 
Zuletzt bearbeitet:
Da kann ich aber von Cookies nichts erkennen ;-) und der Timer startet auch beim Neuladen von vorn.

Zunächst mal: Beim Aufruf der update-Seite kommt eine Fehlermeldung in der Konsole:
NetworkError: 500 Internal Server Error
Das solltest Du beheben.

Dann habe ich versucht, das Problem, das Du beschreibst, zu reproduzieren: Ich benutze Firefox; diesen zwei Mal gestartet und im zweiten Fenster ein paar Mal Reload gedrückt. Dabei ist das Verhalten wie zu erwarten: Beim Reload passiert gar nichts, der Timer startet von vorn. Nur beim Ablauf des Timers kommt die programmierte Meldung und die Fehlermeldung, die anzeigt, dass die update-Seite aufgerufen wird.
D. h. ich konnte das Problem nicht reproduzieren.
 

Neue Beiträge

Zurück