Alter berechnen mit und ohne Javascript
15. Februar 2009 Roland
- Programmierung
- Variablenzuweisungen und Berechnungen
- Alter berechnen nur mit JavaScript
- Alter berechnen mit und ohne Javascript
- Code Optimierung
- Client Server Applikationsarchitektur
- Eigenschaften eines Webbrowsers
- Stylesheets
- Interaktive Webclients
- Mit HTML, oder SVG, interaktive Ein- Ausgaben erstellen
- Mit JavaScript aus einem Dokument Daten lesen
- Der Webserver
- Webserver-seitige Programmierung
- Datenbankanbindung
- Architekturprinzip Separation of Concerns
- Beschreibung von Anwendungsfällen
- Mit JavaScript einen wiederkehrenden Event erzeugen
- Kommunikationswege bei Einsatz von Java auf dem Webclient
- Einbinden der JavaScript Timer Klasse in eine Webseite
- AJAX Kommunikation ohne Fassaden Pattern
- JavaScript Klassen mit Object-Literal Syntax erstellen
- Knackpunkte bei der Klasse AsyncCommunication
- Speicherverbrauch in AJAX Applikationen
- Auch bei JavaScript immer die Variablen sauber deklarieren
- Eventhandler im JavaScript mit dem HTML Dokument verknüpfen
- Objekte in JavaScript mit JSON deklarieren
Wenn wir die Altersberechnung nur mit JavaScript durchführen, besteht die Gefahr dass im Browser des Clients kein JavaScript aktiv ist. Und dann klappt unsere Berechnung nicht.
Aufgabe
Welche Gründe kann es geben, dass auf der Client Seite kein JavaScript aktiv geschalten ist? Bitte schreibt alle Gründe, die euch hierzu einfallen auf. Mir fallen auf Anhieb mindestens fünf Gründe ein, warum JavaScript nicht aktiv geschalten ist. Ich hoffe, dass euch midnestens gleich viele Gründe einfallen.
Was können wir anders machen?
Ihr habt ja schon einige Ideen gehabt, was man alles anders gestalten kann um die Altersberechnung zu verändern.
Ich habe nun eine Möglichkeit auskodiert die ich hier präsentieren möchte. variablen_uebung_3.php zeigt euch eine mögliche Lösung
Folgende Änderungen und Erweiterungen habe ich erstellt:
Eingabefelder anders angeordnet
Die Eingabefelder sind nun nicht mehr im Tag, Monat Jahr sondern als Jahr, Monat und Tag angeordnet.
Diese Lösung erlaubt es uns, falls JavaScript aktiv ist, bei der Tagüberprüfung die nicht möglichen Tage gleich auszufiltern. Der Anwender gibt zuerst sein Geburtsjahr ein, dann den Monat und daraus erkennen wir die möglichen Tage die für den betroffenen Monat möglich sind.
Aufgabe
Was für Vorteile hat es, die Eingabereihenfolge für Jahr, Monat und Tag zu ändern?
Was für Nachteile hat diese Eingabereihenfolge?
Warum gibt es keine Ideallösung?
Serverseitige Berechnung einführen
Ok, JavaScript ist nicht eingeschalten. Was tun sprach das Huhn? Wir wollen trotzdem die Berechnung durchführen. In meinem Beispiel habe ich die HTML Eingabeelemente so angeordnet, dass wir einen Submit Button erhalten. Falls JavaScript nicht eingeschalten ist, wird beim Laden der Seite dieser Button nicht entfernt. Falls JavaScript eingeschalten ist, wird der Button aus der Oberfläche entfernt.
Somit haben wir die Möglichkeit die Berechnung auszuführen und die Eingabe zu vereinfachen, falls wir JavaScript nutzen können.
Aufgabe
Diese Lösung hilft, die Verarbeitung immer durchführen zu können. Blöderweise habe ich Code dubliziert. Wir haben nun eine PHP und eine JavaScript Altersberechnung. Warum gefällt mir das nicht? Was für Möglichkeiten haben wir dies zu ändern?
Hilfsmittel
Ich habe die Code Beispiele hier verlinkt. Bei der PHP Seite habe ich eine Funktion verwendet (array_item) die ich aus dem miradlo Framework geklaut habe. Für alle, die kein miradlo Framework zur Hand haben: array_item zieht aus einem Array einen Wert heraus und sorgt dafür, dass wenn dieser Wert nicht vorhanden ist, dass ein leerer String zurückgeliefert wird. Also, falls “year” nicht im Array vorkommt, kann man später auf leeren String testen.
Hier die Dateien:
- variablen_uebung_3.php_code
Beinhaltet den HTML und den PHP Code. - variablen_uebung_3.js
Beinhaltet die JavaScript Informationen.
Viel Spaß beim Browsen!
Aufgabe
Der Tag wird noch nicht korrigiert. Im Moment werden immer 31 Tage dargestellt. Könnt ihr hierfür eine JavaScript Funktion bauen die die nicht benötigten Tage löscht?
Der Beitrag wurde
am Sonntag, den 15. Februar 2009 um 09:55 Uhr veröffentlicht
und wurde unter IT, Programmieren abgelegt.
Kurzlink: http://www.baldenhofer.eu/blog/?p=208
Dir gefiel der Artikel? Dann abonniere doch den RSS Feed![]()
Du kannst die Kommentare zu diesem Eintrag durch den RSS 2.0 Feed verfolgen. Du kannst einen Kommentar schreiben, oder einen Trackback auf deiner Seite einrichten.









Gründe für deaktiviertes Java Script:
- Nicht alle Browser haben als default JavaScript aktiviert. Somit ist nicht sicher das der User manuel sein Browser konfiguriert und JS aktiviert.
- User möchte keine Pop-ups haben und schaltet JS aus.
- User benutzt Adons welche u.a. auch JS blockt.
- Es gibt Browser die können garkein JS verstehen z.B. (Links oder andere Textbrowser…)
- Screenreader (werden z.B. von Sehbehinderten genutzt) können auch nicht mit JS.
- Auf Rechnern an denen man nicht die passenden Rechte hat seinen Browser zu konfigurieren ist es schwer möglich JS zu aktivieren.
Eingabereihenfolge: Die neue Eingabenreihenfolge mag ungewohnt sein, da wir in Deutschland normalerweise Tag Monat Jahr benutzen und somit einen intuitiven Umgang mit der Seite erschweren, dafür können wir es einfacher gestalten indem wir nicht vorhandene Tage ausselektieren können. Allerdings ist speziell bei dieser Oberfläche, wo es ums Geburtsdatum geht, unwahrscheinlich, dass ein Nutzer einen Tag wählt, den es gar nicht gibt.
Eine alternative zu den select Boxen sind pop up Kalender, die einem einen ganzen Monat zur Auswahl stellen. Allerdings halte ich diese, wenn es speziell um eine Geburtstagseingabe geht nicht für optimal, da bei ihnen das Wechseln des Jahres meist im Hintergrund steht (zeigen in der Regel den aktuellen Monat an), was aber beim Alter sehr wichtig ist.
Doppelter Code:
Das Problem an doppeltem Code ist nicht zu sehr der zusätzliche Speicher durch ein paar Zeilen code, sondern oft die Flexibilität, da bei Änderungen dann immer zwei Dateien angepasst und geändert werden müssen. Auch Sicherheitsroutinen müssten dann zweimal programmiert werden.
Um dies zu ändern, kann man entweder vollständig auf PHP vertrauen, da das mit der Einschränkung des Neuladens der Seite immer funktioniert oder wir zaubern und kombinieren irgendwie Server- und Clientseitige Programmierpsrachen.
Hallo,
ich lese die einzelnen Monate aus und rufe zu jedem Monat eine passende Funktion auf.
In den zwei Dateien kann man sich die Lösung nocheinmal anschauen.
Die endgültige Lösung habe ich mit Roland soeben besprochen und abgeändert. Normalerweise sollte das ein eigener Blogeintrag werden. Hat aber ausnahmsweise diesmal nicht geklappt.
Beim nächsten mal wieder.
[...] bauen, mit der man aufsteigend oder absteigend zählen kann. Beispielsweise habe ich beim Programmierbeispiel Alter berechnen mit und ohne JavaScript eine Auswahlliste für die Jahre erstellt. Ich wollte damit erreichen, dass vom heutigen Jahr [...]