Aurelia停止了http请求的重载

时间:2016-10-27 21:56:51

标签: javascript aurelia aurelia-http-client

我正在使用Aurelia并且有多个承诺调用我的API。如果我不断点击按钮一遍又一遍地触发承诺,后端将超时。如何停止/停止我正在触发的承诺并获取最新的承诺,以免过度使用API​​并导致超时?

1 个答案:

答案 0 :(得分:2)

这不是aurelia特有的,它发生在任何异步事件实现中。

  1. 单击按钮时,将调用事件处理程序。
  2. 事件处理程序向您的服务器发送异步AJAX请求。由于它是异步的,因此您的代码和应用程​​序会在请求发生时继续运行。
  3. 用户可以再次单击该按钮,同时可以发送第二个AJAX请求,假设您点击的速度比请求完成的速度快。
  4. 更糟糕的是,并发请求甚至可能无序完成(即稍后的请求在前者之前完成)。您的代码应该准备妥善处理。
  5. 如果您不想要此行为,则由您决定在AJAX请求完成之前阻止用户再次提交。例如,您可以:

    • 发送请求时禁用按钮;或
    • 显示模式" loading"屏幕/微调器,以防止在请求处于运行状态时与应用程序进行任何交互。

    请注意,无论如何,提供用户反馈都是很好的用户体验。网络请求可能会因为很多原因而延迟,最好提供一些反馈,让他知道发生了什么事情。