3 votes

Pourquoi la console Chrome Dev Tools génère-t-elle des entrées de journal de deux manières différentes (sur une seule ligne et sur plusieurs lignes) ?

Le code suivant génère un journal incrémentiel d'une seule ligne dans la console Chrome Dev Tools :

var run = function() {
  console.log('hello');
}    
setInterval(run, 250);

enter image description here

Lorsque j'utilise le wrapper lodash throttle, je vois des logs multilignes :

var run = function() {
  console.log('hello');
}
var _run = _.throttle(run, 250);
setInterval(_run, 20);

enter image description here

Toutes les entrées du journal renvoient à la deuxième ligne du code source qui est console.log('hello'); dans les deux versions. Pourquoi un tel fractionnement pour la journalisation accélérée ?

0voto

guest271314 Points 2718

La spécification correspondante

2.3.2. Innovation en matière d'expérience utilisateur des imprimantes

  • Déduplication des résultats identiques pour éviter le spam.

    Exemple Dans cet exemple, l'implémentation ne se contente pas de mettre en lots plusieurs messages identiques, mais fournit également le nombre de messages qui ont été mis en lots ensemble. enter image description here

Solutions pour l'exemple de chaîne de caractères transmis à .log() incluent la concaténation d'un nombre variable de caractères d'espacement à la sortie pour éviter que le contenu dupliqué ne soit reconnu par l'application .log() fonction

var run = function() {
  console.log("hello".concat(" ".repeat(Math.random() * (1000 - 1) + 1)));
}    
setInterval(run, 250);

en utilisant setTimeout() au lieu de setInterval()

var run = function() {
 console.log("hello");
 setTimeout(run, 250);
}    
setTimeout(run, 250);

ou en utilisant console.table()

var run = function() {
  console.table(["hello"]);
}    
setInterval(run, 250);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X