Je suis un simple web server example dans Go.HandleFunc étant appelé deux fois
J'ai inséré une déclaration log
afin que le code résultant ressemble ci-dessous:
package main
import (
"io"
"log"
"net/http"
)
func hello(w http.ResponseWriter, r *http.Request) {
io.WriteString(w, "Hello world!")
log.Println("hello.")
}
func main() {
mux := http.NewServeMux()
mux.HandleFunc("/", hello)
http.ListenAndServe(":8000", mux)
}
Le problème est que chaque fois que je charge le port 8000 dans mon navigateur web, cette fonction est appelée deux fois. C'est un problème parce que j'ai l'intention d'incrémenter un compteur à chaque visite de page. Avec ce comportement, le compteur est incrémenté deux fois. OTOH, si je fais curl localhost:8000
, il est appelé qu'une seule fois. Je pense que c'est quelque chose de vraiment idiot que je suis absent ici.