如何估算REST通话时间?

时间:2018-06-26 10:20:55

标签: javascript asynchronous

我想为我的项目的REST调用构建进度条,例如react-redux-spinner,当用户单击按钮以启动异步操作时,将显示进度条,并且当​​操作完成时,进度栏将被填写。

我知道异步操作是不确定的,那么react-redux-spinner如何显示不确定的持续时间?

是否可以确定REST通话时间?

2 个答案:

答案 0 :(得分:1)

如果您使用XMLHttpRequest,则可以听progress的动作:

var xhr = new window.XMLHttpRequest();
xhr.upload.addEventListener("progress", function(evt) {
   if (evt.lengthComputable) {
      var percentComplete = evt.loaded / evt.total;
      //Do something with upload progress here
   }
}, false);

xhr.addEventListener("progress", function(evt) {
    if (evt.lengthComputable) {
        var percentComplete = evt.loaded / evt.total;
        //Do something with download progress
    }
}, false);

看看原始问题:What is the cleanest way to get the progress of JQuery ajax request?

答案 1 :(得分:1)

无法知道请求将花费多长时间。您将1.发送请求,并2.接收响应。您有两种选择:

  • 使用加载栏并猜测将花费的时间,例如,使其收到请求后加载到80%并处理最后20%的时间。
  • 使用微调器。

您必须问自己,加载条/微调器的功能是什么。最后,只是向用户显示您的应用程序正在为他们做某事。第一种解决方案给他们的印象是要花多长时间,无论您是要“欺骗”他们以给他们提供估计还是只是简单地表明微调框取决于您。