2017-03-24 15 views
0

私たちのアプリケーションは角度を使用しており、多くのリクエストを受けています。リクエストのグループ(Request BCD)は、別のリクエストによって返されたデータを見ることに依存しています(添付を参照してください)。ページを最初にロードすると、BCDリクエストが送信され、Aリクエストが同時に送信されます。要求からデータが返されると、BCD要求が再度送信され、以前のBCD要求が中止(キャンセル)されます。Javascript - キャンセルされたリクエストはパフォーマンスに影響しますか?

私の質問です:とにかくリクエストがキャンセルされたため、これはページの読み込みに影響しますか?私は、BCDの要求がAの要求を待ってからAの要求から返されたデータを見ることを約束するようなものを実装すべきでしょうか?

Screen shoot 1

+1

XHRがasyncであるため、リクエストをキャンセルしても影響はありません – Rajesh

+0

これは、あなたの一番の答えがあなたの指先であるほど広い、そして曖昧な質問です。あなたがパフォーマンスを見る理由を与えられている場合、それを測定し、違いがあるかどうかを確認してください。これは、どこに問題があるかどうかを判断するもっとも簡単な(そして最も適切で正しい)方法です。 – Archer

答えて

0

エンジンなどの追加作業が要求をキャンセルする特定のアクションを実行する必要がありますがあります。いくつかのフラグを更新するとともに

  • readystatechange
  • 進行
  • 中止
  • loadend

:あなたは手順here

あなたがエンジンには、次のイベントを発生する必要があります見ての通りを見つけることができます。しかし、これらの作業は非常に時間がかかり、パフォーマンスの遅延はごくわずかです。


編集1:

あなたがconcept-event-fire-progressを参照している場合は、イベントがabort除いとにかく解雇されます言及しました。ステータスに基づいてerrorまたはloadまたはtimeoutとなります。しかし、リクエストをキャンセルすると、エンジンがすぐにこれらのイベントを起動し、時間がかかることがあります。しかし、再び、総時間は無視できる程度です。

+0

返事ありがとうRajesh! 中止要求を発生させることはごくわずかですが、私には同じように感じます。 しかし、この要求は別の要求が返されるまで中止されません。この場合、私は4つの要求を撮影していますが、4つの要求が1つの要求よりも多くの時間を要すると思いますか? 4を作る (プラス、おかげで再び返信のために、私はそれは大きな時間や小さなを遅らせ、この楽観的に関係なくするつもりですが、私は知っているだけで興味を持って、それは1つのリクエストと多くの要求を撮影するために同様の時間がかかっている) –

+0

はいリクエストはもう少しかかるでしょうが、これよりもあなたのものがあります。リアルタイム更新を望むなら、いつでもWebソケットを調べることができます。また、パフォーマンスに合わせて 'console.time'を見ることもできます。ウェブサイトにはパフォーマンスに影響はありませんが、負荷が増加するとサーバーに影響を与えます。 – Rajesh

+0

ありがとうございました。感謝 –

関連する問題