Dieser Artikel stellt hauptsächlich die Methode zum Senden und Empfangen von Binärbyte-Stream-Daten vor. Es ist sehr gut und hat einen Referenzwert. Freunde, die interessiert sind, sollten es sich gemeinsam ansehen.
Im HTML5 Ajax 2.0 Standard, Erweiterungen Es verfügt über viele Funktionen von Ajax, einschließlich des Sendens von FormData-Daten, des Hochladens von Datenfortschrittsbalken und vieler anderer Funktionen. Tatsächlich kann Ajax jedoch Binärdaten byteweise senden.
Binärdaten senden
var oReq = new XMLHttpRequest(); oReq.open("POST", url, true); oReq.onload = function (oEvent) { // Uploaded. }; var blob = new Blob(['abc123'], {type: 'text/plain'}); oReq.send(blob);
oder
var myArray = new ArrayBuffer(512); var longInt8View = new Uint8Array(myArray); for (var i=0; i< longInt8View.length; i++) { longInt8View[i] = i % 255; } var xhr = new XMLHttpRequest; xhr.open("POST", url, false); xhr.send(myArray);
Binärdaten empfangen
var oReq = new XMLHttpRequest(); oReq.open("GET", "/myfile.png", true); oReq.responseType = "arraybuffer"; oReq.onload = function (oEvent) { var arrayBuffer = oReq.response; // Note: not oReq.responseText if (arrayBuffer) { var byteArray = new Uint8Array(arrayBuffer); for (var i = 0; i < byteArray.byteLength; i++) { } } }; oReq.send(null);
Natürlich kann die obige Einstellung nur vom Typ Text sein, dann kann Folgendes durchgeführt werden:
var oReq = new XMLHttpRequest(); oReq.open("GET", "/myfile.png", true); oReq.responseType = "arraybuffer"; oReq.onload = function(oEvent) { var blob = new Blob([oReq.response], {type: "image/png"}); // ... }; oReq.send();
oder
var oReq = new XMLHttpRequest(); oReq.open("GET", "/myfile.png", true); oReq.responseType = "blob"; oReq.onload = function(oEvent) { var blob = oReq.response; // ... }; oReq.send();
Wenn Sie eine alte Browserversion verwenden, kann das Laden der Binärdatei wie folgt erfolgen
function load_binary_resource(url) { var req = new XMLHttpRequest(); req.open('GET', url, false); //XHR binary charset opt by Marcus Granado 2006 [http://mgran.blogspot.com] req.overrideMimeType('text\/plain; charset=x-user-defined'); req.send(null); if (req.status != 200) return ''; return req.responseText; }
Hinweis: x-user-defined weist den Browser an, die Daten nicht zu analysieren
Das Obige ist, wofür ich kompiliert habe Ich hoffe, dass es in Zukunft für alle hilfreich sein wird.
Verwandte Artikel:
Lösen Sie das Problem des Ajax-Zugriffs perfekt Problem mit ungültiger Sitzung
Der Grund, warum der interne Ajax-Wert nicht extern aufgerufen werden kann, und die Lösung
Das obige ist der detaillierte Inhalt vonAjax-Methode zum Senden und Empfangen von Binärbyte-Stream-Daten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!