cybton.com
Über uns | Jobs | Werbung | Sitemap | AGB | Impressum | Hilfe ?
 Kostenlos anmelden)
wichtigWir suchen PHP-Entwickler/innen (Freelancer oder Vollzeit)
Forum
Aktuellste Beiträge
Forenregeln

Community
BB-Codes
Tags
Chat
Suche (Web)
Wer ist online?
Top-User

Basar


Statistik
Mitglieder gesamt: 69184
Mitglieder online: 0
Gäste online: 1
mehr...

Anzeige
Forum » Forum: Website & Webprogrammierung » Thread: Webcambild neu laden incl. Countdown - Jquery

Thread: Webcambild neu laden incl. Countdown - Jquery


21.02.2012 13:09 Uhr

 

Status: offline
Hallo, jetzt muß ich doch mal nachfragen.

Ich lade mit Jquery Webcambilder neu.
JAVASCRIPT:
1
2
3
4
5
6
7
8
9
10
 
$(document).ready(function() {
                setInterval('updateCamera()',60000);
        });
        function updateCamera() {
            $('.cameras').each(function() {
                var url = $(this).attr('src').split('?')[0];
                $(this).attr('src', url + '?' + Math.random());
            })    
        }
Gleichzeitig lasse ich auch ein Countdown mitlaufen.

Mein Problem ist das beide nicht synchron sind und mein Countdown ist auch nicht wirklich optimal gelöst.

Ich würde gerne eine bessere lösung dafür haben, weis aber leider nicht wie.
+ JAVASCRIPT:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
        var relaod = function ()
        {  
            var count = 60;
            var countdown = setInterval(function(){
                $("span.countdown").html(count);
                if(count == 0)
                {
                    window.clearInterval(countdown);
                }
                count--;
            
            }, 1000);
            window.setTimeout(relaod, 60000);  
        }
        var Timer = window.setTimeout(relaod, 0);
Kann man es nicht irgenwie verbiden damit es auch synchron ist.

Danke schon mal im vorraus.  :lol: 
1 mal bearbeitet
___________________________
Mein System - Tortys-Welt
21.02.2012 15:56 Uhr

 

Status: offline
setInterval ist auf gut deutsch gesagt, scheiße.
wenn das fenster blockiert oder deine cpu ausgelastet ist, kann es durchaus zu abweichungen kommen.
besser wäre mit Date.now() den zeitpunkt des nächsten ticks in MS zu berechnen.

hab dir mal fix was gebastelt.
hätte auch noch ein anderes beispiel für timer relevanten kram mit events etc. was ich mal vor monaten zu test und erklärungszwecken geschrieben habe: countdown
ich würde das teil mittlerweile anders schreiben. z.b. unter verwendung von Date.now() statt (new Date).getTime();

edit:

ich würde auch nicht Math.random() sondern Date.now() an pfade ran hängen. im gegensatz zu Math.random() ist die chance unwarscheinlicher dass die selbe zahl zurückgegeben wird.
1 mal bearbeitet
___________________________
Circle Ninja™: GottZ has left Life(Banned from server for Hacking)
21.02.2012 16:24 Uhr

 

Status: offline
Wieder was dazu gelernt , ich muss sagen: "So hätte ich es nie hin bekommen".

Danke dafür!
___________________________
Mein System - Tortys-Welt
21.02.2012 17:07 Uhr

 

Status: offline
np.

helfe bei zeit sachen gerne.


edit:
noch eine kleine vereinfachung:
HTML:
1
<div id="derp"></div>
+ JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var derp = $("#derp");
if (derp.length == 0) {
    alert("fail...");
    return;
}
 
var text = document.createTextNode("wenn du das hier lesen kannst, dann solltest du mal in die fehlerkonsole gucken.");
derp[0].appendChild(text);
 
var tickTime = 60;
var nextTick = Date.now() + tickTime * 1000 - 1;
 
(function tick () {
    var now = Date.now();
    if (nextTick <= now) {
        nextTick = now + tickTime * 1000;
        // code zum laden der webcam bilder hier
    }
    var left = nextTick - now;
    var next = left % 1000;
    var secs = Math.floor(left / 1000) % 60;
    text.nodeValue = secs;
    setTimeout(tick, next + 1);
})();
edit2:
setInterval braucht man eigentlich nur für sowas:
+ JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
var sessions = {};
 
var sessexptime = 5 * 60 * 1000;
 
setInterval(function () {
      var now = Date.now();
      for (var i in sessions) {
            if (now - sessions[i].date > sessexptime) {
                  var multi = false;
                  for (var i2 in sessions) {
                        if (i == i2) {
                              continue;
                        }
                        if (sessions[i].uid == sessions[i2].uid) {
                              multi = true;
                              break;
                        }
                  }
                  if (!multi) {
                        // emit("user", "expired", sessions[i].uid);
                        console.log("session of " + user.get({id: sessions[i].uid})[0].name + " has expired.");
                        delete onlineusers[sessions[i].uid];
                        activeusers--;
                  }
                  delete sessions[i];
                  activesessions--;
            }
      }
}, 1000);
das ist nodejs code, den ich geschrieben habe um inaktive http sessions zu killen :D
6 mal bearbeitet
___________________________
Circle Ninja™: GottZ has left Life(Banned from server for Hacking)
Ähnliche Threads Forum Ähnlichkeitsgrad
 Suche Webcam mit hoher Auflösung bei 25/30 FPS Hardware 1
 Mit Webcam live ins Inet Website & Webprogrammierung 1
 Treiber für Webcam gesucht Hardware 1
 Video komprimieren Software & Betriebssysteme 1
 Problem mit jCarousel Internet 1
 [JS] Countdown mit Werten aus DB erzeugen und als Zeit und Fortschrittsbalken ausgeben Website & Webprogrammierung 1
 [JS] Countdown (Sekunden) in 0:00:00:00 umwandeln Website & Webprogrammierung 1
nach obennach oben

Copyright © 2012 cybton-network

Google
Partner: #Musik - Dein Internetradio - nexem. - .wir machen news - s.Oliver Onlineshop für Schuhe
ANEXIA - PHP Entwicklung - Dockers- Think Schuhe - der eigene Weg - Paul Green Damenschuhe - Bequeme Geox Schuhe - Web-Entwicklung - Fritz!Box Anrufmonitor für Mac OS - Rolladen, Markisen und Jalousien in Stuttgart - Rolladen in Stuttgart - SMSjobs