• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ajaxでhtmlを返して画面に描画…凄く遅い)

ajaxでHTMLを返して画面に描画…凄く遅い

このQ&Aのポイント
  • 画面描画に時間がかかるajax処理について
  • HTMLデータの表示が重くなる問題について
  • サクッと表示させる方法を教えてください

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

  • ベストアンサー
回答No.3

jQueryを使わずにJavaScript(DOM)ネイティブのinnerHTMLを使えば最速です。 フォームフィールドのinnerHTMLはブラウザ依存がでる可能性があるので、 <select>のinnerHTMLではなく、<select>の親要素のinnerHTMLに、"<select 略><option>~</select>"として入れる方がいいと思います。 イベントハンドラを登録された要素を削除するとメモリリークになる可能性があるので注意してください。 イベントハンドラを削除してからinnerHTMLに代入すると問題ありません。

その他の回答 (2)

  • hitomura
  • ベストアンサー率48% (325/664)
回答No.2

> 別途csvの画面などは用意する予定です。 なるほど、ならばそのCSV画面用に送られるCSVデータを使ってoptionタグを作ってやればいいのかもしれません。 あとはお客様に選択肢1万件のselectを試させて「やっぱりこれは使いづらいな」と思わせ、インターフェースの変更を認めていただくところですが、…… > ごもっともなのですが、この作りなので仕方ないのですよね…。 で言っている「仕方ない」理由を説明していただければもう少し適切な回答がつくと思います。

  • hitomura
  • ベストアンサー率48% (325/664)
回答No.1

おそらくデータ通信が一番のボトルネックでしょうから、HTMLタグ込みで送受信するのではなくoptionタグを生成できるだけのデータを送受信してブラウザ側でそのデータからoptionタグを作ってやるのが…… ……って、選択肢が(最大)1万ですか!? 想像してみてください、1万個の選択肢を見ながら選択するデータを見つけなくてはならないとしたら、あなたはどう思いますか? 検索で候補を絞り込ませるなりデータのカテゴリ分けを施すなりして選択肢を減らすほうがいいのではないかと思います。

ginfix
質問者

お礼

ごもっともなのですが、この作りなので仕方ないのですよね…。 別途csvの画面などは用意する予定です。

関連するQ&A