4

最近、Web ベースのデスクトップに似たアプリケーションを作成するためのフレームワークがいくつか登場しました。例えば​​SproutCoreCappuccino。それらを使用した経験はありますか?感想は?他のフレームワークを見逃しましたか?

StackOverflow で関連する 質問を見たことがありますが、「jQuery または MochiKit または MooTools または Dojo または YUI を使用する」などのほとんど標準的な回答が生成されます。非標準的な 回答をする人もいますが、このフレームワークを使用した経験がほとんどないようです。

ブラウザ用のデスクトップのようなアプリを開発した実際の経験を共有できる人はいますか?

4

8 に答える 8

7

私の見解では、カプチーノはやってはいけないことの一例です。彼らは JavaScript の上に別の言語を実装しましたが、ブラウザーの開発者がすでに激しく戦っている間に既に速度が低下しており、さらに悪いことに、彼らはブラウザー ウィジェットにまったく依存しておらず、すべてのユーザー ナビゲーション エクスペリエンスを壊しています。たとえば、彼らは独自のスクロールバーを実装しましたが、マウス ホイールの使用が機能しなくなるという主な欠点がありました。

私は、UI をブラウザーから可能な限り近くに保ちながら、豊富なウィジェットを提供する ExtJS のアプローチを本当に好みます。

于 2008-09-29T09:52:55.707 に答える
6

これらの高レベルのフレームワークが原因で発生する速度の問題により、多くの大規模な(重要な)アプリケーションでは、プレーンなjQueryのみを使用します。私たちのテストでは、ドラッグ可能なオブジェクトやドロップターゲットが多数ある状況や、長いリスト(1000エントリを超える)が画面に表示されている状況で、すべての高レベルのフレームワークが機能しなくなりました。

これの一部はIE6とIE7の問題(DOMツリーが特定の複雑さに達した後にパフォーマンスが突然劇的に低下し始める)によるものですが、一部はこれらのフレームワークが生成するオーバーヘッドによるものです。

したがって、高レベルのフレームワークはお勧めしません。私の推奨事項は、jQueryを使用して、DOMを直接操作することです。

パフォーマンスを向上させるためのヒント:

  • 可能であれば、サーバー上でHTMLをレンダリングします。
  • HTMLはできるだけシンプルにしてください。
  • DOMツリーに多くの要素を含めることは避けてください。
  • 再帰テーブル構造は避けてください(IEは、比較的少数のレベルのネスト後に突然表示を停止します)。
  • DOMツリーから非表示の要素を削除します。
  • 変更する前にDOMツリーから削除してから、ツリー内で変更するのではなく、再挿入してください。
于 2008-09-29T10:54:08.120 に答える
3

また、ギズモとしてEXTJSをお勧めします。彼らのライセンスは変更されており、すべての人に役立つとは限りませんが、デスクトップのようなことをしたいのであれば、それでも良い選択です。

デスクトップ環境のサンプルページは次のとおりです。http://extjs.com/deploy/dev/examples/desktop/desktop.html

于 2008-09-29T10:41:34.687 に答える
1

Appleは、sproutcoreが機能することを実証していますが、それがどれだけうまく機能するかを見積もるのは難しいです。現在、私は自家製のライブラリセットを使用してWebアプリを構築し、Windowsソフトウェアスイートの機能セットを複製しています(ただし、Webインターフェイスに適合しています)。これまで、特に肥大化を望まなかったという理由で、フレームワークを避けてきました。このアプローチの問題は、すでにフレームワークにある機能を複製するのに膨大な時間を浪費することです。時間の経過とともに、これらのフレームワークに似たものに近づいていくと感じています。

このため、私はextjsにWebアプリを実装する実験を行ってきましたが、驚くほど素晴らしい経験でした。コンポーネントセットは、派手なデモ(Webツールキットで一般的な問題)だけでなく、実際にアプリを構築するのに適しているため、パフォーマンスは優れており、開発の容易さは非常に高くなっています。デスクトップのようなWebアプリの構築に興味がある場合は、絶対にお勧めします。

スケールアップの問題は明らかに当てはまりますが、正直なところ、スケールがそれほど重要ではない状況ではツールキットを使用し、必要な場合にのみ基本的なJavaScriptにフォールバックする方が良いと思います(時期尚早の最適化がすべての根源です)悪の)。Extjsはプロトタイプまたはjqueryの上に重ねることができるため、このアプローチは間違いなく実行可能です。DOM内のコンテンツが多すぎるのを避けることは、通常、オンデマンドでロードおよびアンロードするアプローチです。たとえば、extjsグリッドクラスにはサードパーティの拡張機能があり、データのロードとアンロードを巧みに行うことで、100万行のデータセットをスクロールできます。

于 2008-09-29T11:28:48.787 に答える
1

Javaを使用する場合は、GWT-Ext (下にExtを使用)の使用が非常にクリーンなソリューションになることを検討してください。

于 2008-09-29T11:45:37.310 に答える
1

私はqooxdooが好きですが、プロトタイプではなく JS の OOP アプローチを採用していますが、しっかりしたフレームワークであり、多くの機能を備えています。

于 2008-09-29T11:55:15.883 に答える
0

SproutCore や Capuccino の経験はありません。しかし、この種の作業のために Django の上に Dojo を使用する試みが行われました。遅くてバグがあるとしか言えません。

于 2008-09-29T09:48:54.937 に答える
0

extjs が役立つかもしれません。http://dev.extjs.com/deploy/dev/examples/

于 2010-11-26T09:27:12.977 に答える