2011-11-28 11 views
9

Sto lavorando su applicazioni JavaScript sulla piattaforma che non ha il supporto per l'output di registro, non consente l'apertura di nuove finestre per l'uscita logger e non ha nulla come Firebug o Safari debugger su di esso ...JavaScript AJAX logger a distanza

Finora stavo usando lo floating <div> su z-index 2 e ho inserito il testo all'interno, ma questo non è sufficiente. Sto cercando un po 'di leggerezza logger JavaScript JSONP e alcuni PHP o controparte server Tomcat ...

Grazie Sten

risposta

13

recentemente ho incappato in questa presentazione di N. Zakas, e implementato la tecnica spiegata lì. E 'abbastanza semplice, ma IMHO molto efficace

http://www.slideshare.net/nzakas/enterprise-javascript-error-handling-presentation

l'idea è di rilasciare semplicemente una chiamata a un componente lato server (io ho usato un gestore .net ma potrebbe essere un file php così), che richiede un po' param, registra i valori param e restituisce un flusso di immagini 1x1. Quello che mi piace di più è che non è necessario coinvolgere chiamate ajax.

Il codice della presentazione è la seguente:

function log(severity, message) { 
     var img = new Image(); 
     img.src = "log.php?sev=" + encodeURIComponent(severity) + 
     "&msg=" + encodeURIComponent(message); 
    } 

    log(1, "something bad happened"); 
+0

Wow! Sembra abbastanza intelligente, hai qualche implementazione lato server per questo? Qualche servlet php/tomcat con script UI che lo visualizza? Sarebbe bello avere anche il lato server ... – STeN

+0

Nessun codice php sfortunatamente, ma dovrebbe essere abbastanza semplice: basta prendere i parametri e chiamare il gestore di log. – mamoo

+1

Credo che dovrebbe essere img.src ** = ** "log.php", non img.src ** + ** log.php. –

3

Un'alternativa a ospitare il proprio server di registrazione potrebbe essere JSConsole.com. È un debugger remoto generico per JavaScript. Basta registrare un listener, incollare il tag script che genera nella pagina, quindi attivare un'istanza su qualsiasi dispositivo. Il debugger è bidirezionale, quindi non solo la registrazione viene inoltrata alla console remota su JSConsole, è possibile accedere completamente all'ambiente JS sul client remoto.