24

以前は MVC 3 Razor エンジンを使用してページをレンダリングしていました。時々、AJAX 呼び出しを使用して、Razor でレンダリングされた HTML を転送し、JQuery を使用してページに挿入する必要がありました。新しいプロジェクトが始まるので、私たちにとって新しい MVC 4 シングル ページ アプリケーション フレームワークを利用することを検討しています。私はそれを一目見ただけで、複雑な気持ちになりました。一方では、すべてのデータが JSON によって転送され、クライアントがそれらをレンダリングし、サーバーとネットワークに最適な UI 関連のロジックをエンコードするすべての仕事を行うことを意味します。パフォーマンス。一方、クライアント (HTML+JavaScript) は、たくさんの魔法の文字列とその内部の隠れた関係により、はるかに重くなり、維持するのが難しいと思われます。VS intellisense、type-safed に慣れました。

Razor と比較して、SPA を使用することの長所と短所はありますか? ありがとう

4

2 に答える 2

21

Razor は、SPA (シングル ページ アプリケーション) がクライアント (Web ブラウザー) で使用されるアーキテクチャ アプローチであるサーバー ベースのテクノロジです。どちらも一緒に使用できます。

大まかに言うと、SPA はレンダリングとデータ取得をクライアントに移します。Web サーバーは、データベースの前に位置するサービス層になります。MVC パターンは、SPA を使用する場合に最適です。これには、Knockout.js や Backbone.js などのフレームワークを使用できます。最終的な結果は、リッチで応答性の高いデスクトップのようなエクスペリエンスです。

これを達成するには、JavaScript プログラマーの血統であるか、JavaScript を学ぶ意欲が必要です。

はい、ビジネス要件を C# から JavaScript に移行しています。Visual Studio では、javascript の intelli-sense が制限されています。JavaScript に自信を持つには、単体テストに頼る必要があります。良い面は、豊富​​なユーザー エクスペリエンスです (gmail や Google マップを考えてみてください)。

于 2012-05-10T15:53:03.877 に答える
4

ここでのトレードオフのほとんどについて、あなたはすでにかなりよく知っているように思えます。SPA を使用するとネットワーク負荷が軽減され、処理の尺度がクライアントに移行します。ただし、コードの複雑さが増し、システムを簡単に保守するのが少し難しくなります (単純に複雑さが増したためであり、SPA に固有のアーキテクチャ上の問題によるものではありません)。

留意すべきもう 1 つの点は、互換性です。あなたの質問へのコメントで「誤った選択」について言及した理由は、Javascript が無効になっている人々がサイトを使用できるようにするには、通常のページ全体のビューを提供する必要があるためです。これは、SEO のためにも良い考えです。クローラーは、JS が無効になっているユーザーとしてサイトを閲覧し、サイトのインデックスを作成できます。次に、サイトはそのような着信 URL を適切に処理する必要があります。これにより、JS が有効になっているユーザーは、SPA で同じコンテンツを見ていることがわかります (「JS なし」ビューで不必要にダンプされるのではなく)。

上記に役立つ可能性として言及したいことがありますが、それはSPAの理想を壊します。つまり、JSON データではなく、いくつかの場所で Ajax によって読み込まれたパーシャルを使用します。たとえば、サイトに典型的な「Contact EMail」フォームがあるとします。SPA のコンテキスト内でロードする必要がありますが、AJAX を介してパーシャルをロードする方がおそらく簡単です。(確かにそうです。電子メール フォームに表示するフィールドを記述した JSON オブジェクトを使用することもできます)。

「データ」よりも「コンテンツ」であるコンテンツもある可能性が高く、パーシャルと Ajax を介してロードしたい場合があります。


SPA は確かに興味深いプロジェクトであり、私自身も展開しようとしています。JSON とパーシャルを組み合わせて使用​​しましたが、それはあなた自身の選択ではないかもしれません。

于 2012-05-10T15:12:59.107 に答える