Mise à jour : Chrome 58+ a masqué ces messages de débogage et d'autres par défaut. Pour les afficher, cliquez sur la flèche à côté de «Info» et sélectionnez «Verbose».
Chrome 57 a activé `` masquer les violations '' par défaut. Pour les réactiver, vous devez activer les filtres et décocher la case «masquer les violations».
tout à coup, il apparaît quand quelqu'un d'autre impliqué dans le projet
Je pense qu'il est plus probable que vous ayez mis à jour vers Chrome 56. Cet avertissement est une merveilleuse nouvelle fonctionnalité, à mon avis, veuillez la désactiver uniquement si vous êtes désespéré et votre évaluateur vous prendra des marques. Les problèmes sous-jacents sont présents dans les autres navigateurs, mais les navigateurs ne vous disent tout simplement pas qu'il y a un problème. Le ticket Chromium est là mais il n'y a pas vraiment de discussion intéressante à ce sujet.
Ces messages sont des avertissements au lieu d'erreurs car cela ne va pas vraiment causer de problèmes majeurs. Cela peut entraîner la perte d'images ou provoquer une expérience moins fluide.
Ils méritent cependant d'être étudiés et corrigés pour améliorer la qualité de votre application. Pour ce faire, faites attention aux circonstances dans lesquelles les messages apparaissent et effectuez des tests de performances pour déterminer où le problème se produit. La façon la plus simple de démarrer les tests de performances consiste à insérer du code comme celui-ci:
function someMethodIThinkMightBeSlow() {
const startTime = performance.now();
// Do the normal stuff for this function
const duration = performance.now() - startTime;
console.log(`someMethodIThinkMightBeSlow took ${duration}ms`);
}
Si vous souhaitez devenir plus avancé, vous pouvez également utiliser le profileur de Chrome ou utiliser une bibliothèque d'analyse comparative comme celle-ci .
Une fois que vous avez trouvé du code qui prend beaucoup de temps (50 ms est le seuil de Chrome), vous avez deux options:
- Supprimez tout ou partie de cette tâche qui peut être inutile
- Découvrez comment effectuer la même tâche plus rapidement
- Divisez le code en plusieurs étapes asynchrones
(1) et (2) peuvent être difficiles ou impossibles, mais c'est parfois très facile et devrait être vos premiers essais. Si nécessaire, il devrait toujours être possible de le faire (3). Pour ce faire, vous utiliserez quelque chose comme:
setTimeout(functionToRunVerySoonButNotNow);
ou
// This one is not available natively in IE, but there are polyfills available.
Promise.resolve().then(functionToRunVerySoonButNotNow);
Vous pouvez en savoir plus sur la nature asynchrone de JavaScript ici .