为什么每次打开网页都要GET两次

likewater · 2019-04-09 16:52:37 · 1467 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2019-04-09 16:52:37 的主题,其中的信息可能已经有所发展或是发生改变。

package main

import (
    "fmt"
    "net/http"
    "html/template"
)

var count int = 1

func demoHandler(w http.ResponseWriter, r *http.Request) {
    t, err := template.New("demo").Parse("htllo {{.}}")
    if err != nil {fmt.Println(err)}

    fmt.Println(r.Method, count)
    t.Execute(w, count)
    count++
    return
}

func demo() {
    http.HandleFunc("/", demoHandler)
    http.ListenAndServe(":8080", nil)
}

func main() {
    demo()
}

每次打开/刷新网页都要GET两次,网页显示不是预期中的hello 1,2,3,4,5 ,而是hello 1,3,5,7,9,具体如下:

win10 cmd 里 go run执行代码,打开127.0.0.1:8080

网页显示:

htllo 1

cmd显示:

D:\go\src>go run ceshizhuanyong.go
GET 1
GET 2

刷新网页

网页显示:

htllo 3

cmd显示:

D:\go\src>go run ceshizhuanyong.go
GET 1
GET 2
GET 3
GET 4

一直刷新,网页显示hello 1,3,5,7,9,把t.Execute放在count++后面,网页显示hello 2,4,6,8,10,这样做好像没有任何意义哈~ 网上找了一下,没找到答案,刚开始学,没有基础,只学过一点js,有哪位大佬回答问题请写的详细一些,如果没有时间写太详细请注明一个方向,我有足够多去查资料,感谢


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1467 次点击  
加入收藏 微博
5 回复  |  直到 2019-04-10 16:41:54
liux95
liux95 · #1 · 6年之前

因为浏览器还请求了 favicon

likewater
likewater · #2 · 6年之前

@liux95 浏览器调用favicon的原理是首先在网页所在目录寻找favicon.ico文件,如果没有找到就去网站的根目录寻找。所以最简单的方法就是将制作好的favicon文件命名为favicon.ico然后上传到网站的根目录下。 上边网上看的,如果我做一个demo.html,根目录放一个favicon.ico,然后 template.ParseFiles("demo.html"),这样是不是就把问题解决了

likewater
likewater · #3 · 6年之前

随便做了个demo.html和favicon.ico,放在.go文件同目录下(src)



    
    
    demo


    count = {{.}}


然后 t, err := template.New("demo").Parse("htllo {{.}}") --> t, err := template.ParseFiles("demo.html")

还是GET两次,浏览器能不能一次把demo.html和favicon.ico都GET到,我先去搜一下~

liux95
liux95 · #4 · 6年之前
likewaterlikewater #3 回复

随便做了个demo.html和favicon.ico,放在.go文件同目录下(src) ```html demo count = {{.}} ``` 然后 `t, err := template.New("demo").Parse("htllo {{.}}")` --> `t, err := template.ParseFiles("demo.html")` 还是GET两次,浏览器能不能一次把demo.html和favicon.ico都GET到,我先去搜一下~

解决了吗

likewater
likewater · #5 · 6年之前
liux95liux95 #4 回复

#3楼 @likewater 解决了吗

没有,搜不到,感觉不太重要,我要做个小网站,先把架子搭起来,慢慢加东西,先学http和template这两个包了,数据库也不懂,还有好多要学的,不想浪费时间

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传