Aktualisieren : Chrome 58+ hat diese und andere Debug-Meldungen standardmäßig ausgeblendet. Um sie anzuzeigen, klicken Sie auf den Pfeil neben "Info" und wählen Sie "Ausführlich".
Chrome 57 hat standardmäßig "Verstöße ausblenden" aktiviert. Um sie wieder einzuschalten, müssen Sie Filter aktivieren und das Kontrollkästchen "Verstöße ausblenden" deaktivieren.
plötzlich erscheint es, wenn jemand anderes an dem Projekt beteiligt ist
Ich denke, es ist wahrscheinlicher, dass Sie auf Chrome 56 aktualisiert haben. Diese Warnung ist meiner Meinung nach eine wunderbare neue Funktion. Deaktivieren Sie sie meiner Meinung nach nur, wenn Sie verzweifelt sind und Ihr Prüfer Ihnen die Noten wegnimmt. Die zugrunde liegenden Probleme sind in den anderen Browsern vorhanden, aber die Browser sagen Ihnen einfach nicht, dass ein Problem vorliegt. Das Chromium-Ticket ist hier, aber es gibt keine wirklich interessante Diskussion darüber.
Diese Meldungen sind Warnungen anstelle von Fehlern, da sie keine größeren Probleme verursachen. Dies kann dazu führen, dass Frames gelöscht werden oder auf andere Weise weniger flüssig werden.
Es lohnt sich jedoch, sie zu untersuchen und zu korrigieren, um die Qualität Ihrer Anwendung zu verbessern. Um dies zu erreichen, müssen Sie darauf achten, unter welchen Umständen die Meldungen angezeigt werden, und Leistungstests durchführen, um einzugrenzen, wo das Problem auftritt. Der einfachste Weg, um Leistungstests zu starten, besteht darin, folgenden Code einzufügen:
function someMethodIThinkMightBeSlow() {
const startTime = performance.now();
// Do the normal stuff for this function
const duration = performance.now() - startTime;
console.log(`someMethodIThinkMightBeSlow took ${duration}ms`);
}
Wenn Sie fortgeschrittener werden möchten, können Sie auch den Chrome-Profiler verwenden oder eine Benchmarking-Bibliothek wie diese verwenden .
Sobald Sie einen Code gefunden haben, der lange dauert (50 ms ist der Schwellenwert von Chrome), haben Sie mehrere Möglichkeiten:
- Schneiden Sie einige / alle dieser Aufgaben aus, die möglicherweise unnötig sind
- Finden Sie heraus, wie Sie dieselbe Aufgabe schneller erledigen können
- Teilen Sie den Code in mehrere asynchrone Schritte
(1) und (2) mögen schwierig oder unmöglich sein, aber es ist manchmal sehr einfach und sollte Ihre ersten Versuche sein. Bei Bedarf sollte dies immer möglich sein (3). Dazu verwenden Sie Folgendes:
setTimeout(functionToRunVerySoonButNotNow);
oder
// This one is not available natively in IE, but there are polyfills available.
Promise.resolve().then(functionToRunVerySoonButNotNow);
Weitere Informationen zur Asynchronität von JavaScript finden Sie hier .