HTML5文件加载进度管理

/**
     * 文件加载进度管理 
     */
    DownloadUtils = function(options){
        options = options || {};
        this.init(options);
    };
    
    DownloadUtils.prototype = {
        init:function(options){
            var _this = this;
            this.url = options.url;
            var xhr = new XMLHttpRequest();
            xhr.open("get", this.url, true);
            xhr.onload = function() {
                if (xhr.status == 200) {
                    //TODO    
                }
            }
            xhr.onloadend = function(){
                if(typeof options.onComplete == "function"){
                    options.onComplete();
                }
            }
            xhr.onprogress = function(event){
                if(event.lengthComputable){
                    if(typeof options.onProgress == "function"){
                        options.onProgress(event.loaded, event.total);
                    }
                }
                else{
                    if(typeof options.onProgressError == "function"){
                        options.onProgressError();
                    }
                }
            }
            xhr.send();
        }
    };
new DownloadUtils({
    url:images[i],
    onProgress:function(loaded, total){
        var percentage = (loaded * 100/ total) + '%';
        console.log(percentage);
    },
    onProgressError:function(){
        console.log("onProgressError");
    },
    onComplete:function(){
        console.log("onComplete");
    }
});
原文地址:https://www.cnblogs.com/rubekid/p/4401621.html