несколько запросов с fetch и chrome работают одновременно только с 6 файлами, а другие запросы будут остановлены - PullRequest
1 голос
/ 24 апреля 2019

Я делаю 10 запросов к серверу с выборкой и перезагружаю это каждые 5 секунд. Через 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);
  });

введите описание изображения здесь

1 Ответ

1 голос
/ 05 мая 2019

Попробуйте сделать меньше запросов

Я предполагаю, что у вас есть контроль над кодом на стороне сервера, и что все запросы направляются на один и тот же сервер.В каком случае, для каких запросов?

Эти 10 запросов, которые вы делаете каждые 5 секунд, получают ли они разные биты данных из одного и того же источника?Например ... один запрос получает новый комментарий, другой запрос получает имя нового зарегистрированного пользователя, другой запрос получает первую десятку и т. Д.?В этом случае выполняет все 10 из этих действий на стороне сервера в одном запросе и возвращает их клиенту сразу .Один запрос может занять немного больше времени для обработки, но вы значительно уменьшите пропускную способность и нагрузку на клиента.

В качестве альтернативы или дополнительно учтите тот факт, что вы делаете один и тот же запрос снова и сноваснова.Если вы запрашиваете одни и те же данные каждые 5 секунд и интересуетесь только когда они меняются, попробуйте использовать веб-сокеты .Вместо того, чтобы повторять запросы каждые 5 секунд, откройте одно соединение через веб-сокет и попросите сервер отправлять вам эти данные либо каждые 5 секунд, либо всякий раз, когда сервер узнает, что они изменились.

...