Как избежать зависания Chrome при доступе к конечным точкам REST? - PullRequest
0 голосов
/ 04 июля 2019

У меня есть сервер с несколькими конечными точками REST, которые я хочу запрашивать параллельно с Javascript. Я пытаюсь запросить, например, 10 конечных точек одновременно. Однако chrome позволяет выполнять только 6 запросов одновременно, что задокументировано здесь . Итак, моя диаграмма водопада выглядит следующим образом: enter image description here 6 запросов выполняются параллельно, а остальные останавливаются. Я хочу отключить срыв. Как я могу это сделать? Я использую последнюю версию Chrome (75.0.3770.100), и я пробовал несколько значений для поля заголовка Cache-Control, которое я нашел здесь - ни один из них не работал:

max-age=3, must-revalidate

enter image description here

no-cache, no-transform

enter image description here

no-store

enter image description here

Есть идеи, как решить эту проблему? Вот мой тестовый код, с помощью которого я генерирую запросы:

<html>
 <head>
<script
  src="https://code.jquery.com/jquery-3.4.1.min.js"
  integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="
  crossorigin="anonymous"></script>
<script>
let i=0;
while(i<20){
  $.ajax({url: "http://127.0.0.1:9998/abc", headers:{
    'Cache-Control':'no-store'
  }, success: function(result){
    console.log("done");
  }});
i++;
}
</script>
</head>
<body>
</body>
</html>

1 Ответ

0 голосов
/ 04 июля 2019

Возможны два варианта:

  • Использовать HTTP / 2.0 .В HTTP / 2.0 используется только одно соединение, но запросы и ответы мультиплексируются.В результате все запросы могут быть отправлены одновременно, сервер выполняет несколько параллельных и запускает их еще до того, как предыдущие ответы достигли клиента.

  • Использовать несколько имен хостов: ограничение на 6 одновременных подключений на хост.Если вы используете несколько имен хостов, вы можете выполнить более 6 одновременных запросов.

...