Manual:Ajax/de

Ajax ist ein Begriff für die Nutzung von JavaScript, um bei Bedarf Teile einer Seite zu laden. Daher sollte JavaScript-Code stattdessen (oder das JavaScript-Modul mediawiki.api) nutzen. Eine MediaWiki-API-Abfrage würde über AJAX ausgeführt werden (statt $ajax).

MediaWiki bietet eine veraltete Ajax-Oberfläche zur Nutzung durch Erweiterungen an. See. MediaWiki 1.16 enthält $jquery, weshalb von der Nutzung von Sajax abgeraten wird.

Details


Asynchrone Abfragen
Eine asynchrone Abfrage sendet einige Daten an den Server und fährt mit der Ausführung fort. Etwas später kann der Server eine Antwort geben (abhängig vom Typ der Abfrage); In diesem Fall wird die Antwort zur Verarbeitung an eine JavaScript-Funktion übergeben. Es kann eine andere Funktion bereitgestellt werden, um mit dem Fall umzugehen, dass die Abfrage aus irgendeinem Grund scheitert. Unten findet sich ein Beispiel-Anruf an die Anmelde-API mit Übergabe des Benutzernamens und des Passwortes.

Alternativ kannst du die Funktionen von jQuery direkt nutzen:

Die Funktion "mw.util.wikiScript" ist ab 1.18 verfügbar.



Synchrone Abfragen
Die andere Art von Abfragen sendet einige Daten an die Server und wartet auf die Antwort. Dies bedeutet, dass das JavaScript geblockt wird, bis die Server Daten zurückgeben oder die Abfrage aus irgendeinem Grund scheitert. Das folgende Beispiel ruft die Liste "Links auf diese Seite" einer Vorlage ab:

( ist eine Standard-JavaScript-Funktion, die ein Objekt aus seiner Zeichenketten-Darstellung im JSON-Format ausgibt.)

Beschränkungen
Aufgrund der Same-Origin-Policy ist es für ein Skript einer externen Seite schwierig, Daten aus einem Wiki abzurufen, das sich unter einer anderen Domain befindet &mdash; zum Beispiel kann man nicht direkt Daten aus  in   abrufen. Neuere Browser unterstützen eine ausdrückliche Anweisung, um diesen Zugriff über Cross-Origin Resource Sharing zu erlauben, was jedoch nur funktioniert, wenn die Server so konfiguriert wurden, dass sie mit den entsprechenden Headern umgehen und der Nutzer einen aktuellen Browser verwendet, der diese erkennt. Entwickler, die sich Zweifel über Vorab-Versionen haben, können sich noch nicht auf CORS verlassen.

Es ist möglich, die Same-Origin-Policy zu umgehen, indem man JSONP statt reinem JSON nutzt, was in älteren Browsern funktionieren wird (darunter Internet Explorer 6).



Verwandte veraltete Funktionalitäten
Sajax ist eine alte Ajax-Bibliothek, die (Stand September 2012) noch Teil des Kern-Codes ist und die von manchen Erweiterungen genutzt wird. Nutze sie nicht, sondern verwende stattdessen. Manche Erweiterungen, ob sie Sajax nutzen oder nicht, stellen Ajax-Anrufe über den obsoleten AjaxDispatcher (siehe ), indem sie  aufrufen. Sie sollten stattdessen MediaWiki--Abfragen an API-Module  stellen.



Siehe auch

 * - Erweiterungen, die die Ajax-Oberfläche von MediaWiki nutzen.



Weblinks

 * (JavaScript-Modul)
 * jQuery.ajax (jQuery-Methode)

Allgemeine Informationen zu XMLHttpRequest:
 * XMLHttpRequest-Spezifikation auf W3.org
 * XMLHttpRequest auf Wikipedia
 * XMLHttpRequest auf MDN