14

ここで数日前にこの質問をしましたが、誰も答えませんでした。
私もそれを尋ねましたforum.javascriptMVC.comが、今は答えがありますが、もう少しアイデアが必要です.

質問:

I read javascriptMVC's documents and I loved it. 
But I don't know how to use it in a large scale project.

サーバー側では、MVC フレームワークが必要であるか、非常に役立つと思います。また、サーバー側の PHP フレームワークも扱ってきました。

私は混乱しています.JavascriptMVCプロジェクトは、ブラウザキャプチャイベントでクライアント側のイベントを処理し、AJAXリクエストを実行し、サーバーからの応答/データを管理し、グラフィカルインターフェイスでユーザーに表示することです.

PHP MVC プロジェクトにはコントローラー (およびアクション) もあり、それらのいずれもが単一のエントリ ポイントを持つ個別のページであることはわかっています。私の要点は、これらのページが HTTP 要求全体であるということです。

これら 2 つのフレームワークの組み合わせは、steal.js などの別の Javascript ライブラリによってロードおよび管理される単一または少数の重いファイル ( js 、 css 、 imgs などを含む) の形式になると思います。これで、ユーザーはサイトとそのアクション (イベントとして) を操作して、ほとんどのことが1ページで発生する Yahoo メールのように、UI で何かを変更したり、AJAX 要求を引き起こしたりする可能性のある js 関数を実行できます。

では、これは PHP のコントローラーとアクションの設計にどのような影響を与えるのでしょうか? 通常、PHP MVC フレームワークでは、多くのコントローラーとアクションは多くのページを意味します。AJAX のおかげで、コントローラーとアクションの数は実際には少なくなるはずです。また、JMVC のおかげで、ほとんどのコントローラー (およびアクション) は AJAX レスポンダーを使用する必要があると思いますが、このコンテキストでレイアウトとビューをどのように処理するのでしょうか?

ついに

  • このメソッド(JMVC + MVC)のさまざまな使用方法について知りたいです。(サーバー側の MVC フレームワークとして Yii を使用し、クライアント側の MVC として JavascriptMVC を使用しています)。
  • また、クライアント側でのデータ管理についても知りたいです。
  • AJAX と Web ソケットをどのように使用できるか、どこで AJAX を使用できるか、どこで Web ソケットを使用できるかを理解したいと思います。
  • local-storage について、シミュレートされたページ データ管理やキャッシュに使用する方法、サーバーからのデータを JSON としてページ形式でキャッシュする方法を理解したいですか? 私は非常に大規模なプロジェクトに取り組んでおり、その基盤を非常に強力に構築したいと考えています。
4

3 に答える 3

4

JMVC フレームワークを Java 化するとします。

  • モデルは AJAX リクエストを使用してサーバーからデータを取得します - JSON の結果を期待します。
  • ビューはサーバーに依存せず、生の HTML を提供します。
  • コントローラーは、JS ファイルを提供すること以外はサーバーに依存しません。

基本的に、サーバーは、データの保存と処理に「使用する必要がある」ものを使用し、クライアントのブラウザーにすべての面倒なことを処理させます。

次に、サーバー側フレームワークを定義する方法を見てみましょう。私が見ているように、いくつかのオプションがあり、それらはすべてかなり似ていますが、多少異なります (すべてが JSON 形式で何かを返します)。

  • CakePHP などの本格的な MVC
  • カスタム実装
  • Web サービスの実装

個人的には WebService を使用しますが、既に使用しています。というか、WebSocket ベースの JSON-RPC WebService を使用しました。本格的な MVC を使用すると、保守性が低下し、サーバーの負荷が大きくなります。ただし、ページを JSON としてフォーマットするビューを実装するだけで可能です...

私の見解では、JMVC クライアントを作成しても、サーバーから新しい HTML を要求できないわけではありません。ただし、要求された HTML には、WebService などから受信したデータを配置する場所を Java ビューが知る必要があるメタデータ以外のデータがないことを意味します。

したがって、JMVC のメイン ページには、単一の

<div id=content></div>

メニューをクリックすると、サーバーからサブページを取得して、コンテンツを にロードできますcontent。次に、ロードされたコンテンツには、WebService リクエストを開始してサーバーからデータを取得し、それに含まれる空のプレースフォルダーに表示するための JavaScript をさらに含めることができます。

于 2013-04-08T06:18:11.787 に答える
3

最初にhttps://stackoverflow.com/a/4458566/718224を確認してから、次に進むことができます。


これを試してください(https://stackoverflow.com/a/8424768/718224から)

いいえ、サーバー側で使用する必要はありませんが、アプリケーションとビジネス ロジックの整理/分離に役立ちますアプリケーションの規模によっては、将来的に非常に役立つ可能性があります。

重要なのは、バックエンド コードを適切に整理することです。そうしないと、モノリシックまたは保守が困難なコードベースになってしまいます。

サーバー側のビューには、HTML と、サーバーに要求を行う場合と行わない場合がある JavaScript が含まれます。これは、実際に PHP を使用して、ユーザーがナビゲートするページを作成していることを前提としています。

AJAX 要求を使用してそれ自体を構築する静的な html ページがある場合は、サーバー側のビューをまったく使用する必要がない場合があります。コントローラーはおそらく JSON データを出力します。その場合でも、モデルとコントローラーの有用性が低下することはありません。


これを試してください(https://stackoverflow.com/a/8424760/718224から)

主要な PHP フレームワーク (CakePHP、Code Igniter、Symfony など) を使用している場合は、MVC を既に使用しています。サーバー側のロジックが、いくつかの本当に単純なスクリプトよりも複雑な場合は、サーバーとクライアントで MVC を使用して、リストされているフレームワークのいずれかを使用する必要があります

今日構築されている大規模な Web アプリの多く (ほとんど?) は、クライアント側とサーバー側の両方のアプリケーション コードに MVC フレームワークを使用する方向に進んでいます。これは、多くの大規模なアプリケーション、特にリクエスト/レスポンス サーバー アプリやイベント ドリブン ブラウザー アプリの懸念事項を分離するための素晴らしいパターンです。


これを試してください(https://stackoverflow.com/a/8427063/718224から)

Backbone.js は、RESTful JSON インターフェイスを介してアプリケーションを接続します。正直なところ、MVC フレームワークと組み合わせると素晴らしく機能することがわかります。RESTful API を構築すると、サーバーで CRUD 更新を非常に簡単に管理できるようになります。サーバー側のコードはすべて、JSON オブジェクトを保存して Backbone.js に送り返すだけです。次に、ほとんどのロジックとマジックを Backbone.js フレームワーク内で実行します。


これを試してください(https://stackoverflow.com/a/8078282/718224から)

まず、Backbone のようなクライアント側の MVC フレームワークは、単一ページのアプリだけのものではありません。これを使用して、より伝統的なアプリの 1 つまたは複数のビューにリッチな対話を追加することもできます。それらは、クライアントに構造とデータの抽象化を提供するだけです。

次に、これらのクライアント側フレームワークは、バックエンド MVC フレームワークと連携するように特別に設計されています。Backbone.js (具体的にタグ付けしたため) モデルとコレクションは REST サービスで動作します。それらは GET/POST/PUT/DELETE 動詞を介して対話し、最終的には非同期要求を行うときにバックエンドのコントローラーと通信します。

Backbone の場合、HTML ではなく JSON を使用します。Rails の場合、これはコントローラーで非常に簡単に処理されます。リクエストが HTML の場合は、ビューを HTML として返します。JSON 要求 (*.json または Content-type) の場合、コントローラーはデータの JSON 表現を返します。Rails と同じように、Django でも複数のコンテンツ要求 (HTML、XML、JSON など) に同じコントローラーで応答させるのは簡単だと思います。

これがあなたを助けますように。

于 2013-04-11T06:49:18.113 に答える
2

クライアント側の Web アプリとリッチなクライアント側の Web ページは、多くの場合jmvc backbones、などを使用します。そのような js ライブラリとHTML5テクノロジを使用するとwebstorage、テンプレート管理などのクライアント側ですべてが発生する Web サイトのようなアプリケーションをさらに持つことができます。サーバーへの ajax 要求/応答により、データを取得/設定したり、ステータスを更新したりします。そして、最初のセクションは、jmvc サイトの方が単一ページの Web サイトに似ています。つまり、hotmail yahoo などです。

于 2013-09-13T12:18:50.740 に答える