2009-05-17 7 views
10

Ich bin neu in AJAX, aber als Überblick würde ich gerne wissen, welche Formate Sie hochladen und herunterladen können. Ist es auf JSON oder XML beschränkt oder können Sie sogar binäre Typen wie MP3 oder UTF-8 HTML senden. Und schließlich, haben Sie die volle Kontrolle über die Daten, Byte für Byte in so etwas wie ein Byte-Array, oder ist nur eine Zeichenfolge gesendet/empfangen.Welche Datenformate kann AJAX übertragen?

+0

Sprechen Sie von einer anderen Umgebung als einem Browser? –

+0

Nr. Reguläre Browser. –

Antwort

4

Wenn wir über Ajax reden, sprechen wir über Javascript? Und über XMLHTTPRequest?

Die XMLHttpRequest, die nur eine HTTP-Anfrage ist, kann alles übertragen. Aber es gibt kein Byte-Array in Javascript. Nur Strings, Zahlen und so. Alles, was du von einem Ajax-Aufruf bekommst, ist ein Stück Text (responseText). Das könnte in XML geparst werden (das gibt dir AntwortXML). Spezielle Kodierungen sollten eher eine Frage des HTTP-Transports sein.

Das binäre Zeug ist nicht Ajax abhängig aber Javascript abhängig. Es gibt einige seltsame Codierungen für Strings, um Byte-Daten innerhalb von Javascript (insbesondere für Bilder) zu liefern, aber es ist keine allgemeine Lösung.

HTML ist kein Problem und das ist der prominenteste Anwendungsfall. Von dieser Art von Anfrage erhalten Sie eine HTML-Zeichenkette, die zu einem Knoten im DOM pro innerHTML hinzugefügt wird, der den HTML-Code analysiert.

1

können Sie übertragen jede Art von Daten entweder String oder Bytes

+0

Wie produzieren/konsumieren Sie binäre Daten in Javascript? –

+0

Vielleicht können Sie String.charCodeAt (Index) verwenden, um den ASCII-Code (ich denke) eines bestimmten Char innerhalb einer Zeichenfolge zu erhalten. –

1

Sie können alles, was Sie senden möchten, kann das Problem sein, wie sie damit umgehen, wenn Sie es bekommen;)

Standard-HTML ist wahrscheinlich der am meisten die gängigste Art von Ajax-Inhalten, die dort verwendet werden - Sie können auch die Zeichencodierung wählen, obwohl es immer am besten ist, bei einer Art von Codierung zu bleiben.

0

Sie können alles verschieben, was über HTTP gesendet werden kann. Es gibt Einschränkungen bezüglich des Anrufs, der an die gleiche Domäne wie die geladene Seite gesendet wird, aber nicht an den Inhalt der Übertragung. Sie können auch GET- oder POST-Transaktionen durchführen.

2

Da Daten über HTTP transportiert werden, müssen Sie sicherstellen, dass Sie eine Art von Codierung verwenden. Eines der beliebtesten ist die base64-Codierung. Weitere Informationen finden Sie unter: http://www.webtoolkit.info/javascript-base64.html

Die Methode besteht darin, base64-codieren die Daten, die Sie senden möchten und dann base64-decodieren Sie die Daten auf dem Server (oder dem Client) und verwenden Sie die ursprünglichen Daten wie Sie beabsichtigen.

1

AJAX bedeutet einfach, dass Sie Daten über HTTP mit einem JavaScript-Aufruf asynchron übertragen. Ihr Skript erstellt also eine "normale" HTTP-Anfrage mit dem XmlHttpRequest() - Objekt. Wie der Name andeutet, ist es jedoch nur für textbasierte Datenformate geeignet, da Sie im Allgemeinen einige Aktionen auf der Client-Seite mit den Daten durchführen wollen, die Sie vom Server erhalten haben (nicht immer, manchmal senden die Leute XmlHttpRequests nur an) etwas auf dem Server aktualisieren).

Nebenbei bemerkt, ich habe noch nie eine Anwendung gesehen, in der das Senden von Binärdaten sowieso angemessen gewesen wäre.

Meistens entscheiden sich die Leute, Daten mit POST oder GET an den Server zu senden (was im Grunde eine Methode ist, HTTP-eigene Name-Wert-Paare zu übertragen). Um komplexere Daten, beispielsweise hierarchische Strukturen, zu senden, müssen diese irgendwie codiert werden.XML-Dokumente können nativ per JavaScript erstellt, an den Server gesendet und in die erforderlichen Datentypen geparst werden. Da XML jedoch ein wenig mühsam sein kann, verwenden viele Entwickler stattdessen JSON-codierte Daten, da sie einfach zu erstellen und zu analysieren sind.

Was der Server zurücksendet, ist ebenso beliebig. Normalerweise geben Sie in Ihrem Javascript eine Rückruffunktion an, die die eingehenden Daten verarbeitet. Die beliebten Optionen sind XML und JSON, die leicht in ein Dokumentobjekt oder eine Arraystruktur parsen. Sie könnten auch reinen Text oder eine andere Verpackung senden, aber denken Sie daran, dass Sie dann darauf achten müssen, die verwendbaren Daten selbst daraus zu extrahieren. Manchmal kann es auch nützlich sein, tatsächliche HTML-Fragmente an den Client zu senden, um etwas direkt auf der Seite zu aktualisieren.

Für den Anfang, ich schlage vor, dass Sie sich JQuery ansehen. Es ist ein sehr leichtgewichtiger Rahmen, der viele der bösen Kompatibilitätskram abstrahiert und Sie AJAX-Anfragen sehr schön schreiben lässt.

Verwandte Themen