wie cancel/Abbrechen ajax-request in der axios
Benutze ich axios
für ajax-Anfragen und reactJS
+ flux
für das Rendern von UI. In meiner app gibt es in der Dritten Seite der timeline (reactJS-Komponente). Timeline können verwaltet werden, durch die die Maus scrollen. App sendet ajax-request für die tatsächlichen Daten nach jedem scroll-Ereignis. Problem, dass die Verarbeitung der Anfrage auf dem server können mehr langsam als nächste scroll-Ereignis. In diesem Fall kann die app über mehrere (2-3 in der Regel) Anforderungen, die bereits veraltet ist, weil der Benutzer blättert. es ist ein problem, weil jedes mal bei Erhalt von neuen Daten, die timeline beginnt neu zeichnen. (Weil es reactJS + flux), Denn dieser sieht der Benutzer die Bewegung der timeline mehrmals hin und her. Der einfachste Weg, um dieses problem zu lösen, es einfach abzubrechen früheren ajax-request wie in jQuery
. Zum Beispiel:
$(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);
);
Abbrechen/abort-Anforderungen in axios
?
- Mögliche Duplikate von reactJS, wie es zu stoppen hören ajax-Anfrage
- Dein link half mir dieses problem zu lösen, aber ich bin immer noch Fragen, wie storniere ich eine Anfrage, statt stop zu hören...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Axios unterstützt keine Stornierung von Anfragen im moment. Bitte sehen dieses Problem für details.UPDATE: Stornierung Unterstützung wurde Hinzugefügt, axios v0.15.
const cancelTokenSource = axios.CancelToken.source(); axios.get('/user/12345', { cancelToken: cancelTokenSource.token }); cancelTokenSource.cancel();
Es ist wirklich schönes Paket mit paar Beispiele genannt axios Abbrechen.
Ich fand es sehr hilfreich.
Hier ist der link: https://www.npmjs.com/package/axios-cancel
Dies ist, wie ich es gemacht habe mit verspricht in Knoten. Pollings stop nach der ersten Anfrage.
m personally use this many time and it
s richtige Ergebnis bitte einmal implementieren, die es mit Ihrem code,wenn dann noch Fragen haben, bitte nennt im Kommentar 🙂