• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:AJAX通信で、ボタンをクリックせずに初めから送信)

AJAX通信で初めから送信する方法

このQ&Aのポイント
  • AJAX通信を使用してボタンをクリックせずに初めから送信する方法を紹介します。
  • ページを開いた時点で検索結果ページをデフォルトで表示させる方法についての情報を探しています。
  • addEventListenerを使用する場合やAJAX通信との絡みで画面がチラツク場合の対処方法についても知りたいです。

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

  • ベストアンサー
  • ss-ak
  • ベストアンサー率58% (23/39)
回答No.1

xmlhttp.jsの中身を見ないと何とも言えないのですが、おそらくloadTextFile()関数の中では、ファイルを非同期で読み込んでいるのでしょうね。 そして、まだファイルの読み込みが終了していない時点でoutput_result()が呼び出されてしまい、データは空っぽの状態のまま、出力処理が行われてしまう、と。 loadTextFile()関数の実装を同期に変更するか、非同期でロード完了後にoutput_result();が呼ばれるように変更するか、というところでしょう。 同期に変更すると、ロードが終わるまでは画面が操作できなくなります。 その方が良いのか、とりあえず操作はできるようにした方が良いのかは、画面が求める仕様によります。 これ以上の具体的なことは、xmlhttp.jsのソースを見ないことには、何とも言えません。

re999
質問者

お礼

回答ありがとうございました。 >ファイルの読み込みが終了していない時点でoutput_result()が呼び出されてしまい、データは空っぽの状態のまま、出力処理が行われてしまう 基準となる点は、ページ読み込み時ではなく、ファイル読込終了時点なんですね。 if ((httpObj.readyState == 4) && (httpObj.status == 200))と書いている場所があったので、 その下で関数を呼び出したら、無事にデフォ表示されるようになりました。 大変参考になりましたー

関連するQ&A