/* 我是新手,写了一个小程序统计页面被访问的次数,但是发现一个奇怪的问题。 每次访问页面。sum都会输出两次,最后导致的结果就是第一次显示:你是第1个,刷新一下页面,显示:你是第3个,你是第5个… 我的问题是为什么一次访问似乎会触发两次request事件? 求大虾解惑~~ */ var http = require(‘http’); var server = http.createServer(); server.listen(3333, “127.0.0.1”); var sum = 0; var data = “”; server.on(“request”, function(request, response) { data = "你是第 " + (++sum) + “个.”; console.log(sum); response.writeHead(200, { ‘Content-Type’: ‘text/html;charset=utf-8’, ‘Content-Length’: Buffer.byteLength(data) }); response.write(data , “utf8”); response.end(); });
在方法内部加上这句代码你就明白了:
console.log(request.url);
因为你每次刷新你的浏览器会有两个请求过去,
@xiuxu123 嗯,显示第一次的request.url是/,第二次是/favicon.ico。但还是有点困惑,哈哈~
favicon.ico是浏览器默认请求的,用来显示网站的图标,判断url不等于/favicon.ico就行了
@heimeil 嗯,我也查了一下那个,是网站图标,谢啦~
ico 事件
@MiguelValentine 嗯?可以详细说一下么?
@hanl754 当你的META标签没有定义ICO的话,很多浏览器会自动向服务器请求 /favicon.ico 文件。
@MiguelValentine 哈哈,谢啦!