2017-11-23 3 views
0

Was ich habe:Wie behandelt man XMLhttpRequest.Response-basierte Warnungen ohne Zeitüberschreitung?

Ein Formular mit Dateianhang, die bei Senden über XMLhttpRequest (in JSON) an einen externen Server gesendet wird. Ich erhalte eine Antwort, und der Benutzer erhält ein Warnfenster, wenn die Daten übermittelt wurden - oder welche Informationen fehlen.

Problem:

jedoch Chrom damit nicht sehr glücklich ist, weil offenbar die window.alert im readystate == 4 keine gute Idee ist?

Die ms von der Fehlermeldung scheint die Zeit zu sein, die der Benutzer braucht, um auf OK zu klicken. Siehe Fehlermeldung unten:

[Violation] 'readystatechange' handler took 3203ms 

Dies ist der Code in Frage:

abc.onreadystatechange = function() { 
    if (abc.readyState == 4) { 
    var answer = abc.response; 
    if (answer.success) { 
    // alert("Data was sent. Number: " + answer.Number); 
     console.log("Data was sent. Number: " + answer.Number); 
    } 
    else { 
     //alert("Data is missing: " + answer.message); 
     console.log("Data is missing: " + answer.message); 
    } 
    } 
}; 

Was ist der bessere Weg, unterschiedliche window.alert auf den Werten der .response Basis zu benutzen?

+1

Wie geht es mit 'console.log' anstelle von' alert'? Prüfe auch den Code, den du gepostet hast, da scheint eine * schließende Klammer *}} fehlt? – gurvinder372

+0

änderte den Code ein wenig, so dass es verständlicher ist. Ich habe den 'alert' auskommentiert und' console.log' hinzugefügt, diesmal keine Warnung. – Chris

+0

vor Ihrem ersten if, können Sie diese Anweisung setzen und die Ausgabe 'console.log (abc.readyState)' teilen – gurvinder372

Antwort

0

Dies scheint eine allgemeine Verletzung Warnmeldung von Chrom geworfen zu sein, diese Funktionen zu berichten, die

Per dieser thread

Zusammenfassung

Eine neue Performance-API zu lange nehmen Aktivieren von Anwendungen zum Erkennen der Anwesenheit von "langen Aufgaben", die den UI-Thread für längere Zeiträume von monopolisieren und andere Kritiker blockieren l Aufgaben werden ausgeführt - z. reagiert auf Benutzereingabe.

durch die Meldung Möchten Sie erhalten haben, sieht es aus wie Chrom eine Warnung ausgelöst hat, die Sie 3 Sekunden nahm das Warnfeld zu schließen.

Auch

  • Dies ist nur eine Warnung, können Sie diese Warnung ausblenden, indem Log-Level in Ihrem Entwickler-Tool Konsole wählen.
  • Verwenden Sie zum Debuggen console.log anstelle von alert.
Verwandte Themen