Async upload over xhr, progress calculation on client