In meiner derzeitigen Situation benutze ich einen $ http Interceptor, um Antwortfehler aufzufangen und eine einfache Nachricht anzuzeigen, um dem Benutzer mitzuteilen, dass etwas schief gelaufen ist. Aber jetzt möchte ich unterscheiden zwischen Fehlern, die von Anfragen, die während des Ladens einer Seite gesendet werden, oder Anfragen, die aufgrund einer Aktion des Benutzers selbst gesendet werden (z. B. einen Knopf drücken, ein Feld eingeben ...) .Wie man weiß, wann eine Seite vollständig geladen ist (einschließlich ihrer AJAX-Anfragen)
Beispiel für die $ httpInterceptor ich haben will:
return {
responseError: function (response) {
// IF THE REQUEST IS FROM A PAGE LOAD
// DO SOMETHING
// IF THE REQUEST IS NOT FROM A PAGE LOAD
// DO SOMETHING ELSE
return $q.reject(response);
}
};
es ein wenig klarer zu machen: 1
CASE: Ein Benutzer für eine Seite zu laden wartet:
- REQ 1
- REQ 2 gesendet wird
- REQ 3gesandt
- REQ 4 wird nach dem Ansprechen des REQ 3
- REQ 5 gesendet wird nach dem Ansprechen des REQ 4
- REQ 4 wird nach dem Ansprechen des REQ 3
- REQ 6
- REQ 7 gesendet wird gesendet nach Antwort von REQ 6
Alle oben genannten Anforderungen sind Teil der Seitenladung und wenn einer von ihnen einen Fehler zurückgibt, sollte es ein bestimmtes Verhalten haben.
fordert, dass nicht wegen einer Seite zu laden ausgelöst:
CASE 2: Benutzer drückt einen Knopf:
- REQ1
- REQ 2 gesendet wird, wird nach der Reaktion von REQ gesendet 1
Diese Anfragen ar Sie sind nicht Teil der Seitenladung und sollten sich im Fehlerfall anders verhalten.
Gibt es eine Möglichkeit, dass ich irgendwie zwischen diesen beiden Fällen unterscheiden kann? Da mein Projekt ziemlich groß ist, möchte ich nicht den Code jeder $ http-Anfrage ändern, um festzustellen, ob es sich um eine Seitenladung handelt oder nicht, also ist das für mich keine Lösung.
Schauen Sie sich diesen Link https://stackoverflow.com/questions/4231580/get-if-browser-is-busy – Nicolas
definieren, was Sie mit Seite loada bedeuten kann, (partials html und andere Vermögenswerte?) . Wenn Sie verstehen, dass Sie Ausnahmen mit etwas verzieren Nachricht fangen, wenn Vorlagen laden und fehlschlägt, und andere, wenn von einer Art von api i kommt, richtig? –