Einen guten Einstieg in das Thema JavaScript bieten folgende Bücher:

Die Geschichte geht weiter

früher waren Java Applets und Flash noch verbreiteter als JavaScript, wie schon erwähnt war JavaScript früher in vielen Firmen standardmäßig deaktiviert. Und es war noch sehr aufwendig für alle Anforderungen und Nutzertypen eine Webseite anzubieten. Auch musste man sich oft mit sogenannten Browserweichen auseinandersetzen, um auf allen Browsern ein einheitliches Darstellungsbild zu liefern. 

Dies Probleme existieren heute immer noch bei Formularelementen zum Beispiel.

Mit JavaScript konnte man anfänglich auch nur Clientseitig Manipulationen  an dem bereits übertragen HTML Code vornehmen. Wie z.B. der Wechsel des Hintergrundbildes einer Schaltfläche. HTML in dieser Form bezeichnet man auch als DHTML, da nun ohne eine ganze Seite neue geladen wurde, Inhalte zur Laufzeit ändern konnte.

Oder es konnten Fehlermeldungen nun clientseitig ausgewertet werden und das Formular musste nicht immer wieder an den Server gesendet werden. Womit man dem Client natürlich lässiges nachladen ersparte.

Daraus entstand dann schließlich ein Verfahren welches nur noch bestimmte Inhalte vom Server abholte und nur Teilbereiche in der Seite statt der ganzen dynamisch zu aktualisieren. Dieses Verfahren nennt man auch AJAX und es ist kein Putzmittel und keine Fussballmanschaft.

AJAX

Ajax [ˈeidʒæks] (auch AJAX; Akronym von englisch Asynchronous JavaScript and XML) bezeichnet ein Konzept der asynchronen Datenübertragung zwischen einem Browser und dem Server. Dieses ermöglicht es, HTTP-Anfragen durchzuführen, während eine HTML-Seite angezeigt wird, und die Seite zu verändern, ohne sie komplett neu zu laden. (Quelle: wikipedia)

Damit das ganze den heutigen Anforderungen besser nachkommt haben sich zu dem AJAX Ansatz auch noch sogenannte Websockets Gesselt.

Websockets

Das WebSocket-Protokoll ist ein auf TCP basierendes Netzwerkprotokoll, das entworfen wurde, um eine bidirektionale Verbindung zwischen einer Webanwendung und einem WebSocket-Server bzw. einem Webserver, der auch WebSockets unterstützt, herzustellen.

Vorteil dieses Verfahrens:

während bei einer reinen HTTP-Verbindung jede Aktion des Servers eine vorhergehende Anfrage des Clients erfordert, reicht es beim WebSocket-Protokoll, wenn der Client die Verbindung öffnet. Der Server kann dann diese offene Verbindung aktiv verwenden und kann neue Informationen an den Client ausliefern, ohne auf eine neue Verbindung des Clients zu warten.

Eine vom Server initiierte Übertragung ist bei einer reinen HTTP-Verbindung nur durch verzögertes Antworten auf eine vom Client initiierte Anfrage möglich (long polling).

Zudem entfallen bei WebSockets die durch den HTTP-Header verursachten zusätzlichen Daten, die bei jeder Anfrage einige hundert Bytes umfassen können.

Technisch betrachtet startet bei WebSocket, wie bei HTTP, der Client eine Anfrage, mit dem Unterschied, dass nach der Übertragung der Daten zum Verbindungsaufbau die zugrundeliegende TCP-Verbindung bestehen bleibt und asynchrone Übertragungen in beide Richtungen ermöglicht.

(Quelle: wikipedia)

Da die Möglichkeiten nun sehr groß waren entstanden mit der Entwicklung von AJAX auch die sogenannten Frameworks, diese gab es in PHP zum Teil auch schon bekannt wurde dieses neue Buzzword allerdings erst mit der Einführung von AJAX.

Mehr dazu im Kapitel Frameworks.