<< Hintergrundinformationen [37/117] >>

Hintergrundinformationen


Startseite / Projekte / JSWins (JavaScript-Desktop-System) / Hintergrundinformationen

Besuchsstatistiken in JSWins

Hintergrundinformationen



Ursprünglich habe ich das System für den Eigengebrauch erstellt, um mehrere Besuchsstatistikinformationen meiner Homepage auf einmal darzustellen. So lassen sich z.B. Informationen zu den meist-besuchten Seiten, verwendete Browser, Betriebssysteme, benutzte Suchmaschinen und Suchbegriffe, u.v.m. gleichzeitig betrachten. Jede dieser Informationen werden innerhalb von JSWins in einem Fenster dargestellt.
Der Zustand der aktuell geöffneten Fenster kann man in ein Lesezeichen exportieren, so dass die momentan geöffneten Fenster nach Beenden und Neustarten von JSWins einfach und schnell wiederhergestellt werden können. Dadurch muss man die entsprechenden Anfragen an die Besuchsstatistikdatenbank (HTML-Formular) nur genau einmal erstellen.
Entwicklung (Programmierung)  Während der Programmierung dieses Projekts habe ich die Erfahrung gemacht, dass man hierzu am besten Firefox 1.5 verwendet. Er ist relativ schnell und hat gute Kommentare zu JavaScript-Fehlern. Die Fehlermeldungen von Internet-Explorer sind so schlecht, dass nicht einmal angezeigt wird in welcher JavaScript-Datei (wenn man mehrere einbindet) der Fehler liegt.
Als Entwicklungsumgebung habe ich Eclipse (http://www.eclipse.org/) 3.1.2 (später 3.2) mit dem Web-Tools-Platform (http://www.eclipse.org/webtools/) 1.0.2 (später 1.5) PlugIn verwendet.

Details
Es gibt viele kleine Details in JSWins, die man zum Teil von z.B. Windows XP gewohnt ist, und somit erst auf den zweiten Blick wahrnimmt:
- Änderung auf entsprechende Cursor (Maus) beim Überfahren von Fensterkomponenten (z.B.: Titelleiste -> Verschiebungs-Cursor, Größenänderung -> Größen-Cursor , etc.)
- Obwohl ein Fensterinhalt den Fokus hat funktionieren die Short-Cuts (Tastaturabfrage)
- eine Uhr unten rechts
- Markierung des Fensterstatus in der Taskleiste (z.B.: hellgrau -> Fenster minimiert, Fette Schrift -> Aktives Fenster, etc.)
- Umschalten zwischen den 2 Sprachen. Folgende Komponenten mussten dabei berücksichtigt werden: Anpassung der Menus (Startmenu, Fenstermenu), Auswahl für das Verhalten beim Anklicken von Fenstern (unterer Rand am Fenster), Sämtliche Dialoge, Tooltips, Desktop-Icons, HP-Explorer
- Erstellen, Löschen und Verschieben von Desktop-Icons
- Tooltip am oberen linken Fensterrand beim Überfahren von Menu-Einträgen 
- Rechts-Klick mit der Maus öffnet kein Browser-Kontextmenu, wenn einer Schaltfläche eine entsprechende Aktion zugewiesen ist (z.B. Rechts-Klick auf Minimieren bringt das Fenster in den Hintergrund)
- Titelleiste passt sich dem Fensterzustand an (aktive und inaktive Fenster
- Die Fenster werden beim Öffnen meist ein wenig versetzt dargestellt
- Bei der Erstellung von Desktop-Icons werden diese nicht überlappend abgelegt, es sei den der Benutzer zieht sie später übereinander
- Sichern und Wiederherstellen des Zustands des Systems beim Verlassen und Wiederbetreten durch die Verwendung von Cookies (geöffnete Fenster (Position, Größe, Überlappung, u.s.w.), Desktop-Icons (Position), Anordnung der Taskleisteneinträge).
- Anzeige des HTML-Titels der geladenen Seiten im Fenstertitel
- Anzeiger der ungefähren HTML-Größe jeder geladenen Seite (Gesamtgröße aller Fenster: oben rechts)
- Balloon-Nachrichten 
- ...

Datenklau
Mittlerweile ist JSWins ein sehr großes JavaScript-Projekt geworden und hat mich sehr viel Zeit und Mühen für die Umsetzung gekostet. Deshalb möchte ich nicht dass sich andere einfach den JavaScript-Code aus der Seite herauskopieren und diesen auf Ihrer Homepage, öffentlichen oder privaten Servern einsetzen. Um dies zu gewährleisten musste ich noch etwas Zeit in mein schon vor längerer Zeit erstelltes Obfokusionstool JavaScrypt stecken. Dieses Tool kommt nun mit nahezu allen JavaScript-Codes zurecht. So habe ich es um ein Komprimierungsverfahren erweitert, welches relativ langsam komprimiert (Komprimierung in Java) aber sehr schnell dekomprimiert (da Dekomprimierung in JavaScript). Das Lempel-Ziv-Verfahren ist bei großen Datenmengen und in JavaScript zu langsam.

Fakten
Hier noch ein paar Fakten zu JSWins (aus JavaScrypt-Log):
- über 4700 JavaScript-Code-Zeilen (inklusive Kommentaren
- ca. 470 verschiedene Variablen 
- ca. 240 verschiedene Funktionen
- ca. 2000 verschiedene Strings
- Komprimierungsrate durch JavaScrypt: 40% kleiner (vorher ca. 167 KB, nachher ca. 102 KB )


Visitors PageClicks Valid XHTML 1.0! Valid CSS!

CanciÜber michSite-MapRechtlichesKontaktJSWins (JavaScript-Desktop-System)© 2004-2013 by Markus Krebs