1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
self.addEventListener('message', function(e) {
var data = e.data;
switch (data.cmd) {
case 'load':
var request = new XMLHttpRequest();
// var req_url = "cgi-bin/proxy?"+encodeURI(data.url);
var req_url = "cgi-bin/proxy?"+data.url;
request.open("GET", req_url, true);
request.responseType = "arraybuffer";
request.onload = function() {
var response = ab2str(request.response);
if(response == "failed")
self.postMessage({'result' : 'failed', 'url' : data.url, "response" : 'Getthing content has failed.'});
else
self.postMessage({'result' : 'success', 'url' : data.url, "response" : request.response});
}
request.onerror = function() {
self.postMessage({'result' : 'failed', 'url' : data.url, "response" : 'BufferLoader: XHR error'});
}
request.send();
break;
default:
self.postMessage({'result' : 'failed', 'url' : data.url, "response" : 'Unknown command: ' + data.msg});
};
}, false);
function ab2str(buf) {
return String.fromCharCode.apply(null, new Uint8Array(buf, 0, 6));
}
|