2013-03-06 15 views
12

Im utilizzando console.log lotti nel mio javascript per eseguire il debug degli eventi di spostamento del mouse. Il problema è che quando nella console di Chrome non vengono seguite le nuove voci.Google Chrome segue la registrazione della console dello sviluppatore

suo meglio illustrato in questi screenshot:

primo lotto di tronchi va bene perché la sua grande abbastanza per vedere tutto questo sullo schermo:

enter image description here

Pochi secondi dopo : enter image description here

Il registro ha superato le dimensioni di la finestra che mi richiede di scorrere.

Questo rende incredibilmente difficile eseguire il debug degli eventi di spostamento del mouse perché devo passare alla console e scorrere verso il basso, aggiungendo così più voci al registro.

Quindi la mia domanda è: come posso ottenere Chrome essenzialmente coda il registro invece di fermarsi e mi richiede di scorrere.

+0

Qualcuno può aiutare? – DickieBoy

+1

È possibile condensare ogni evento in un oggetto di informazioni, che è possibile espandere all'interno della console per ulteriori informazioni. Inoltre, fare una funzione per rilevare un tasto di scelta rapida per impedire temporaneamente la registrazione – MackieeE

+0

Avevo pensato di fare un comando chiave per fermare la registrazione. Comunque non mi piace la soluzione. – DickieBoy

risposta

6

Con la console aperta, trascinare la barra di scorrimento verso il basso nella parte inferiore della finestra e rilasciarla. Dovrebbe adattarsi all'output per te.

Ci sono voluti alcuni tentativi per farlo funzionare in Version 27.0.1438.7 dev-m. Ma nel Version 27.0.1440.0 canary, non solo è accaduto automaticamente, ma ho potuto ricollegare l'auto-scroll ogni volta che ho provato.

È possibile scaricare Canary da here.

+0

Im usando la versione '25.0.1364.172 stable'. Il tuo metodo funziona su questa versione per alcune registrazioni, quindi Chrome perde il registro, proverò a rilasciare il canary. – DickieBoy

2

Il comportamento predefinito è che Console segua (coda) i registri mentre si dirigono verso l'interno.

Tuttavia, abbiamo avuto un bug nei DevTools in cui se è stato modificato il fattore di zoom (cmd ++) non ha funzionato sempre.

Abbiamo appena fisso che: https://codereview.chromium.org/180733003/ Avrete bisogno di canarino per un po '(a partire dalla data di questo post), ma che funzionerà la sua strada fino a Stabile in circa 10 settimane.

+0

Grazie per aver cercato un post esattamente di un anno: D Non ricordo di aver usato lo zoom quando stavo lavorando su questo. Penso che il problema fosse dovuto all'enorme quantità di registrazione in corso. Non ho dovuto fare alcuna registrazione intensa su Chrome per un po '. Quando l'opportunità si presenta, testerò di nuovo e aggiornerò il post se necessario. – DickieBoy

2

C'è un bug piuttosto pernicioso qui (presente in Chrome per tutto il tempo che ricordo), dove se si registra qualsiasi tipo di expando-item come un elemento DOM o qualcosa del genere, si confonde con la visualizzazione del log, e fa in modo che lo scroll smetta di seguirlo.

Ho risolto questo problema applicando un po 'di ingegnosità e trovando il registro incriminato e non hai nemmeno bisogno di eliminare l'istruzione del registro, devi solo renderlo "più amichevole".Ciò che funziona molto spesso è prendo tali dichiarazioni di registro, come

console.log((mouse ? "mouse" : "touch") + " start on", jqtarg[0]); 

e avvolgerlo in un array:

console.log([(mouse_not_touch ? "mouse" : "touch") + " start on", jqtarg[0]]); 

Puoi provare fare anche altre cose, nel tentativo di rendere il registro più leggibile, come ad esempio un oggetto (non ho provato nulla di tutto questo rigore, può ancora causare il fastidioso fallimento-di-scroll-follow):

console.log({"mouse/touch start on": jqtarg[0]}); 

sulla base di una piccola quantità di prove, sarebbe sembra che se un appe di registro ars nel buffer di log come un oggetto che può essere spostato direttamente (al contrario di richiedere di espanderlo manualmente prima) per far sì che l'ispettore evidenzi l'elemento nel DOM per te, quindi può attivare la "sindrome di scroll lock".

BTW, una cosa utile da tenere presente è che se si registrano ripetutamente le stesse cose ripetutamente, Chrome le "impila" in modo utile come segue: (Vedere? Ho risolto lo scorrimento automatico spostando il mio log in un oggetto! Yay!)

enter image description here

Se non lo fai davvero bisogno di vedere i valori sulla base di coordinate precise, valori stampa grossolani più ... grossolanamente porterà ad un registro più compatto (che ancora vi darà un feedback sensibile conteggi).

Aggiornamento: A volte niente di tutto questo funziona. A volte sei sfortunato e devi solo pulire tutti i registri che non ti servono e registrare la quantità minima di informazioni per evitare di sovraccaricarla e causarne il mancato scorrimento.

+0

Chrome 44 ha ancora questo problema, almeno una volta - mi sono imbattuto in questo problema con l'auto-scroll, e rimuovere gli elementi DOM dagli argomenti 'console.log()' è quello che ha risolto anche per me. – peterflynn

Problemi correlati