2009-06-30 10 views
1

私はかなりのフィールドを持つウェブフォームを持っています(ユーザオプションに基づいて15〜40の間)。ユーザーがフォームの記入を終えると、jQuery.blockUIでそれをブロックし、サーバー側でフォームを処理し、xmlにパックして新しいページを呼び出します。しかし、ページ間の移行には通常1〜2秒かかりますが、減らしたいと思います。ウェブフォームでの処理時間を短縮する方法

データは外部Webサービスに送信され、応答を待つため、すべての処理を次のページで行うことができます。それには最大2分かかります.1秒か2秒はそこに気付くほどです。

したがって、すべてのデータ処理を行い、遷移時間を短縮する簡単な方法はありますか?事前に

おかげ

UPDATE:私はそれがより良いaproachだろうかなり確信しています。しかし、時間が最優先であることはよく分かっています。私はボトルネックを知っていると確信しています。データを解析したり解析したりする方法はほとんど分かりません。フォーム、クエリまたはコードからの休止)。

2秒は、データの解析だけでなく、開発サーバーの低速接続や一般的なスペインの接続速度からも2秒間です。私は80%がプロダクションサーバー上では遅くなることはないと確信していますが、何も高速化することができないというasumingのリスクを実行したくありません。

次に、外部Webサービスをクエリする数分間は私の手の届かないところです。それは、データを取得し、保険の価格のリストをスローする自動車保険会社のカップルにリンクしてプロバイダのWebサービスに連絡しますか? (申し訳ありませんが、正しい単語を知らない)。これは時間が無駄だから、ここでXML構築の2秒間を隠すことができると思う。

私が知らないのは、FormからResultsページにフォーム値を送信し、Ajaxでデータをロードする方法だけです。

答えて

2

私はあなたがなぜ40フィールドを処理するのに長い時間がかかりますかに焦点を当てる必要があると思います。バックエンドの潜在的なボトルネックは何ですか?どのくらいのクエリを実行しているのですか?処理時間を10秒未満に減らすことができれば、処理を処理するページを手に入れることができます。それ以外の場合は、RESTやNServiceBusなどの別のアーキテクチャが必要です。

2

あなたは別のスレッドで処理しようとすることができます。文字列を取り、スレッドを回転させて結果を返します。残念なことに、スレッドプログラミングは「シンプル」とはみなされません。 Btwは通常3秒以下のものとして認識されます。

+0

はい、私は以前これについて考えていましたが、厳しいことを知っています。訪問数が中程度の公共サイトでそれを使用するのは私の知る限りではありません(そうです...) 私は後でスレッディングする –

0

私はあなたの質問を再読し、申し​​訳ありませんが、最初に尋ねることは考えていません。フォームをXMLに解析する必要がありますか?データをJSONにシリアル化し、サーバーに渡したり、デシリアライズしてWebリクエストを作成することは可能ですか? JSON形式はXMLよりもはるかに軽く、JSON.Netなどのライブラリを使用してシリアライズおよびデシリアライズを行います。これにより、処理オーバーヘッドの一部がなくなります。

あなたが呼び出したWebサービスに関して、各リクエストで新しいデータがありますか?とにかくデータの要求が少なくなったり、データの一部を格納したり、定期的にリフレッシュする必要はありますか? MSMQなどのメッセージングサーバーを実行し、スケジュールに基づいてデータを更新し、ユーザー固有のデータを取得したら必要なものだけを要求する可能性があります。 30秒は30秒です。

私はデータについて考え続けています。あなたは200以上のフィールドを持っていると言います。クエリや計算を実行する必要があるかどうかは不明です。多数のレコードがある場合は、検索を高速化する可能性のある別のタイプのスキーマを検討しましたか?ディスクにヒットする必要がないように、静的ルックアップを共有メモリに引き出すことはできますか?

+0

私が構築しようとしているのは、保険計算機です。ユーザーは年齢、市民の状態、車両、保険履歴などのデータを入力します。次に、このデータを第三者のWebサービス(XML)およびJSONを通じて保険会社に送信します。接続。したがって、XMLへの解析は必須です。多くのフィールドは決定ベース(例えばドライバの数)であり、他のフィールドはデータベースから検索されます。だからこそ、2ページ目のデータを処理するほうが良いと思います。 –

+0

うわー、私はあなたの最後の質問に答えなかった、コメントを読み返している...それを短くしなければならない...私は第三者のサービスにクエリを実行する。彼らは計算を実行します。そして、通常、新しいユーザーごとにデータが新しくなります。 –

関連する問題