Javascript Chrome请求比其他浏览器请求耗时更长
我的网站的一位用户注意到,对我的API发出GET请求的无限滚动函数的加载时间严重延迟。在进行测试时,这似乎只发生在Chrome和Opera中,其他浏览器提供了近乎无缝的体验 因此,经过一些测试后,我决定做一些时间日志记录(很抱歉,由于声誉太低,我无法在这里发布内联图像): 这些日志来自相同的调用,正如您所见,chrome大约需要3000毫秒,而firefox大约需要90毫秒。IE/Edge具有与Firefox相同的性能 为了进一步揭开谜团,“网络”选项卡似乎正确地报告了毫秒(除了一些例外,大约100毫秒,但远不及3000毫秒): 现在我要调用的实际代码是:Javascript Chrome请求比其他浏览器请求耗时更长,javascript,google-chrome,firefox,vuejs2,axios,Javascript,Google Chrome,Firefox,Vuejs2,Axios,我的网站的一位用户注意到,对我的API发出GET请求的无限滚动函数的加载时间严重延迟。在进行测试时,这似乎只发生在Chrome和Opera中,其他浏览器提供了近乎无缝的体验 因此,经过一些测试后,我决定做一些时间日志记录(很抱歉,由于声誉太低,我无法在这里发布内联图像): 这些日志来自相同的调用,正如您所见,chrome大约需要3000毫秒,而firefox大约需要90毫秒。IE/Edge具有与Firefox相同的性能 为了进一步揭开谜团,“网络”选项卡似乎正确地报告了毫秒(除了一些例外,大
loadMore() {
console.time('start load');
//some extra stuff here
console.timeEnd('start load');
console.time('state api call');
this.$APIService.getCards(this.deckId, this.page, this.searchInput, this.lastId)
.then(res => {
console.timeEnd('actual call');
console.timeEnd('state api call');
//some more stuff here
})
}
“this.$APIService.getCards”调用只是我的apihandler:
getCards (deckId, page, searchInput,lastId) {
console.time('actual call');
return Api().get('cards?deckId=' + deckId + '&lastId='+lastId + '&search='+ searchInput)
},
其中“Api()”是我的axios对象:
axios.create({
withCredentials: true,
baseURL: baseURL
})
另一件需要注意的事情是,我的服务器只在延迟后接收请求,因此这将与网络标签对应,说明它只需要大约100毫秒
那么,有人知道为什么会发生这种情况吗?正如您所看到的,我确实让时间日志在请求之前就开始,在收到结果之后就结束。为什么只在Chrome中执行调用之前会有延迟
提前谢谢 首先检查是否未选中禁用缓存(开发工具->网络)。在两个浏览器上都选中了禁用缓存。这意味着它们都将执行非缓存请求。我不认为这与缓存有任何关系,因为它实际上在发送请求之前有一个延迟,只在chrome和opera上发送。我从2016年的一个有同样问题的人那里找到了一条线索,但他最后把它写成了一个“chrome bug”。()然后分析浏览器的时间线(性能选项卡)。你应该看看在3秒内会发生什么。。