0

このDartコードを書くとき:

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();
}

要求は 1 回だけ送信されます。サーバーで確認しました。このように開口部を変更すると:

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

できます。リクエストを同期する必要があるのはなぜですか?

また、上記のリクエストは、「localhost:8080/random/10/20」など、同じパラメーターを使用して同じ URL に対して行われます。この URL に非同期リクエストを送信すると、上記のように 1 つだけが送信されます。2 番目のリクエストで、いくつかのパラメータ「localhost:8080/random/11/21」を変更すると、2 つの非同期リクエストが送信されます。

誰でもこの奇妙な動作を説明できますか? 前もって感謝します。

4

1 に答える 1

0

同じGETリクエストは、間違いなくブラウザーによるキャッシュの候補になります。URL にランダムなジャンクを追加するだけでなく、POSTリクエストに切り替えることもできます。応答に適切な Cache-Control または Expires ヘッダー フィールドが含まれていない限り、キャッシュ可能ではありません。

于 2014-09-14T14:13:07.547 に答える