Отправка списка запросов 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.