解决多并发的ajax请求

难题:多个ajax请求并存,可能只会执行一个ajax请求。

思路:

养成好习惯,请求完一个ajax,就delete这个请求,再把它赋值为null;

难题:多个ajax请求造成页面堵塞。

多个AJAX请求之间会存在一定影响的情况。常见情况:

1.多个AJAX返回的是同一个数据的不同部分。我们需要在前端把这些数据组合成一个完整的数据来运用。我们要知道这些数据的次序来够正确拼接。
2.不同查询条件下的同一组数据。(我们可能需要的是最新的一组数据)。
3.后面的AJAX要用到的前面AJAX的数据。
所以获得后台传递给我们数据的顺序十分必要。通常有以下几种方法:

1.递归,在回调函数中执行下一个AJAX。问题是如果中间某一个AJAX没有正常返回,后面的AJAX就有不执行的风险。所以可能需要做一些特别的处理。
2.同步AJAX。 不是很推荐。浏览器分分钟失去响应。严重影响用户体验。
3.方法三.从回调函数上面想办法。可以用闭包来记录当前是第几组的AJAX请求,回调函数中读取。正常发起AJAX请求即可。
4.前后台的协商。对于不需要保证返回顺序。只需要确定所返回结果是对应第几组数据的。  可以AJAX传递当前是第几组数据的标识。后台返回结果的时候再把这个标识返回过来。这样回调函数也能识别到拼装的次序。但是这种情况有限制,对于一些网络公共接口,它返回的数据不是我们能左右的。
5.放数组里控制。

参考:https://www.v2ex.com/t/353038

 

 
posted @ 2018-10-24 12:30  龙波帝国  阅读(2521)  评论(0编辑  收藏  举报