76 lines
2.5 KiB
JavaScript
76 lines
2.5 KiB
JavaScript
var requestInterval = function (fn, delay) {
|
|
if (!self.requestAnimationFrame &&
|
|
!self.webkitRequestAnimationFrame &&
|
|
!(self.mozRequestAnimationFrame && self.mozCancelRequestAnimationFrame) && // Firefox 5 ships without cancel support
|
|
!self.oRequestAnimationFrame &&
|
|
!self.msRequestAnimationFrame)
|
|
return self.setInterval(fn, delay);
|
|
|
|
var start = new Date().getTime(),
|
|
handle = new Object();
|
|
|
|
function loop() {
|
|
var current = new Date().getTime(),
|
|
delta = current - start;
|
|
|
|
if (delta >= delay) {
|
|
fn.call();
|
|
start = new Date().getTime();
|
|
}
|
|
|
|
handle.value = self.requestAnimationFrame(loop);
|
|
};
|
|
|
|
handle.value = self.requestAnimationFrame(loop);
|
|
return handle;
|
|
}
|
|
var clearRequestInterval = function (handle) {
|
|
self.cancelAnimationFrame ? self.cancelAnimationFrame(handle.value) :
|
|
self.webkitCancelAnimationFrame ? self.webkitCancelAnimationFrame(handle.value) :
|
|
self.webkitCancelRequestAnimationFrame ? self.webkitCancelRequestAnimationFrame(handle.value) : /* Support for legacy API */
|
|
self.mozCancelRequestAnimationFrame ? self.mozCancelRequestAnimationFrame(handle.value) :
|
|
self.oCancelRequestAnimationFrame ? self.oCancelRequestAnimationFrame(handle.value) :
|
|
self.msCancelRequestAnimationFrame ? self.msCancelRequestAnimationFrame(handle.value) :
|
|
clearInterval(handle);
|
|
};
|
|
|
|
|
|
var lpPop;
|
|
var request;
|
|
var count = 0;
|
|
var f = function (e) {
|
|
if (e.data != null) {
|
|
if (e.data.status == "StartUpload") {
|
|
request = e.data.totalF;
|
|
}
|
|
else if (e.data.status == "Uploaded")
|
|
{
|
|
var b = e.data.bucket;
|
|
var flag = true;
|
|
for (var i = 0; i < b.length; i++) {
|
|
if (b[i] == 0) {
|
|
flag = false;
|
|
}
|
|
}
|
|
if (flag) {
|
|
count += b.length;
|
|
if (count == request) {
|
|
self.postMessage("Uploaded");
|
|
lpPop = requestInterval(function() {
|
|
self.postMessage("Tick");
|
|
}, 500);
|
|
} else {
|
|
self.postMessage("Upload");
|
|
}
|
|
}
|
|
}
|
|
else if (e.data.status == "NoItem")
|
|
{
|
|
clearRequestInterval(lpPop);
|
|
self.postMessage("Finish");
|
|
}
|
|
}
|
|
}
|
|
self.addEventListener("message", f, false);
|
|
|