Gdy oczekujące żądanie HTTP zostanie anulowane przez klienta/przeglądarkę, wydaje się, że węzeł z Expressem kontynuuje przetwarzanie żądania. W przypadku intensywnych żądań procesor wciąż jest zajęty niepotrzebnymi żądaniami.Obsługa anulowanych żądań za pomocą Express/Node.js i Angular
Czy można poprosić Node.js/Express o zabicie/zatrzymanie oczekujących żądań, które mają zostać anulowane?
Staje się szczególnie przydatna ponieważ od angularjs żądanie HTTP 1.5 są łatwo cancellable wywołując $cancelRequest()
na $http
/$resource
obiektów.
Takie anulowanie może wystąpić w przypadku ujawnienia metody interfejsu API dostarczającej wyniki dla pól automatycznego uzupełniania lub wyszukiwania: podczas wpisywania w polu, które ma być autouzupełniania lub wyprzedzania z wyprzedzeniem, poprzednie żądania mogą zostać anulowane.
Globalny server.timeout
nie rozwiązuje problemu: 1) jest a priori globalnym ustawieniem dla wszystkich ujawnionych metod API 2) przetwarzanie ciągłe w anulowanym żądaniu nie jest zabijane.
Możesz chcieć nasłuchiwać '' aborted' 'zamiast' "close" '. https://nodejs.org/api/http.html#http_event_aborted – ZachB