• 締切済み

XMLデータを表示するときの処理速度について

データとして 約1万行の XMLファイルを作成して、それを java script ならびに 非同期通信で Web siteへ表示するようにしました。たとえば、データ中の住所が「札幌市」の含んでいるものを検索して表示するとか そういうものです。困っているのは、とにかく 処理速度が遅すぎるんですね。 結局、あまりに動作が遅いので それでは使い物にならず、せっかく作った XMLのデータをいくつかに分割せざるを得ませんでした。何かいいほうはないでしょうか。SAPというやり方があるようですが、 素人にはかなり難しいと聞いているし。もう少し簡単な方法で なにかあれば、 大ざっぱなことでもよろしいですから教えていただけば幸いです。

みんなの回答

  • dummyplug
  • ベストアンサー率58% (134/230)
回答No.1

技術的な質問だと解釈すると、もう少し技術的な書き方をしてくれないとアドバイスのしようがありません。 例えば、 ・1万行と言うが、一行に含まれるデータはどれくらいなのか ・検索はどういうデータから検索をしているのか。どういうコードでやっているのか ・動作が遅いとは具体的にどれだけの時間がかかっているのか。そのときブラウザには何を使ってどういうPCで実行しているのか。どれくらいの時間になればよいと考えているのか ・データ分割すると問題が解決するのか ・そもそも全体のうちのどこが遅いのかはすでにわかっているのか ・サーバサイドでの実行でなくてAjax(?)でやる必要がある案件なのか ということがさっぱりわかりません。 なので、「プログラムの書き方が悪いんじゃない?」という可能性もあれば「その仕様では希望の速度を出すのは無理」ということもあり得ます。Ajax的にはデータ分割して済むのなら(それを聞いただけでは)それでいいのではないかという気もします。(別に不要なデータまでクライアント側に抱え込むこともないでしょう。) SAPに関しては、私の知っている"SAP"の中でこの案件に関係ありそうなものがないので(難しいかどうかも含めて)ちょっとわかりません。 「Web siteへ表示」、「素人には~」という言い方をされているところからすると質問者は素人の方なのかなとも思う一方、Javascriptでそれなりのコーディングをできる方なのか(という前提で話をしていいのか)というのもよくわからないと思いました。

tonbeisan
質問者

お礼

丁寧なご解答ありがとうございます。今回やったのは java script上でdomを使って xmlのデータを webサイトに表示するというごく単純なものでした。処理速度については、webサイト上で クリックした時のページのリロードする速度が遅いということです。その面では、同期通信とまったく変わりませんでした。ご指摘のという「Ajax(?)でやる必要がある案件なのか」という文を読んで、なるほど確かにわざわざ ajaxを使う必要はなかったかもしれないと思い始めました。興味本位で無理してajaxを使ってしまったかなと思っています。「サーバサイドでの実行でなくて」という点については、最近までphpをやっていなかったもので、今後はデータの量の多いもの扱うためにデータベースを少しずつ学んでいくつもりです。ということで、結論は、ajaxが何が得意、不得意かを知らずに、ajaxを使ってしまった。ということで、今後はそこらへんをよく考慮していくつもりです。ありがとうございます。