5

あなたがcouchdbを使用すると仮定すると、django、rails、またはasp.net mvcの代わりにcouchappを使用しようとするのは現実的ですか? 利点と欠点は何ですか?

4

2 に答える 2

4

はい、通常、CouchAppはアプリケーション全体にAJAXを使用しますが、それは必須ではありません。フォールバックを提供し、JS(および検索エンジン)のないブラウザーのコアコンテンツをレンダリングするCouchAppを作成することが可能です。

これは通常、少し複雑で、レンダリング関数を2回記述する必要があります。ショーまたはリスト関数としてデザインドキュメントに入ると、クライアント側のコードに戻ります。ただし、私はKansoと呼ばれるCouchAppフレームワークに取り組んでます。これにより、コードを一度記述して、可能な場合はクライアント側で実行し、そうでない場合はCouchDBにフォールバックできます。

CouchAppsで私が見つけたもう1つの問題は、検証とアクセス許可のコードが、大きなアプリではすぐに非常に複雑になる可能性があることです。そのため、 Kansoは、DjangoまたはRailsで使用した可能性のある他のモデルシステムと同様のタイプ定義も提供します。

明確にするために:JSがないとブラウザで同じエクスペリエンスを実現することはできませんが、ページの基本的なコンテンツをレンダリングしてから、JavaScriptで段階的に拡張することができます。

これがKansoが設計されたものです:)

于 2011-05-02T16:43:28.117 に答える
1

現状では、CouchApp では基本的に、アプリケーション全体で AJAX を使用する必要があります。一般的に言えば、スケルトン マークアップをダウンロードし、JS を実行し、通常はサーバーに再度アクセスしてから、マークアップを動的に追加するため、ユーザー エクスペリエンスが低下します。(完成したマークアップを事前にダウンロードするのとは対照的に) さらに、データのキャッシュは、ブラウザーとサーバーでは別の獣です。また、AJAX のみのコンテンツがある場合、SEO ははるかに困難です。

基本的に、人々が AJAX のみ (つまり邪魔な JavaScript) の Web アプリケーションに反対するのを目にする理由はすべて、このコンテキストにも当てはまります。

一方、アプリケーション全体 (およびすべての関連データ) を CouchDB を実行している任意のノードに複製することができます。完全な Web サーバー スタックを必ずしも利用できるとは限らないため、アプリケーションのモバイル バージョンがオフライン時に CouchApp のみを実行していることがわかりました。さらに、Rails、Django、Express.js などのフレームワークを学習するのとは対照的に、CouchApp を使用するのは簡単です。

私はデータベースとしての CouchDB の大ファンなので、最終的には CouchApps が完全な Web アプリケーション ソリューションになることを大いに期待しています。しかし、目障りな JavaScript に大きく依存しているため、現時点では実現不可能です。

于 2011-05-02T14:44:15.103 に答える