Отправка списка запросов HttpRequest на тот же URL

Когда я пишу этот код дартс:

for(int i=0;i<nbAleas;i++){
   HttpRequest request=new HttpRequest();
   // end of request event
   request.onReadyStateChange.listen((_) {
      if (request.readyState == HttpRequest.DONE &&
         (request.status == 200 || request.status == 0)) {
          handleResponse(request.responseText);
      }
   });

   // error event
   request.onError.listen((Object error)=>handleError(error));
   // method and url
   request.open("GET", urlServiceRest);
   // send the request
   request.send();
}

запрос отправляется только один раз. Я проверил это на сервере. Если я изменю отверстие так:

request.open("GET", urlServiceRest, async:false);

оно работает. Почему запросы должны быть синхронными?

Кроме того, вышеупомянутые запросы направляются на один и тот же URL-адрес с одинаковыми параметрами, например "localhost:8080/random/10/20". Если я отправляю асинхронные запросы на этот URL-адрес, отправляется только один, как указано выше. Если для второго запроса я изменю некоторые параметры "localhost:8080/random/11/21", то отправляются два асинхронных запроса.

Кто-нибудь может объяснить это странное поведение? Заранее спасибо.

1 ответ

Такой же GET запросы обязательно будут кандидатом на кеширование браузером. В дополнение к добавлению некоторого случайного мусора в URL, вы можете попробовать переключиться на POST Запросы; которые не могут быть кэшированы, если ответ не включает в себя соответствующие поля заголовка Cache-Control или Expires.

Другие вопросы по тегам