【发布时间】:2014-12-03 19:06:35
【问题描述】:
您好,我正在使用jQuery File Upload
它工作正常,我正在向用户显示一个进度条,显示上传进度,代码如下:
$('#fileupload').fileupload({
/* ... */
progressall: function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
$('#progress .bar').css(
'width',
progress + '%'
);
}
});
在我的页面上,我目前刚刚包含了 jquery.fileupload.js 文件。在progressall 函数的数据中,我可以看到比特率、总文件大小和当前加载的数据,正如我所说的那样,它们会按预期更新我的进度条。但是在网站上阅读此link 表明我可以获得包括剩余时间在内的额外信息?但是,我一直无法使其正常工作。还有一个 jquery.fileupload-ui.js 文件 - 我尝试在我的 jquery.fileupload.js 之后包含它,但我没有看到剩余时间属性被添加到 progressall 函数中的数据中。我还尝试删除 jquery.fileupload.js 并只包含 jquery.fileupload-ui.js 但是这破坏了我的文件上传并且它不起作用。
我是否可以使用加载的比特率/数据和总大小轻松计算剩余时间,或者是否有人建议我应该从插件中获取这些扩展信息的正确方法?
【问题讨论】:
-
你确定你有最新版本的插件吗?
-
纯数学:在开始上传时获取时间戳并将其保存到某个变量中,并在
progressall函数的每个刻度上计算经过的时间和上传的百分比。例如。如果上传开始于 10 秒前并完成 25%,则剩余时间为 10/25*100 - 10 秒。 -
刚刚意识到 time 属性仅可使用 progress 函数而不是 progressAll 函数-doh
标签: javascript jquery file-upload jquery-file-upload