2013-07-18 4 views
5

Ich schreibe javascript App zu verwalten, und ich bin mit backbone.js .auf der App habe ich mehrere Ansichten auf einer Seite, Mehrheit Ansichtenrequest gesendet (Anfragen < - sie Ajax -Abfrage, aber nicht backbone.js Ajax-Abfrage) zu Server gleichzeitig, und sie hatten ein Ergebnis in einem engen Zeitraum. Wenn etwas falsch mit dem Server oder dem Netz passiert ist, würde ein paar response kaputt gehen und mit Fehlern zurückkommen. Das Problem ist, dass alle Fehler durch Warnungen an Benutzer anzeigen müssen, trotz der Tatsache, dass es langweilig ist, mehr und mehr Warnungen für Benutzer zu sehen. Wie kann ich die Warnungen verwalten? Ich habe settimeout verwendet, um Warnungen anzuzeigen, aber dieser Weg ist nicht hilfreich zu Rückgang Anzahl der Warnungen. Wenn Sie einen anderen Weg kennen, erzählen Sie mir bitte davon?wie Ajax Antwort Fehler

Antwort

4
function alertMajorError(errMsg) { 
     errMsg = typeof errMsg !== 'undefined' ? errMsg : 'Fatal Error!'; 
     var n = noty({layout:'center',type:'error',text:errMsg,timeout:false}); 
    } 
    $(document).ajaxError(function(event, jqxhr, settings, exception) { 
     if (exception == 'abort') return false; 
     alertMajorError('An AJAX error [' + exception + '] occurred in script: ' + settings.url + '<br \><br \>Please report this to the development team!'); 
     console.log(event, jqxhr, settings, exception); 
}); 

Sie können eine Standard AJAX error Reporter in Ihrem Haupt-JS-Datei einrichten, wie ich habe. Ich benutze das jQuery noty Plugin!

+0

P.S. Wenn Sie sich wundern, warum ich den 'abort'-Fehler ignoriere, liegt das daran, dass' Autocomplete 'und einige andere asynchrone Widgets absichtlich abbrechen, so dass sie von vorne beginnen können, wenn sich etwas mit den Eingabe-Parametern ändert. Es passiert viel, also habe ich diese deaktiviert. – DevlshOne

1

Alle Fehler müssen angezeigt werden ... Okay, dann nur nicht alarm(), verwenden Sie Popup-Divs mit den Fehlern und zeigen sie in einem Infobereich, e. B. in der oberen linken Ecke Ihrer Seite. Sehen Sie, wie es in Google Mail gemacht wird: Wenn ein Ajax-Fehler auftritt, wird eine kleine Benachrichtigung in der Mitte der Seite angezeigt, ein Benutzer kann sie lesen, aber die gesamte Schnittstelle ist nicht blockiert.