• 締切済み

ajaxのget/post処理速度

ユーザインタラクティブなWebプログラムをPHP5.2で作ってWindowsXP/Apahe2.0のlocalhostで動かしていますが、サーバ側にあまり負担のかからない処理の場合、Ajax(JQuery,JQuery.formプラグイン)のGET/POSTは通常のGET/POSTに比べてResが帰ってくるのが明らかに遅いのですが、これは一般的なことでしょうか? Ajaxが遅い原因としてどんなことが考えらるでしょうか? Ajaxの処理速度を上げる方法があれば教えて下さい。 よろしくお願いします。

みんなの回答

回答No.3

サーバーの処理が遅いのか、クライアントの処理が遅いのか、確認する必要があると思います。 JQueryではなく、prototype.jsなどの別のライブラリを使ったり、 XMLHttpRequest/ActiveXObjectを直接生成して時間を計るなどして、 JQueryのみ遅いのであれば、ライブラリに原因があると思われます。 > サーバ側にあまり負担のかからない処理の場合、 PHPの場合は、 <body><?php echo "OK\n"; ?></body> だけのファイルであっても、$_POSTや$_GETなどが自動的に生成されますから、それなりの負荷がかかると思います。 <form>を使ってPOSTしたときに同じように時間がかかるなら、(通常は体感できないはずですが) サーバーの処理に原因があると思います。 (おそらくPHPのメモリ割り当てがどうとか、CPUの優先順位が低いとか。)

kahata
質問者

補足

私の方で比較している例はプログラムはデータベース(mysql)を検索して表示するプログラムで、全く同じPOSTデータを発信しています。 Ajaxと通常のPOSTとの違いは、mysqlのデータ部分だけを発信する(Ajax)か、その他を含めたhtml全体を発信する(通常POST)かで、サーバ側が発信するデータ量は通常POSTの方が多いのですが......

  • x_jouet_x
  • ベストアンサー率68% (162/236)
回答No.2

サーバ側の処理の問題かクライアント側の処理の問題か、原因を切り分けるために1度、Firefox(ブラウザ)のFirebug(プラグイン)で確認してみてはいかがですか? FirebugならXMLHttpRequestでレスポンスが返ってくるまでの時間も分かりますし・・・。 ちなみにライブラリは違いますが、Ext JSでAjaxを使ってサーバ上にあるDBから約300件のデータをJSON形式で取得するのにおよそ900msかかります。 あくまで私のところの環境ですが・・・。

回答No.1

ところで、Ajaxうけとった、で~たは、どのようなこーどで てんかい(ひょうじ)しているの? JSON ?, text ? そしてそれをひょうじするために innerHTMLでかきこんでいるとか、DOMをつくってくっつけてるとか PHPがわのでーたかきだしのさいてきかとか・・・たくさんありそう

関連するQ&A

専門家に質問してみよう