/**
* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/
*/
var xhr =
new XMLHttpRequest();
function onload(event) {
if (event.target != xhr) {
throw new Error(
"onload event.target != xhr" );
}
if (event.target.status != 200) {
const message = { type:
"error" , error: event.target.status };
postMessage(message);
}
const message = { type:
"load" , data: xhr.responseText };
postMessage(message);
}
xhr.onload = onload;
xhr.addEventListener(
"load" , onload);
xhr.removeEventListener(
"load" , onload);
if (!xhr.onload) {
const message = { type:
"error" , error:
"Lost message listener!" };
postMessage(message);
}
xhr.onerror =
function (event) {
if (event.target != xhr) {
throw new Error(
"onerror event.target != xhr" );
}
var message = { type:
"error" , error: event.target.status };
postMessage(message);
};
// eslint-disable-next-line no-self-assign
xhr.onerror = xhr.onerror;
// eslint-disable-next-line no-self-compare
if (!xhr.onerror || xhr.onerror != xhr.onerror) {
throw new Error(
"onerror wasn't set properly" );
}
function onprogress(event) {
if (event.target != xhr) {
throw new Error(
"onprogress event.target != xhr" );
}
const message = {
type:
"progress" ,
current: event.loaded,
total: event.total,
};
postMessage(message);
}
xhr.addEventListener(
"progress" , onprogress);
xhr.addEventListener(
"foopety" ,
function () {});
xhr.removeEventListener(
"doopety" ,
function () {});
xhr.onloadend =
function () {
const message = { type:
"loadend" };
postMessage(message);
};
var upload = xhr.upload;
upload.onprogress =
function () {};
upload.addEventListener(
"foo" ,
function () {});
upload.removeEventListener(
"foo" ,
function () {});
upload.addEventListener(
"load" ,
function () {});
upload.removeEventListener(
"foo" ,
function () {});
upload.onload =
function () {
const message = { type:
"upload.load" };
postMessage(message);
};
onmessage =
function (event) {
if (xhr.DONE != 4 || XMLHttpRequest.DONE != 4) {
throw new Error(
"xhr constants not correct!" );
}
if (xhr.readystate > xhr.UNSENT) {
throw new Error(
"XHR already running!" );
}
xhr.open(
"POST" , event.data);
xhr.send(
"Data to send" );
};
Messung V0.5 C=99 H=96 G=97
¤ Dauer der Verarbeitung: 0.3 Sekunden
¤
*© Formatika GbR, Deutschland