2012-04-12 8 views
5

Ich spielte herum mit node.js und etwas Seltsames passiert, wenn Sie diesen Code ausführen:Variable wird zweimal in node.js http Callback-Funktion erhöht

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); 

Ich würde erwarten, dass es wie ein Seitenaufrufe Zähler verhalten , aber mit jeder Aktualisierung der Browser-Registerkarte bekomme ich das Ergebnis von dem, was i=i+2 anstelle eines einfachen Inkrements zu sein scheint. Kann mir jemand dieses Verhalten erklären?

Antwort

12

Ihr Browser schlägt Ihren Server auch für favicon.ico. Jede Anforderung erhöht sich um i, und die Anforderung für favicon.ico zählt.

Verwenden Sie ein Tool wie Fiddler oder WireShark, um dieses Verhalten selbst zu sehen.

+0

[Ja] (http://mathiasbynens.be/notes/rel-shortcut-icon) Dies ist die Antwort. –

2

Ich wette, es ist die Favicon-Anfrage, die Browser gerne immer wieder senden.

+0

Danke! Ich dachte, es wären 2 Anfragen, aber ich wusste nicht warum. : D –