gpt4 book ai didi

javascript - 计算剩余下载时间

转载 作者:行者123 更新时间:2023-11-29 16:17:16 25 4
gpt4 key购买 nike

我正在通过 Ajax 分块上传文件。目前,每个 block 重 50 KiB。

在上传过程中我有以下信息:

  • 文件大小
  • block 的数量
  • 时间开始
  • 以毫秒为单位上传当前 block 花费了多长时间

我还可以添加几乎所有可能需要的东西来完成这个,我想到的不是依赖上传速度,而是依赖平均 block 上传时间,这是我目前的破公式:

(averageUplTime * ((FileSize / ChunkSize) ) -  AmountOfChunks) / 1000 

它实际上几乎可以工作,我可以在数字之间看到它几乎以正确的方式减少,但是我得到这些长数字 9.16174 并且我无法找到正确的方法来做到这一点。

最佳答案

假设 startTime 是自纪元以来以毫秒为单位的时间戳,这应该有效:

var elapsedTime = (new Date().getTime()) - startTime;
var chunksPerTime = currentChunk / elapsedTime;
var estimatedTotalTime = amountOfChunks / chunksPerTime;
var timeLeftInSeconds = (estimatedTotalTime - elapsedTime) / 1000;

var withOneDecimalPlace = Math.round(timeLeftInSeconds * 10) / 10;

只要上传速度波动不大,这就是“准确”的。您可以通过仅考虑最后 X 个 block 来计算 chunksPerTime(并对这些 block 的最后一个 Y 值取平均值)来获得更好的结果。

关于javascript - 计算剩余下载时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13541702/

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