• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Ajaxによる非同期通信のイベントリスナ)

Ajaxによる非同期通信のイベントリスナ

このQ&Aのポイント
  • Ajaxによる非同期通信のイベントリスナは、(1)の実行後も呼ばれることがありますか?
  • JavaScriptで関数を実行する際、ローカル変数xhrが解放されると、関数内で設定したイベントリスナも消滅します。
  • もし、(1)の実行後も(2)が呼ばれる場合、どのような仕組みがあるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • think49
  • ベストアンサー率59% (285/482)
回答No.1

onreadystatechange イベントは xhr.send(null) 呼び出し後でなければ発火しない為、(2) は必ず、(1) の後に呼び出されます。 ローカル変数は通常、関数処理後にGCが開放しますが、クロージャが発生している場合はその限りではありません。 xhr のHTTPリクエストが完了した時に xhr は役目を終える為、実装が不要と判断した任意のタイミングでGCがxhrを開放します(実装依存)。 # Re: Mol10keさん

Mol10ke
質問者

お礼

think49さん 遅れましたが、回答ありがとうございました。 頂いた回答を元に下記仕様書も参照し、より深く回答内容を理解できました。  https://xhr.spec.whatwg.org/#garbage-collection 本当にありがとうございました。

関連するQ&A

専門家に質問してみよう