chrome开发工具打开时的双重请求

Double request when chrome developer tools open

本文关键字:请求 开发工具 chrome      更新时间:2023-09-26

我有一个奇怪的问题:我有一个非常简单的节点/expressjs应用程序(我有一个更复杂的一个,但这个简单的例子显示了问题)。这个应用程序有三条路由,如下所示:

var i = 0;
app.route('/login')
.get(function(req, res){
    console.log('login', ++i);
    res.send('login');
})
app.route('/test')
.get(function(req, res){
    console.log('test', ++i);
    res.send('test');
})
app.route('/')
.get(function(req, res){
    console.log('index', ++i);
    res.send('index');
})

相当简单。任何时候这些路由之一被请求,i递增和记录,它工作得很好,除了当chrome开发工具窗格是打开的。当开发工具打开时,请求登录或测试将触发两个请求。以下是日志的结果:

15:45:30 web.1  | index 1
15:45:33 web.1  | login 2
15:45:34 web.1  | login 3
15:45:37 web.1  | test 4
15:45:37 web.1  | test 5
15:45:41 web.1  | login 6
15:45:42 web.1  | login 7
15:45:45 web.1  | test 8
15:45:45 web.1  | test 9
15:45:48 web.1  | index 10

这是怎么回事?这是Chrome浏览器的bug吗?

这是chrome的一个不为人知的问题。

Google在这里有一个讨论,讨论可能的解决方案——我还没有找到一个真正的解决方案,但这应该给你一个良好的开端。

https://code.google.com/p/chromium/issues/detail?id=64810