gpt4 book ai didi

javascript - 上一个文件进度达到 100% 与停止/完成事件之间存在巨大差距?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:50:39 27 4
gpt4 key购买 nike

我正在使用 blueimp File Upload plugin实现一些文件上传功能,我注意到在我的最后一个文件进度条达到 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 = $("<div></div>").html("Uploading...<div class='progressHolder'><div class='progress'>&nbsp;</div></div>").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% 处,然后在 done 回调中将其跳到 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 + "%");
},

关于javascript - 上一个文件进度达到 100% 与停止/完成事件之间存在巨大差距?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14691236/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com