我axios用于ajax请求,而reactJS+ flux用于渲染UI。在我的应用程序中,有第三方时间轴(reactJS组件)。时间轴可以通过鼠标滚动进行管理。应用程序在发生任何滚动事件后发送对实际数据的ajax请求。问题是服务器上的请求处理可能比下一个滚动事件慢。在这种情况下,应用可能会有几个(通常是2-3个)请求已被弃用,因为用户会进一步滚动。这是一个问题,因为每次接收新数据时线都会开始重绘。(因为它是reactJS +流量)因此,用户多次看到时间轴的来回移动。解决此问题的最简单方法是,像中那样中止先前的ajax请求jQuery。例如:
axios
reactJS
flux
jQuery
$(document).ready( var xhr; var fn = function(){ if(xhr && xhr.readyState != 4){ xhr.abort(); } xhr = $.ajax({ url: 'ajax/progress.ftl', success: function(data) { //do something } }); }; var interval = setInterval(fn, 500); );
如何在中取消/中止请求axios?
Axios目前不支持取消请求。 有关详细信息,请参见此问题。
更新:取消支持已添加到axios v0.15中。
编辑:axios取消令牌API基于撤回的可取消承诺提案。