【发布时间】:2019-04-24 13:11:51
【问题描述】:
我每 5 秒通过 fetch 向服务器发出 10 个请求并重新加载该请求。 1 分钟后,浏览器冻结。
Chrome 只能同时处理 6 个请求,并暂停所有其他请求。
在请求完成之前,一切都被冻结(滚动页面,放大地图)。
Chrome 是否可以同时处理所有请求?
有什么我做错了吗?
我尝试使用异步获取和 Xhr 请求,但结果都相同。
const headers = new Headers();
headers.set('Content-Type', 'application/json');
let _options = {
credentials: 'include',
cache: 'no-cache',
mode: 'cors',
redirect: 'follow',
referrer: 'no-referrer',
headers
};
fetch(url, _options).then(
response => {
if (response.status !== 200) {
console.log(`Looks like there was a problem. Status Code: ${
response.status}`);
return;
}
// Examine the text in the response
response.json().then(data => data);
}
)
.catch(err => {
console.log('Fetch Error :-S', err);
});
【问题讨论】:
-
大多数浏览器不仅仅是 Chrome,限制了对同一域的并发请求数。地图服务器通常通过拥有多个域来解决这个问题,例如..
map1.mapper.com, map2.mapper.com, etc.blog.bluetriangle.com/blocking-web-performance-villain -
如果我是对的,这不是并发请求的数量,而是在这些请求期间整个页面阻塞。恕我直言,多个域不能解决这个问题?
标签: javascript google-chrome request fetch