2012-04-12 6 views
5

stavo giocando intorno con node.js e qualcosa di strano accade quando si esegue questo codice:variabile viene incrementato due volte in funzione di callback node.js http

var http = require("http"); 
var i = 0; 

function onRequest(request, response) { 
    response.writeHead(200, {"Content-Type": "text/plain"}); 
    response.write("You're number " + i++); 
    response.end(); 
} 

http.createServer(onRequest).listen(8888); 

mi aspetterei che si comporti come un contatore di pagine viste , ma con ogni aggiornamento della scheda del browser ottengo il risultato di quello che sembra essere i=i+2 invece di un semplice incremento. Qualcuno potrebbe spiegarmi questo comportamento?

risposta

12

Il browser sta colpendo anche il server per favicon.ico. Ogni richiesta incrementa i e la richiesta per favicon.ico conta.

Utilizzare uno strumento come Fiddler o WireShark per visualizzare questo comportamento.

+0

[Sì] (http://mathiasbynens.be/notes/rel-shortcut-icon) Questa è la risposta. –

2

Scommetto che è la richiesta favicon che i browser adorano inviare più e più volte.

+0

Grazie! Pensavo facesse 2 richieste, ma non sapevo perché. : D –

Problemi correlati