JSFiddle - React, Tailwind, and code Playground
JavaScript
var chunk_size = 1000; //1kb chunks
function next_chunk(pos, file_len){
if(pos > file_len){
return;
}
var chunk_end = pos + chunk_size < file_len ? pos + chunk_size : file_len;
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(){
if(xhr.readyState == 4 && xhr.status == 206){
alert(xhr.response.length);
//request next chunk
file_len = parseInt(xhr.getResponseHeader("Content-Range").split("/")[1]);
next_chunk(pos + chunk_size + 1, file_len);
}
};
xhr.open("get", "http://fiddle.jshell.net/img/logo.png", true);
xhr.setRequestHeader("Range", "bytes=" + pos + "-" + chunk_end);
xhr.send();
}
next_chunk(0, chunk_size);