2010-11-23 22 views
2

私はWebプロジェクトの初期段階にあり、非常に大きな(5000+)カテゴリ、サブカテゴリ&サブカテゴリHTMLフォームにロードする必要があります。jQueryを使用してカテゴリとサブカテゴリに大きなデータセットを解析する

するIは、フォームにをロードし(??これを最適化するための任意の方法を)要求された場合にのみ、サブカテゴリーをつかむためのjQueryを使用してXMLファイルにデータを格納し、検討しています。私はZend Frameworkを使用していますので、毎回MySQLデータベースからロードすることでアプリケーションが大幅に遅くなると思っていました。

私の質問は、この方法には何らかの欠点があることです。カテゴリリストはSQLデータベースで参照する必要がありますか?

多くのおかげで、

アダム

+0

イントラネット?ユーザーにどのブラウザ/プラグインを使用するかを伝える贅沢がある場合は、Chromeのデータベースでビルドを使用するか、Google Gearsのデータベースを使用できます。 – Gidon

+0

XMLの代わりにJSON形式でデータを保存できる場合、JavaScriptエンジンは永遠にあなたを愛します。パースするのが無限に速く、トラバースするのがさらに簡単です(可能な場合)。 – Matt

答えて

0

あなたはここで良いパフォーマンス/応答時間をアーカイブするためにににできることがいくつかあります。

  1. XMLではなくJSONを使用します。 XML より多くの帯域幅をとることができ、それ、その後、読み込むような巨大なデータは、あなたがより多くの書き込みを期待していない限り、書き込みサーバ上のファイル
  2. キャッシュを設定すると、すべての上に再生成は特にして、解析する方法で時間がかかりますこれにより多くのパフォーマンスが向上します
  3. クライアント側の応答性が向上するためには、必要なときにのみデータをロードすることができます。このためにサーバーにファイル構造を展開することができます。そのため、サブカテゴリを含むサブディレクトリが必要です。 jsonファイルなどを使用すると、クライアントに転送されるデータを最小限に抑えることができます。また、ツリーの変更された部分のみを再生成するようにキャッシュを最適化することもできます。

フォームに5000以上のカテゴリを一度にロードすると非常に時間がかかるので、バックエンドの構造の大半はクライアントのスピードアップに役立つため、データベースとzendは通常のキャッシュを自分で処理する必要があります。

+0

ありがとうIvo ..ポイント2に関して、どのようにjsonファイルをキャッシュして再生成するのですか? – null

+0

ZendはJSONをサポートしているようです:http://framework.zend.com/manual/en/zend.json.basics.htmlデータベースに書き込むとすぐに、A)どのような変更があるかを調べる必要がありますあなたはツリーのアプローチをしています)、そしてB)そのデータを連想配列にフォーマットし、それを 'Zend_Json :: encode'に与え、ディスク上のファイルに戻り値を書き出します。 –

0

大きなデータセットがあると言うので、XSLT transformationsを使用してフォームのマークアップを生成することを検討してください。私は同様の状況に直面しており、XSLT/Xpathをの大きな利点に使用しました。

sampleは、そのような場合のXSLTの生の力を示すはずです。

関連する問題