Archiv für Juli, 2010
Probleme und Lösungen mit JS/jQuery
Verfasst von dreiling unter Entwicklung, JS / AJAX am 23. Juli 2010
Nachdem ich mich die letzte Woche mit jQuery etwas beschäftigt habe, möchte ich hier einmal kurz die aufgetretenen Probleme und die damit verbundenen Lösungen festhalten:
Parallele Abläufe
Da es in Javascript und somit auch in jQuery keine Threads gibt und eine endlose while Schleife keine Parallelität bietet (und ausserdem den Browser abstürzen lässt) muss ein anderes Konstrukt herhalten. Die Lösung hier lautet Rekursion (schön erklärt von Markus Kühle auf Javathreads).
setTimeout mit Parametern
Auf anhieb findet man für die Rekursion viele Beispiele mit der setTimeout Methode, leider aber immer ohne Parameterübergabe (in meinem Beispiel der CountUp):
setTimeout("countUp()", 1000);
Sobald nun countUp() mit einem Parameter übergeben werden soll, funktioniert dieser Aufruf nicht mehr. Die Lösung war, den ersten Parameter der setTimeout Methode durch eine Funktion zu ersetzen:
setTimeout(function(){ countUp(date); }, 1000);
Countup und die Zeit
Ich hatte eigentlich erwartet dass mich Google mit kleinen Codeschnipseln überhäuft wenn es um einen Simplen Countup für Zeit geht. Gefunden habe ich ein paar wenige, die aber so unschön anzuschauen waren, dass ich mir kurzerhand was kleines Simples selbst zusammengeschrieben habe:
//Parameter inzwischen global um einfach und dynamisch zur Laufzeit zu ändern var year, month, day; function countUp(){ //month-1 da die Monate von 0-11 codiert sind var startDate = new Date(year, month-1, day, 0, 0, 0); var currentDate = new Date(); var diff = new Date(currentDate.getTime() - startDate.getTime()); //(diff.getYear()-70) da der Zeitliche Nullpunkt bei 1970 liegt, und wir nur die Anzahl der Jahre benötigen var diffString = "Years " + (diff.getYear()-70) + " Months " + diff.getMonth() + " Days " + diff.getDate() + " Hours " + diff.getHours() + " Minutes " + diff.getMinutes() + " Seconds " + diff.getSeconds(); //String schreiben $('#countUpDiv').html(diffString); //rekursiver Aufruf setTimeout(function(){ countUp(); }, 1000); }
noch ein Tip zum Schluss
Um die komplette jQuery Doku auch offline (solls ja ab und zu geben…) nutzen zu können, gibts diese auch als PDF oder sogar als Windows Help File zum Download.
Link
Nichtraucher mit jQuery
Verfasst von dreiling unter Entwicklung, JS / AJAX, PHP am 22. Juli 2010
Nachdem ich seit inzwischen 3 Wochen dem Laster des Rauchens trotze und in meiner freien Zeit vor Praxisphase und Bachelorarbeit noch etwas sinnvolles machen wollte, habe ich mich etwas mit dem Javascript/AJAX Framework jQuery beschäftigt. Beides kombiniert, kommt bei mir eine kleine Nichtraucher”Uhr” raus:
Zur Zeit wird das Datum der letzten Zigarette (, durchschnittliches Gerauche und Preis einer Schachtel erfasst und daraus die Zeit als Nichtraucher und das dabei gesparte Geld errechnet.
In Zukunft wird die Toplist noch um das gesparte Geld erweitert, eine kleine API gebastelt die die “Uhr” ausgeben kann (ohne angemeldet zu sein) und bei ganz viel Laune wird noch das Standarddesign ersetzt.
Wer sich nicht registrieren will, kann sich mit test/test auch das innenleben mal amschauen.
Eine schöne Sache dieses jQuery

Letzte Kommentare