作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我的网站上有一个 html5 文件上传脚本。
它与这个进度条脚本配合得很好
xhr.upload.addEventListener("progress", function(e) {
var pc = parseInt(100 - (e.loaded / e.total * 100));
var pci = parseInt(e.loaded / e.total * 100);
//get us our ETA
//kilobytes or megabytes?
var pcia = e.loaded / 1024;
var pcia2 = e.total / 1024;
if (pcia2 > 1024)
{
pcia = pcia / 1024
pcia2 = pcia2 / 1024;
progress.style.backgroundPosition = pc + "% 0";
elapsedtime = startTime + new Date();
alert(startTime);alert(new Date());
var eta = ((e.total / e.loaded) * elapsedtime) - elapsedtime;
progress.innerHTML = pci + "% (" + Math.ceil(pcia * 100)/100 + " MB of " + Math.ceil(pcia2 * 100)/100 + " MB)-(" + eta +" secs. remaining)";
}
else
{
progress.style.backgroundPosition = pc + "% 0";
progress.innerHTML = pci + "% (" + Math.ceil(pcia * 100)/100 + " KB of " + Math.ceil(pcia2 * 100)/100 + " KB)-(" + eta +" secs. remaining)";
}
}, false);
好的,所以我已经提醒了开始时间和调用进度的时间。但是变量 ETA 显示为 NaN。你怎么能实现像 date("Y-m-d H:i:s"); 这样的东西? (来自 php)在 javascript 中?
最佳答案
要查找预计到达时间,您必须将代码更改为此。
这里所做的更改是我们有 2 个新变量,名为 startTime 和 now。
在上传开始后立即放置 var startTime,它应该与 var now 的语法相同。
此脚本将告诉用户完成百分比、上传的千字节/兆字节与总计 kb/mb 的对比,以及现在文件上传的预计到达时间。
xhr.upload.addEventListener("progress", function(e) {
var pc = parseInt(100 - (e.loaded / e.total * 100));
var pci = parseInt(e.loaded / e.total * 100);
//get us our ETA
//kilobytes or megabytes?
var pcia = e.loaded / 1024;
var pcia2 = e.total / 1024;
if (pcia2 > 1024)
{
pcia = pcia / 1024
pcia2 = pcia2 / 1024;
var now = (new Date()).getTime();
var elapsedtime = now - startTime;
elapsedtime = elapsedtime / 1000;
var eta = ((e.total / e.loaded) * elapsedtime) - elapsedtime;
eta = Math.round(eta);
progress.innerHTML = pci + "% (" + Math.ceil(pcia * 100)/100 + " MB of " + Math.ceil(pcia2 * 100)/100 + " MB)-(" + eta +" secs. remaining)";alert(pci); progress(pci, $('#progress'));
}
else
{
var now = (new Date()).getTime();
var elapsedtime = now - startTime;
elapsedtime = elapsedtime / 1000;
var eta = ((e.total / e.loaded) * elapsedtime) - elapsedtime;
progress.innerHTML = pci + "% (" + Math.ceil(pcia * 100)/100 + " KB of " + Math.ceil(pcia2 * 100)/100 + " KB)-(" + eta +" secs. remaining)"; progress(pci, $('#progress'));
}
}, false);
关于javascript - 是否可以找到 html 5 文件上传的预计到达时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18280688/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!