2016-03-24 1 views
1

Ich habe mit ExtJS 6.0 gearbeitet. Ich verwende Ajax Request, um Daten vom Anwendungsserver abzurufen. In meiner aktuellen Ansicht onClick of OK-Taste, mache ich Ajax Anruf durch die Weitergabe von Nutzdaten an den Dienst. Gleichzeitig maskieren Sie den Bildschirm mit Abbrechen-Taste darauf. Manchmal braucht der Service Zeit, um zu antworten. Der Benutzer könnte seine Suche neu definieren, indem er auf Abbrechen klickt und die Aktion erneut ausführt. Ich habe den Bildschirm demaskiert, wenn ich im Maskierungsbildschirm auf Abbrechen klicke, aber Ajax wird nicht abgebrochen. Es lädt die alten Daten, sobald der Dienst antwortet. Gibt es irgendeinen Weg, meine alte Ajax-Anfrage zu stoppen/abzubrechen?Eine Ajax-Anfrage in ExtJS abbrechen

Antwort

3

Versuchen Sie, diese

var requestId = Ext.Ajax.request({...}); 

Ext.Ajax.abort(requestId); 
+0

oder 'requestId.abort()'. Es wird komplizierter, wenn Sie das Senden von Formularen mit dem Hochladen von Dateien abbrechen müssen. – serg

+0

Ich muss durch AJAX-Anfrage abbrechen, wenn ich Abbrechen-Schaltfläche im Maskierungsbildschirm klicken. Es gibt einen Handler für Abbrechen, um den Bildschirm zu demaskieren. Aber wie kann ich die Anfrage abbrechen, wenn auf Abbrechen geklickt wird? – Arun

+0

Beachten Sie, dass, obwohl Sie die Anfrage wie hier erwähnt abbrechen können, der Server die Anfrage immer noch verarbeiten wird und schließlich zu einem Client zurückkehren wird, der nicht mehr zuhört. Vielleicht möchten Sie das auch behandeln, wenn das ein Problem ist. –