Dart 将HttpRequest列表发送到同一URL
当我编写此Dart代码时:Dart 将HttpRequest列表发送到同一URL,dart,dart-html,Dart,Dart Html,当我编写此Dart代码时: for(inti=0;ihandleError(error)); //方法和url 打开(“获取”,urlServiceRest); //发送请求 request.send(); } 请求只发送一次。我在服务器上验证了它。如果我这样修改洞口: request.open(“GET”,urlServiceRest,async:false); 它起作用了。为什么请求应该是同步的 此外,上述请求使用相同的参数对相同的URL进行,例如“localhost:8080/rand
for(inti=0;ihandleError(error));
//方法和url
打开(“获取”,urlServiceRest);
//发送请求
request.send();
}
请求只发送一次。我在服务器上验证了它。如果我这样修改洞口:
request.open(“GET”,urlServiceRest,async:false);
它起作用了。为什么请求应该是同步的
此外,上述请求使用相同的参数对相同的URL进行,例如“localhost:8080/random/10/20”。如果我将to async请求发送到此URL,则只会如上所述发送一个请求。如果对于第二个请求,我更改了一些参数“localhost:8080/random/11/21”,则会发送两个异步请求
有人能解释这种奇怪的行为吗?提前感谢。同样的
GET
请求肯定会被浏览器缓存。除了向URL添加一些随机垃圾外,您还可以尝试切换到POST
请求;除非响应包含适当的缓存控制或Expires标头字段,否则这些字段不可缓存。对此我没有答案,但听起来像是缓存行为。无论如何,出于性能原因,我宁愿“批处理”您的请求,而不是创建一个包含许多HttpRequest的循环。您可以通过在URL中添加类似以下内容来测试它是否正在缓存:?-nocache=${DateTime.now().millissecondssinceepoch}
。这将保证每个url都是唯一的。你们两个猜对了。这是一个浏览器缓存的问题。我在localhost:8080/random/10/20/$I中更改了我的URL,其中$I是区分每个请求的计数器。现在,连续的异步请求可以工作了。多亏了你们两个。