javascript – 管理多个ajax请求的正确方法是什么?

前端之家收集整理的这篇文章主要介绍了javascript – 管理多个ajax请求的正确方法是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们都在 AJAX教程中看到了一些发送一些数据的例子.他们都(或多或少)看起来像:
  1. var http = createRequestObject(); // shared between printResult() and doAjax()
  2.  
  3. function createRequestObject() { /* if FF/Safari/Chrome/IE ... */ ... }
  4.  
  5. function printResult()
  6. {
  7. if (http.readyState == 4) { ... }
  8. }
  9.  
  10. function doAjax() {
  11. var request = 'SomeURL';
  12. http.open('post',request);
  13. http.onreadystatechange = printResult;
  14. data = ...; // fill in the data
  15. http.send(data);
  16. }
  17.  
  18. // trigger doAjax() from HTML code,by pressing some button

这是我不完全理解的场景:如果按钮被快速按下几次怎么办?应该doAjax()以某种方式重新初始化http对象?如果对象被重新初始化,那么已经播出的请求会发生什么?

PS:主持人:这个问题可能与社区维基有关.如此处所述(https://meta.stackexchange.com/questions/67581/community-wiki-checkbox-missing-in-action) – 如果我做对了 – 请恰当地标记这个问题.

解决方法

由于AJAX具有异步特性,因此每次按下按钮都会引发异步事件,从而将某些数据从FROM / TO服务器获取/ POST.您提供一个回调,因此它将在服务器完成处理数据时被触发多次.

默认情况下这是正常行为,您不应重新初始化http对象.如果要呈现多个发送操作,则必须手动执行此操作(例如,在首次调用时禁用按钮).

我还建议使用jQuery $.ajax,因为它包含了许多这些细节.

猜你在找的Ajax相关文章