mirror of
https://github.com/xuxiaobo-bobo/boda_jsEnv.git
synced 2025-04-22 18:26:01 +08:00
49 lines
1.3 KiB
JavaScript
49 lines
1.3 KiB
JavaScript
var sys = require("util")
|
|
, assert = require("assert")
|
|
, XMLHttpRequest = require("../lib/XMLHttpRequest").XMLHttpRequest
|
|
, xhr;
|
|
|
|
xhr = new XMLHttpRequest();
|
|
|
|
xhr.onreadystatechange = function() {
|
|
if (this.readyState == 4) {
|
|
assert.equal("0000 803f 0000 a040 0000 c040 0000 e040", logBinary(this.response.toString('binary')));
|
|
runSync();
|
|
}
|
|
};
|
|
|
|
// Async
|
|
var url = "file://" + __dirname + "/testBinaryData";
|
|
xhr.open("GET", url);
|
|
xhr.send();
|
|
|
|
// Sync
|
|
var runSync = function() {
|
|
xhr = new XMLHttpRequest();
|
|
|
|
xhr.onreadystatechange = function() {
|
|
if (this.readyState == 4) {
|
|
assert.equal("0000 803f 0000 a040 0000 c040 0000 e040", logBinary(this.response.toString('binary')));
|
|
console.log("done");
|
|
}
|
|
};
|
|
xhr.open("GET", url, false);
|
|
xhr.send();
|
|
}
|
|
|
|
function logBinary(data) {
|
|
function log(data, idx) {
|
|
return data.charCodeAt(idx).toString(16).padStart(2, '0');
|
|
}
|
|
if (!data) return 'no data';
|
|
if (typeof data !== 'string') return 'not a string';
|
|
let str = '';
|
|
for (let k = 0; k < data.length - 2; k += 2)
|
|
str += `${log(data, k)}${log(data, k+1)} `;
|
|
if ((data.length % 2) == 0)
|
|
str += `${log(data, data.length - 2)}${log(data, data.length - 1)}`;
|
|
else
|
|
str += `${log(data, data.length - 1)}`;
|
|
return str;
|
|
}
|