Also mein Wichtigstes Werkzeug ist auf allen Platformen mein IDE Eclipse. Ich verwende es für Java und Python (mit PyDev Plugin). Das sind auch mittlerweile meine Hauptsprachen in denen ich Arbeite.
Als zweites habe ich Notepad++ unter Windows und gedit unter Linux für die schnelle Bearbeitung von Datein und als Hauptentwicklungsumgebung für PHP mit HTML/CSS.
C++ programmiere ich nur unter Windows (Schande über mein Haupt) und verwende dabei Visual Studio Express.
Zur Verwaltung meiner MySQL Datenbanken ist die MySQL Workbench installiert.
Wenn man eine Klasse in Java nur ein mal in Java instanzieren möchte, und nirgendwo Referenzen zu diesem Objekt aufbewahren möchte, benötigt man Singletons. Hier ein kleines Beispiel wie man ein Singleton erzeugt:
SingletonTest.java
Die Klass SingletonTest verfügt über einen privaten Konstruktor, kann also nicht von außen instanziert werden. Es existiert jedoch eine statische Methode, die überprüft ob eine statische Variable = null ist (SingletonTest noch nicht instanziert). Sollte sie gleich null sein wird sie instanziert. Danach gibt die Methode die Variable zurück.
Asynchronous JavaScript and XML beschreibt ein Konzept bei dem Daten asynchron zwischen Browser und Server übertragen werden. Doch was bringt mir das?
Nun als erstes kann man den Performancezuwachs der Website nennen. Es ist möglich Bereiche der Website bei dem die Datengewinnung Serverseitig länger dauert in einem Ajax Request auszulagern. Dies wird auch unser erstes Beispiel sein, wie man Ajax auf seiner Website verwenden kann.
Die zweite Anwendungsmöglichkeit, und auch eine sehr Wichtige, ist es Daten an den Server zu senden, ohne das der User es durch ein komplettes neuladen der Website sieht. Mehr dazu im zweiten Beispiel.
Erstes Beispiel:
Stellen wir uns folgendes Szenario vor: Unser Videoportal bietet die Möglichkeit Videos zu kommentieren. Wir bemerken, dass das auffinden der Kommentare für das Video die meiste Zeit beim Server erfordert, und der Benutzer somit eine höhere Seitenladezeit.
Nun möchten wir diese Kommentare mittels eines Ajax Request auslagern.
Betrachten wir die Ordnerstruktur:
Ordner
Kommen wir nun zu unserer Videoseite video.php:
video.php
Besprechen wir nun den Teil, der die Kommentare nachlädt. Er befindet sich in dem <script> Teil. Wir erzeugen zunächst einen AjaxRequest, weisen ihm danach zu auf welche URL er gehen soll und sagen ihm ob er ein POST oder GET Request ist.
Wir definieren eine funktion welche aufgerufen wird, wenn sich der Status des Requests ändert. Sollte sich der Status zu "4" (fertig) ändern und der Request 200 zurückgegeben haben. Ändern wir den Inhalt des <div> Containers mit der Id "comments" in den Inhalt des AjaxRequests um.
Nun fehlt noch die api/kommentare.php:
video.php
Das Sleep befindet sich nur zu Demonstrationszwecken dort.
Ruft man jetzt die Videoseite auf, dauert es ca. 3 Sekunden bis die Kommentare erscheinen. Anstatt des "Loading..." kann mann natürlich auch ein animiertes Ladebildchen hinsetzen.
Beispiel 2:
Stellen wir uns vor, wir hätten ein Social Network mit Usern die beiträge schreiben und andere die es liken. Ohne Ajax Request würden wir bei jedem like eine Website besuchen und dann wieder zurückgeleitet werden. Mit einem Ajax Request wird dies nur im Hintergrund gemacht. Der Benutzer bekommt das nicht mit.
Das Beispiel besteht nur aus einer Datei:
facebook.php
Wir stellen nun eine Funktion in JavaScript Bereit, die einen Ajax Request an api/like.php übermittelt wenn sie aufgerufen wird, und dann den Inhalt eines Containers in "geliked" ändern. In diesem Container befindet sich im Vorfeld ein "Link" der die JavaScript Funktion aufruft, sobald er geklickt wird.