【发布时间】:2020-08-19 03:05:49
【问题描述】:
比较 Node 与 Chrome 的响应时间,node 较慢。我正在向同一页面发出请求;发出两个请求,一个来自 Node,另一个来自 Chrome 控制台。
- Chrome v:最新版
- 节点 v:12
- 操作系统:Windows 64x
节点:
const fetch = require("node-fetch");
const url =
"https://poshmark.com/search?query=t%20shirts&availability=sold_out&department=All";
(async () => {
console.time("Load Time: ");
await fetch(url);
console.timeEnd("Load Time: ");
})();
Chrome: 转到 url,然后在控制台中运行它。
(async () => {
console.time("Load Time: ");
var request = await fetch(location);
console.timeEnd("Load Time: ");
})();
结果:
- 节点:~3.746s
- Chrome:1030.53515625ms
有什么办法可以解决这个问题吗?
感谢您的帮助。
【问题讨论】:
-
您是否 100% 确定
fetch()确实阅读了响应的正文?如果你不调用res.json()或res.text()或类似的东西并等待它完成,那么你还没有阅读fetch()的响应正文,只是收到了标题。 -
我担心的是实际请求完成时间没有响应正文。如果您在网络选项卡中检查此请求并移至计时部分,您将能够看到完成请求所花费的总时间。
-
您为
fetch()显示的代码不会读取数据主体,因此这不是一个公平的比较。如果您想说明更完整的代码,请显示。我们需要准确了解您在比较的内容。 -
@jfriend00 - 你说得对,我现在添加了 fetch 与 node fetch 比较,两者的代码几乎相同,但仍然得到不同的结果。
-
您实际上想测量什么?获取标题的时间?或者是获得完整响应的时间?
标签: node.js performance google-chrome http axios