如何在Ajax中从任何Api获取数据时计算获取时间

时间:2014-04-22 10:28:23

标签: javascript php ajax

  1. 我只想显示从Api获取的数据量。

  2. 输出应该像10%一样,90%仍然是这样的。

  3. 我正在搜索如何计算检索金额以及重新提取要提取的数据。

  4. 我一直在研究basecamp api这会浪费大量时间来获取任务,活动等。 所以我只想在Ajax中获取时显示剩余时间。
  5. 我用Google搜索并找到了一个链接:Monitoring_progress          但是如果有人能告诉我从哪里开始我会非常感激。

1 个答案:

答案 0 :(得分:1)

据我所知,没有办法得到确切的时间,但你可以得到一个近似值。

为什么你没有确切的时间?

大部分时间都花在basecamp服务器上,而不是在请求中。您发布的链接为basecamp推送进度消息提供了一种方法。如果他们不这样做,你什么也得不到。

您可以将basecamp服务器想象成一堵墙。在墙后面是进步,但是你无法看到墙后面,basecamp不允许你攀爬它。

怎么办?

你可以估计这个时间。使用类似于此处发布的方法:

var ajaxTime= new Date().getTime();
$.ajax({
    type: "POST",
    url: "some.php",
}).done(function () {
    var totalTime = new Date().getTime()-ajaxTime;
});

您可以衡量完成请求所需的时间。

比计算mean time所有请求的url。那段时间足够好了。

我推荐这样的东西:

  • 每次请求自己测量10次。
  • 计算时间的平均值(将它们相加并除以10(请求数))
  • 保存结果并在启动应用程序并将其存储在浏览器中时发送。
  • 当用户提出请求时,获取预先计算的时间并显示计时器。

更新

要以固定时间百分比显示固定时间,您可以这样做:

  • secondsPerPercent = timeInSeconds / 100< - 这是填写百分比需要传递的秒数。
  • 制作一个javascript计时器(可以在谷歌上找到它的代码),每隔secondsPerPercent更新一次百分比。