上次文件进度达到100%与停止/完成事件之间的差距很大?
我正在使用blueimp文件上传插件来实现一些文件上传function,我注意到我的上一个文件进度条达到100%和停止和完成事件之间可能会有很大的时间间隔。我有以下内容码:
$('#fileupload').fileupload({ dataType: 'json', progress: function (e, data) { var progress = parseInt(data.loaded / data.total * 100, 10); var bar = data.context.children().children(".progress"); $(bar).css("width", progress + "%"); }, add: function (e, data) { data.context = $("").html("Uploading... ").appendTo($("#files")); data.submit(); $("#processing").fadeIn(); }, stop: function (e, data) { $("#uploadFiles").fadeIn(); $("#processing").fadeOut(); }, done: function (e, data) { $.each(data.result.files, function (index, file) { idArray.push(file.Id); }); } });
有谁知道为什么会发生这种情况? 我怎样才能使进度条在调用完成/停止时考虑进度?
当您上传文件时,文件首先(显然)上传到服务器,然后服务器将执行请求的服务器端脚本,然后处理该文件。 如果请求的“处理文件”部分不是即时的,则在进度达到100%和完成回调被触发之间会有延迟。 如果存在网络延迟,也可能会有延迟。
progress事件仅跟踪上载的进度,而不是请求的进度。
一种解决方案是让你的进度条停止,比如90%
然后在完成的回调中将其提高到100%
。 只需将data.total
乘以1.1
progress: function (e, data) { var progress = parseInt(data.loaded / (data.total*1.1) * 100, 10); var bar = data.context.children().children(".progress"); $(bar).css("width", progress + "%"); },
- Fileupload多次上传文件
- 不调用Symfony 3.1和OneUpUploaderBundle + Blueimp = UploadListener
- 使用Jquery blueimp将图像上传到App Engine:
- Blueimp文件上传:上传前从文件列表中删除文件
- 使用Jquery插件blueimp gallery在lightbox中显示描述
- 为jQuery-File-Upload实现删除按钮
- blueimp jquery-file-upload不会在不成功的添加上抛出错误
- 为什么Blueimp的jQuery-File-Upload插件没有激活回调?
- blueimp jQuery-File-Upload – 如何在没有附加文件的情况下提交表单?