web-dev-qa-db-ja.com

ajaxが多いWebアプリケーションのパターン

これまで、私はWebアプリケーションを開発するためのMVCパターンの大ファンでした。ウェブの場合、私は主にPHP(KohanaおよびCodeIgniterフレームワークを使用))およびRuby(RoR)で開発しました。

私のアプリケーションがAjax側で重くなると(単一ページのアプリケーションなど)、MVCの非常に基本的な概念を裏切らざるを得ないことに気づきました。JavaScriptがほとんどの作業を行っています。ビューまたはより多くのjs/jsonコードを要求するためにコントローラーを呼び出すのは間違っているようです。

すべてのルーティングジョブをコントローラーで維持するために努力した後、今ではそれらを基本的にそれらとJavaScript(つまり、フレームワークのPoV、ビューの一部)の間で分割しています。 jsonを要求すると、MVC Subversionはさらに明確になります。要求を実行するjsコードisコントローラー。フレームワークのコントローラーは、モデルのデータのプロキシとして機能しているだけです-私が実際に求めているのは、.

では、何を調べればよいですか?

例えばbackbone.jsとドキュメントベースのjson吐き出しデータベース(couchDB)をバックエンドとして使用する、pure-javascriptアプリケーションについて考えていましたが、私のリレーショナルデータベースは大好きです。

別のオプションは次のようになります。PHP/ Ruby/go/whatnotで「ルーティングモデル」を作成します。それらはリクエストを分析し、dbを呼び出し、jsonを返します。

このアプローチは私には興味深く見えますが、実質的な文書や学術的分析が欠けているため、飛躍を少し恐れています。

アイデア?

12
cbrandolino

学術的分析がない場合は、自分で行ってください。次の小規模プロジェクトを試してみて、どのように気に入っているかを確認してください。一般的には使用されていなかったにもかかわらず、彼がスタートアップにLISPを選んだ理由についてのPaul Grahamのエッセイを読んでください。 http://www.paulgraham.com/avg.html

MVCのJavaScriptフレームワークはたくさんあります。主にJavaScriptアプリケーションを構築する場合は、それを実行します。

Railsまたはデータベースのラッパーである使用するフレームワークであればどれでも、残りのAPIを構築するだけで、リレーショナルデータベースをあきらめる必要はありません。APIを次のように呼び出すだけです。これがサーバーベースのロジックアプリケーションの場合は、データベースを呼び出します。

さらに、この方法でアプリを構築すると、オフラインサポートを非常に簡単に構築できます。

1