Betonkopf Profil
Betonkopf
822
OFFLINE
20.04.2009 21:32:21
01.02.2012 08:18:56
17.06.2011 01:26:39
367

Profil

Betonkopf
Bunker 13
Männlich
-
Webentwickler
-
-
-
-
-
-
Techadmin von der Sache hier. Ansonsten hause ich in meinem imaginären Bunker.

Interessen

Für sowas hab ich keine Zeit. ;) (ok gut, zocken ^^)
Grendel, Tactical Sekt, Heimataerde, Xotox, :Wumpscut:, VNV Nation, ...
(fast) alles von Wiglaf Droste, Feridun Zaimoglu und H.P. Lovecraft

Blog

Detailsplitter 01

Erstellt am: 09.09.2009 17:58:42
Bearbeitet von Betonkopf am: 09.09.2009 17:59:19
Das Gefühl, dass nun "alles neu" im ST ist, sollte bei den Ersten nachlassen. Man hat sich langsam an das neue Zuhause gewöhnt. Mittlerweile sind es fast 40 Mitglieder geworden. Zeit also, euch die Sache etwas näher zu bringen, was hier nun wirklich passiert ist, warum einige Sachen nicht mehr funktionieren und derartige Dinge. Konkrete Details eben.

Beginnen möchte ich mit dem Bereich "Neueste Forenbeiträge" auf der Startseite. Dieser hat im Gegensatz zum alten ST einen anderen Aufbau und wurde mit einem "weichen Hovereffekt" ausgestattet. Dieser bewirkt das sanfte Ein- und Ausblenden, wenn ihr mit eurerm Mauszeiger über einen Thementitel fahrt. Dies ist aber nicht die signifikanteste Neuerung.
Hand hoch, wem ist es aufgefallen? Es fehlt etwas bei dieser Übersicht. Sämtliche Threads aus dem Foren-Bereich Veranstaltungen werden hier nicht angezeigt. Warum? Weil wir es können.

Eine Problematik des alten ST bestand darin, dass Veranstalter gleich mehrere Veranstaltung posteten und so Diskussionen und andere (Spam)Threads schnell aus der Portalansicht katapultierten. Da dies, sicher auch Dank der Shoutbox, die am meisten frequentierte Ansicht war, musste sich hier etwas tun.
Da wir nun auf der Startseite 2 konkrete Kalendermodule haben, zudem im Bereich Forum auch bei Aktuell die Veranstaltungs-Threads auftauchen, haben wir entschieden, diese Themen auf der Startseite zu exkludieren. Das heisst natürlich nicht, dass der Foren-Bereich gesperrt ist. Er kann auch weiterhin besucht und genutzt werden. Auf der Startseite hat dies aber keinen Platz mehr.


Nun zum Hauptanliegen dieses Textes. Die Shoutbox. Hier gab und gibt es immer wieder Verwirrungen, warum auf einmal eine Sache nicht mehr ging, dann wieder doch. Das sind keine Bugs, das ist die Technologie. Bevor ich weiter ins Detail gehe, möchte ich einen kleine Einführung bzgl. den verwendeten Skriptsprachen loswerden. Keine Angst, kein elend langer Text (ok doch, aber ich könnte ein ganzes Stück länger). Nur das konkret wichtige für diese Thematik. Menschen mit PHP und Javascript (AJAX) Kenntnisse können die folgenden Absätze überspringen.

Die Shoutbox arbeitet mit zwei verschiedenen Skriptsprachen. PHP und AJAX. AJAX steht für Asynchronous JavaScript and XML. Also Javascript, dass über XML eine dynamische Anbindung erhält und so auch mit Datenbankinhalten arbeiten kann. Es gibt viele Unterschiede zwischen Javascript und PHP. Ein signifikanter ist der Arbeitsbereich. PHP arbeit serverseitig, Javascript clientseitig.
Das heisst konkret: Bei PHP sendet der Benutzer über den Browser (Client) eine Anfrage für ein PHP Dokument. Der Server, auf dem das Dokument liegt, verarbeitet nun die PHP Anweisungen in dieser Datei (Datenbankabfragen, prüfen ob eingeloggt etc.) und geniert eine HTML Seite daraus, die er daraufhin an den Browser des Benutzers zurückschickt. Diese Datei enthält nun keinen PHP Code mehr. Die Laufzeit des SKriptes ist hiermit abgeschlossen.
Javascript wiederrum ist clientseitig. Das heisst, es wird auf dem Server nicht verarbeitet, sondern erst im Client, also dem Browser. Javascript wird in Zusammenhang mit Ereignissen (Events) genutzt. Ein dieser Event kann das klicken eines Links oder auch nur das Hovern über ein bestimmtes Element sein. Wichtig hierbei ist, dass die Seite nicht neu lädt, das dies also alles "on the fly" passiert. Ein Beispiel hierfür ist das Menü oben, wo Javascript je nach Menüpunkt ein Untermenü einblendet, das vorher nicht sichtbar war.
Beide Skriptsprachen haben ihre Vor- und Nachteile. Ich will auch gar nicht so tun, als hätte ich von allem die übelste Ahnung. Mein Horizont beschränkt sich vor allem auf PHP und CSS.

Die Shoutbox arbeitet nun mit beiden Scriptsprachen. Die schickt alle eure Shouts in die Datenbank, die dort auch noch liegen, nachdem sich längst nicht mehr angezeigt werden. (dies Shouts werden dennoch regelmässig von mir per Hand gelöscht) Im Gegensatz zum vorherigen Schwarzen Thüringen arbeitet die Shoutbox nicht in einem eigenen Frame, sondern ist voll in die Site integriert. Da der Benutzer nicht immer die Site neuladen soll, um die Shoutbox zu aktualisieren, arbeitet hier AJAX, der die Sache alle 60 Sekunden "on the fly" überprüft und neue Shouts mit einem Fadeeffekt einbindet. Ebenso wird das ganze beim Abschicken eines eigenen Beitrages aktualisiert. Wohl gemerkt, ohne dass die Site neu lädt.

Alles super soweit. Aber die AJAX Variante bringt auch Nachteile mit sich. Euch ist sicher schon aufgefallen, dass beim Abschicken eures Beitrages die Zeit vor eurem Namen fehlt. Auch werden die Smilies nicht umgewandelt. Hier offenbart AJAX seine Schwächen. Die Absendezeit wird als Unix-Zeitstempel gespeichert. (d.h. wieviel Sekunden ab dem 1.1.1970 vergangen sind) Daraus kann man in PHP exakte Daten errechnen lassen. Und genau das macht PHP auch. Beim Laden der Seite wirkt zuerst PHP und zieht alle erforderlichen Daten aus der Datenbank. Danach lasse ich das Datum unwandeln, ebenso lasse ich Smiley Kombinationen hiernach mit Bilddateien ersetzen. Diese Möglichkeiten bietet AJAX leider nicht.. Aus diesem Grund werden alle von AJAX generierten Shouts die Zeit und Smilies nicht anzeigen. Das ist die berühmte Kehrseite der Medaille. Aufgrund der anderen Vorteile, gerade der schnellen Einbindung der Shouts ohne Reload der Site, habe ich mich dennoch entschieden, diese Lösung in die Site einzubinden.

Wer das ganze Testen möchte, kann einfach mal Sachen wie *augenroll* oder : lol : (ohne Freizeichen) in der Shoutbox versuchen. Das sind sogar gleich zwei Hinweise, wo die Smilies versteckt sein könnten.


Ich hoffe, ich konnte etwas Licht ins Dunkle bringen, ohne euch allzusehr zu verwirren. Bei Fragen etc. könnt ihr gerne das Forum, die PN Funktion oder mein Gästebuch vollhauen. Feedback ist immer ne geile Sache. Je nachdem, wie offen meine Zeitfenster sind und dringend eure Fragen, wird es auch in Zukunft solche Erklärungen geben.

PS: Sollte dies ein AJAX Experte lesen und eine konkreten Lösungweg haben, ich freu mich immer über Input.

Mein erstes Mal

Erstellt am: 30.07.2009 14:56:25
Da gab es mal einen Beton. Der wollte die Welt zerstören. Eines schönen Tages, die Vögel sangen ihr Lied von Untergang und Schmerz, war es dann soweit. Der kleine, süße Beton fand den großen roten Knopf und hat schnurzstracks sein kleines Fingerchen draufgelegt. Es machte Klick, dann Rumms und dann ganz laut BUMM.

Da wars um den schönen blauen Planeten geschehen. Da war er nur noch Planetendöner. Mhjam, lecker. Mit extra Soße!

Anmelden

Zuletzt Online

Zurzeit keine Mitglieder online