Rumah > pembangunan bahagian belakang > Golang > Mengapa Pelayan Web Simple Go Saya Hanya Menunjukkan Kiraan Panggilan Bernombor Genap?

Mengapa Pelayan Web Simple Go Saya Hanya Menunjukkan Kiraan Panggilan Bernombor Genap?

Susan Sarandon
Lepaskan: 2024-12-19 10:00:16
asal
817 orang telah melayarinya

Why Does My Simple Go Web Server Show Only Even-Numbered Call Counts?

Mengapa Pelayan Web Mudah ini Dicetak Sekata?

Dalam latihan pengaturcaraan Go ini, pelayan web ringkas direka untuk mengira dan memaparkan berapa kali ia dipanggil. Walau bagaimanapun, apabila memuat semula halaman, nilai yang dicetak kelihatan hanya meningkat dengan nombor genap (cth., 1, 3, 5...).

Memahami Susunan Panggilan Fungsi

Setiap permintaan HTTP yang masuk mencetuskan panggilan ke fungsi pengendali yang ditentukan (HelloWorld dalam kes ini). Walau bagaimanapun, di bawah hud, penyemak imbas membuat permintaan tambahan untuk sumber, termasuk /favicon.ico.

Memandangkan pelayan tidak diprogramkan untuk bertindak balas dengan sewajarnya kepada permintaan favicon, penyemak imbas terus memintanya pada setiap muat semula halaman . Permintaan tambahan ini menambah satu kaunter panggilan.

Melaraskan Logik Kaunter

Untuk mengira bilangan muat semula halaman dengan betul, pelayan perlu mengabaikan permintaan tambahan ini. Satu penyelesaian adalah dengan hanya menambah pembilang apabila laluan permintaan ialah akar ("/").

func HelloWorld(w http.ResponseWriter, r *http.Request) {
    if r.URL.Path != "/" {
        return
    }
    count := atomic.AddInt64(&calls, 1)
    fmt.Fprintf(w, "You've called me %d times", count)
}
Salin selepas log masuk

Sebagai alternatif, pelayan boleh mengecualikan permintaan khusus untuk favicon.ico.

func HelloWorld(w http.ResponseWriter, r *http.Request) {
    if r.URL.Path == "/favicon.ico" {
        return
    }
    count := atomic.AddInt64(&calls, 1)
    fmt.Fprintf(w, "You've called me %d times", count)
}
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa Pelayan Web Simple Go Saya Hanya Menunjukkan Kiraan Panggilan Bernombor Genap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan