Express:为什么这个GET请求执行了两次?
Express: why is this GET request executed twice?
我有一些用 Jade 编写的代码,其中有一个 link。 link 的目的地由 Jade 生成。单击 link 时,我从控制台注意到 GET 请求被执行了两次。
Why is this? How can I fix this?
这是我的代码:
玉档:
ul.media-list
each paper in paperList
div.panel.panel-default
div.panel-body
li.media
div.media-left.media-middle
a(href='/publication/view/#{paper.id}')
| Some image
div.media-body
div.btn-group(role='group')
//!!! When this link is being clicked, GET is executed twice !!!
a.btn.btn-default(href='/publication/view/#{paper.id}')
| View
控制台:
GET /publication/view/123 200 490ms - 5623
GET /publication/view/123 304 458ms - -
app.js:
var publication = require('./routes/publication');
app.use('/publication', publication);
publication.js:
var express = require('express');
var router = express.Router();
router.get('/view/:id', function (req, res) {
var data;
//Some database functions here
//Just an example
res.render('publication', {someData: data});
});
这只是一个假设,但看起来您的浏览器正在使用某种预测算法来预加载您的 link,甚至在您单击它们之前。 Google Chrome do such things.
Express.js 用 304 Not Modified
响应回答了第二个响应,这表明它是用有效的 ETag 值发送的,以验证先前缓存的响应。
尝试在您的浏览器中禁用网络操作预测。这是它在 Google Chrome 设置中的样子(Settings
-> Show advanced settings...
):
或者您可以尝试在实际点击 link 之前验证是否发送了第一个请求,方法是将鼠标悬停在它上面而不是点击它。
它的问题 Chrome 不会在 Firefox 或资源管理器中发生
我遇到了同样的问题。
我发送的 html 页面包含...
-图片宽度="50" 高度="50" src='doesnt exist'-
原因 -> 获取资源将被调用两次。
如果 src="" 为空或 src="图像存在"
获取资源只会被调用一次...
所以缺少图像 url 在我的情况下导致这个问题...
我有一些用 Jade 编写的代码,其中有一个 link。 link 的目的地由 Jade 生成。单击 link 时,我从控制台注意到 GET 请求被执行了两次。
Why is this? How can I fix this?
这是我的代码:
玉档:
ul.media-list
each paper in paperList
div.panel.panel-default
div.panel-body
li.media
div.media-left.media-middle
a(href='/publication/view/#{paper.id}')
| Some image
div.media-body
div.btn-group(role='group')
//!!! When this link is being clicked, GET is executed twice !!!
a.btn.btn-default(href='/publication/view/#{paper.id}')
| View
控制台:
GET /publication/view/123 200 490ms - 5623
GET /publication/view/123 304 458ms - -
app.js:
var publication = require('./routes/publication');
app.use('/publication', publication);
publication.js:
var express = require('express');
var router = express.Router();
router.get('/view/:id', function (req, res) {
var data;
//Some database functions here
//Just an example
res.render('publication', {someData: data});
});
这只是一个假设,但看起来您的浏览器正在使用某种预测算法来预加载您的 link,甚至在您单击它们之前。 Google Chrome do such things.
Express.js 用 304 Not Modified
响应回答了第二个响应,这表明它是用有效的 ETag 值发送的,以验证先前缓存的响应。
尝试在您的浏览器中禁用网络操作预测。这是它在 Google Chrome 设置中的样子(Settings
-> Show advanced settings...
):
或者您可以尝试在实际点击 link 之前验证是否发送了第一个请求,方法是将鼠标悬停在它上面而不是点击它。
它的问题 Chrome 不会在 Firefox 或资源管理器中发生
我遇到了同样的问题。
我发送的 html 页面包含... -图片宽度="50" 高度="50" src='doesnt exist'-
原因 -> 获取资源将被调用两次。
如果 src="" 为空或 src="图像存在"
获取资源只会被调用一次... 所以缺少图像 url 在我的情况下导致这个问题...