JavaScript brauchte lange, um eine Wirkung zu erzielen. Viele JavaScript-bezogene Technologien existierten eine Weile, bis sie vom Mainstream entdeckt wurden. Dieser Abschnitt beschreibt, was von der Erfindung von JavaScript bis heute geschah. Durchweg werden nur die populärsten Projekte erwähnt und viele ignoriert, auch wenn sie zuerst da waren. Zum Beispiel wird das Dojo Toolkit aufgeführt, aber es gibt auch das weniger bekannte qooxdoo, das etwa zur gleichen Zeit entstand. Und Node.js wird aufgeführt, obwohl Jaxer früher existierte.
Im Jahr 2001 benannte und dokumentierte Douglas Crockford JSON (JavaScript Object Notation), dessen Hauptidee darin besteht, JavaScript-Syntax zur Speicherung von Daten im Textformat zu verwenden. JSON verwendet JavaScript-Literale für Objekte, Arrays, Strings, Zahlen und Booleans, um strukturierte Daten darzustellen. Zum Beispiel:
{"first":"Jane","last":"Porter","married":true,"born":1890,"friends":["Tarzan","Cheeta"]}
Im Laufe der Jahre ist JSON zu einer beliebten, leichtgewichtigen Alternative zu XML geworden, insbesondere wenn strukturierte Daten und nicht Markup dargestellt werden sollen. Natürlich ist JSON über JavaScript einfach zu konsumieren (siehe Kapitel 22).
Ajax ist eine Sammlung von Technologien, die Webseiten ein Maß an Interaktivität verleihen, das mit dem von Desktop-Anwendungen konkurriert. Ein beeindruckendes Beispiel dafür, was über Ajax erreicht werden kann, wurde im Februar 2005 vorgestellt: Google Maps. Diese Anwendung erlaubte es Ihnen, über eine Weltkarte zu schwenken und zu zoomen, wobei nur der aktuell sichtbare Inhalt in den Browser heruntergeladen wurde. Nachdem Google Maps herauskam, bemerkte Jesse James Garrett, dass es bestimmte Merkmale mit anderen interaktiven Websites teilte. Er nannte diese Merkmale Ajax, eine Kurzform für Asynchronous JavaScript and XML.[7] Die beiden Eckpfeiler von Ajax sind das Laden von Inhalten asynchron im Hintergrund (über XMLHttpRequest) und das dynamische Aktualisieren der aktuellen Seite mit den Ergebnissen (über Dynamic HTML). Dies war eine beträchtliche Usability-Verbesserung gegenüber dem ständigen Neuladen ganzer Seiten.
Ajax markierte den Mainstream-Durchbruch von JavaScript und dynamischen Webanwendungen. Es ist interessant zu bemerken, wie lange das dauerte – zu diesem Zeitpunkt waren die Ajax-Zutaten bereits jahrelang verfügbar. Seit der Einführung von Ajax sind andere Datenformate populär geworden (JSON statt XML), andere Protokolle werden verwendet (z. B. Web Sockets zusätzlich zu HTTP), und bidirektionale Kommunikation ist möglich. Aber die grundlegenden Techniken sind immer noch dieselben. Der Begriff Ajax wird heutzutage jedoch viel weniger verwendet und wurde meist durch die umfassenderen Begriffe HTML5 und Web Platform (die beide JavaScript plus Browser-APIs bedeuten) ersetzt.
Node.js ermöglicht es Ihnen, Server zu implementieren, die unter Last gut funktionieren. Dazu verwendet es ereignisgesteuerte, nicht-blockierende I/O und JavaScript (über V8). Der Erfinder von Node.js, Ryan Dahl, nennt die folgenden Gründe für die Wahl von JavaScript:
Dahl konnte auf früheren Arbeiten zu ereignisgesteuerten Servern und serverseitigem JavaScript (hauptsächlich dem CommonJS-Projekt) aufbauen.
Die Attraktivität von Node.js für JavaScript-Programmierer geht über die Möglichkeit hinaus, in einer vertrauten Sprache zu programmieren; man kann dieselbe Sprache sowohl auf dem Client als auch auf dem Server verwenden. Das bedeutet, dass man mehr Code teilen kann (z. B. zur Validierung von Daten) und Techniken wie isomorphes JavaScript anwenden kann. Isomorphes JavaScript befasst sich mit dem Zusammenstellen von Webseiten entweder auf dem Client oder auf dem Server, mit zahlreichen Vorteilen: Seiten können auf dem Server gerendert werden, um eine schnellere Erstansicht zu ermöglichen, SEO-Vorteile zu erzielen und auf Browsern zu laufen, die entweder JavaScript nicht unterstützen oder eine zu alte Version haben. Aber sie können auch auf dem Client aktualisiert werden, was zu einer reaktionsschnelleren Benutzeroberfläche führt.
Mit Chrome OS ist die WebPlattform die native Plattform. Dieser Ansatz hat mehrere Vorteile:
Die Einführung des mobilen Betriebssystems webOS (das ursprünglich von Palm stammte und nun LG Electronics gehört) liegt vor der Einführung von Chrome OS, aber die Idee des "Browsers als OS" ist beim letzteren offensichtlicher (deshalb wurde es als Meilenstein gewählt). webOS ist sowohl weniger als auch mehr. Weniger, weil es sehr auf Handys und Tablets fokussiert ist. Mehr, weil es Node.js integriert hat, um Dienste in JavaScript zu implementieren. Ein neuerer Eintrag in der Kategorie Web-Betriebssysteme ist Mozillas Firefox OS, das auf Handys und Tablets abzielt. Mozillas Wiki nennt einen Vorteil von Web-Betriebssystemen für das Web
Wir brauchen auch einen Hügel, den wir erklimmen können, um unsere Bemühungen zu umreißen und zu fokussieren. Kürzlich haben wir das pdf.js-Projekt [das PDFs über HTML5 rendert, ohne Plugins] gesehen, das kleine Lücken aufgedeckt hat, die gefüllt werden mussten, damit "HTML5" eine Obermenge von PDF wird. Wir wollen jetzt einen größeren Schritt machen und die Lücken finden, die Webentwickler daran hindern, Apps zu erstellen, die – in jeder Hinsicht – den nativen Apps für iPhone, Android und WP7 gleichwertig sind.