1

私は最初のスパ mvc 4 アプリに着手しており、Steve Sanderson の講演は素晴らしかったのですが、彼の最終的な配信トラッカー アプリは、同じビュー ページですべて宣言された 3 つのビューで終わります。これは小さなアプリでは問題ありませんが、サイトのさまざまなセクションにさまざまなデータがある場合、これを大規模に管理するにはどうすればよいでしょうか。Facebook スタイルのチャットと同様にチャット ウィンドウを開いたままにし、SignalR を使用してアプリ内の固定セクションでクライアントにデータをプッシュするため、構築したいサイトは 1 つのページにとどまる必要があります。@Ajax.actions を使用して、スパ以外のサイトを作成する場合と同じように、サイトのまったく異なるセクションをロードするだけですか? 計画では、ほとんどの時間、I サイトの特定のセクションにユーザーを留めておきます。

優れたサンプル コードをいただければ幸いです。適切なドキュメントがあり、人気のある mvc/entity フレームワーク用のより成熟したスパ テクノロジを誰かが提案できない限り、ノックアウトと nav.js を備えた沼地の標準的なスパを使用する予定です。

4

1 に答える 1

2

私がしているのは、貧弱な SPA です。これは、基本的に私のサイトを標準の ASP.NET MVC アプリのようにするため、複数のビュー、複数のコントローラー、およびアクションがありdiv、全体のコンテナーとして使用するコンテナーを含むシェル ページがあります。ビューをAjax呼び出しでロードするサイトなので、jQuery ajax呼び出しがたくさんあります.次に、子ビューから呼び出すので、特定の子ビューで特定のものをクリックActionLinkすると、汎用 JS ページ ローダーが呼び出さ れます。GoToPage(controller, action, query) これは、jQuery Ajax を使用して、目的のコントローラー/アクション/ビューをコンテナー div に追加しshell.cshtmlます。ナビゲーションには、Ben Alman のhashchange プラグインを使用しますハッシュ変更イベントを検出し、適切なビューをコンテナ div にロードします。実際のSPAを構築していないため、このアプローチには明らかな欠点があり、SPAファサードを使用してサーバー側アプリを作成しており、実際には、これとサーバーからのみデータを取得する適切なスパとのパフォーマンスの違いがあります( HTML ではありません) は少し目立ちますが、従来の ASP.NET MVC 開発者であれば、これにより、次のような新しいライブラリを使用する必要がなくなります。Sammy.jsこれの最大の欠点は、特にフォームがたくさんある場合、すぐに絡み合った混乱になる可能性がある、繰り返し配線する JavaScript をたくさん書くことです。ただし、一般的なコードをリファクタリングして再利用するために特定の手順を実行できます。要約すると、サーバー側でビューを生成し、Ajax でそれらを取得することは、おそらく最適な SPA ソリューションではありませんが、私にとっては学習曲線が最小でした (実際にはありません 笑)。私は最近DurandalSammy.jsを見てきましたが、最終的に SPA を作成するための非常に実行可能なソリューションを提供すると思います。ユーザーが行っていない場合でも、最初のページの読み込み時にすべてのビューを読み込む必要がないことが特に気に入っています。それらのページにアクセスします。ここでは、すばらしい入門チュートリアルが提供されています

于 2013-05-10T15:11:32.320 に答える