2009-04-03 5 views
1

私はユーザーが色とサイズを選択できるWebページを構築しています。これらが選択されると、インベントリが存在するかどうかを調べるためにルックアップを実行し、これに基づいていくつかのUI要素を更新する必要があります。デザイン決定 - Javascript配列またはhttpハンドラー

多次元のJavaScript配列(すべてのページインスタンスに対して10〜50レコードしかありません)にすべての単一の商品データを置き、クライアント側のルーチンを書くことは、2つの理由があります。 1つはUIを高速に保ち、2つはサーバーへのコールバックを最小限に抑えるためです。私がこのソリューションで心配しているのはコード臭です。

代わりに、HTTPハンドラとJSONを使用するAJAXの純粋な手法、あるいは両方を少し混ぜたハイブリッドを使用することを考えています。私の質問は、ASP.Net 2.0スタックを使用して、この問題に対する最善の解決策について考えていますか?

[編集]

私はまた、このページは、SharePoint環境で実行されることを言及する必要があります。

答えて

4

データが静的であると仮定すると、私はオプション#1に投票します。 JavaScript配列にデータ要素を格納および取得することは、比較的簡単で完全にコントロールできます。サーバーにコールバックすると、多くの障害が発生する可能性があります。また、ページ内のデータをメモリ内に保つことは、全体的なコードが少なくて済み、JavaScriptを基本的に理解している人なら誰にでもわかりやすくなると思います。

+0

+1あなたは良い点を作っています。 – James

+0

ユーザーが選択する前にクライアントサイドスクリプトが唯一の検証でない限り、同意します。クライアントサイドスクリプトを使用すると、ユーザーは配列を変更して、本当に在庫切れのものを選択することができます。 –

+0

私はこの回答に同意します。追加する1つの追加事項:ユーザーは、ブラウザを長時間開いたままにすることができます。オプション1を指定すると、悪い/古いデータに基づくアクションを処理する方法が必要になります。 – AaronSieb

0

私はあなたの2番目の選択肢で遠くまで行くだろう。 AJAXコールがこのケースで長時間実行されていないプロセスであれば、かなり速くなるはずです。

私が取り組んでいるアプリケーションは、AJAXとHttpHandlerを使って多くのことを行い、私たちの呼び出しは高速に実行されます。レスポンスで返されるJSONのサイズを最小限に抑えてください。

0

2番目のオプションを選択してください。少数の項目が関与する場合、AJAX呼び出しはかなりうまく実行する必要があります。あなたはコードをクライアント側から離しておき、クライアントサイドスクリプトが引き起こした可能性のあるブラウザベースの問題を回避し、よりクリーンなアプリケーションを作成してください。

EDIT

はまた、クライアント側のスクリプトは、ユーザによって変更することができると考えています。ユーザーの選択に他の検証がない場合、在庫切れの製品を構成することができます。

+0

ちょっと不思議なことに、AJAXの呼び出しは、シンプルなサービスではなく、より多くのコード(とそのブラウザではより複雑なコード)になると思われます。 –

+0

それは私が本当にまた間に引き裂かれたものです。それがもっと新しいことだからといっても、必ずしもそれが良いというわけではありません。 – James

+0

常にサーバー側の検証が必要です。 – AKX

2

私はそのようなタスクのためにAjaxに反対しており、最初のオプションを投票(実装)しています。

私が理解する限り、あなたのサーバ側でJSの部分が書かれている場合はCode smellsを作成しません。

Ajaxは、少しでも不具合や誤ったサービスが失敗するか、または相互作用が20倍(!)だけ長くなるため、ワイヤレスブラウジングの経験を積んだユーザーです。

私はあなたのサイトよりもあなたのサイトよりも多くのレコードを実装しており、ユーザーはそれを愛しています。私のユーザーの何人かはインターネットカフェ、または疑わしいホテルのWiFiを使用しているので、別の方法では動作しません。

さらに、Ajaxを使用すると、サーバーとクライアント間の対話コードがより複雑になります。これは、Webプログラミングの最も難しい部分です。

+0

+1私はこのように始めて傾いていましたが、 SOコミュニティ。 – James

関連する問題