2017-01-23 18 views
0

私たちは、asp.net mvcで書かれた単一ページアプリケーションから多くのパフォーマンスを絞り出すことを試みています。現在のレイアウトは次のとおりです。Asp.net mvcパフォーマンスのSPAアプリケーションサーバーサイドレンダリング

  • クライアント側SPAは、JS/HTML5の+ requireJSとKendoUIで書かれたSQLデータベースと対話する
  • Asp.net MVCサーバ側

当社の主要なパフォーマンスの問題があるように見えますSPA側では、現在のページに必要なJSやHTMLファイルを取得したり、mvc WebApiを介してSQL DBからデータをプッシュしたりプルしたりするために、サーバーとの関係が非常に分かれています。

私は、クライアントのブラウザとサーバーの間の不安定さを制限するためにアーキテクチャを幾分変更したいと考えています。私はサーバー側のレンダリングについてすべてを読んでいますが、現時点では成熟したアプリケーションにそれを置くことが重要な書き換えになるようです。

誰かがこの問題やライブラリをチェックアウトするための方法論についてアドバイスをいただいたことがありますか?

+1

IMHO、あなたの「書き換え」は、最初は「冗談」の理由を特定することから始めるべきです。同じ金額でチャットを終えると、問題は回避されます(例:js/htmlは通常はブラウザでキャッシュされる静的なファイルですが、___が付いていない限り)。 – EdSF

+1

パフォーマンスの問題はクライアント側でユーザーに表示されるか、問題(ユーザーが言う、このアプリは遅すぎる!)またはサーバサイドのリソース(sysadminは言う、それは負荷を処理することはできません)問題? –

答えて

1

私はあなたのパフォーマンスの問題が使いやすさの種類であると仮定しています。ユーザーはアプリケーションが遅いと感じています。そうであれば、人々が実際に覚えていることではなく、アプリケーションが遅くなっていることに気づくべきです(自分の研究/結論のソースをすぐに見つけることができないのは申し訳ありません) 。

しかし、アウェイ。

静的ファイルの問題は問題ではありません

  • 検索、またはむしろ、静的ファイルのバンドルサービスのエンドポイントへ
  • AJAX呼び出し:私は2つの全く異なるものを区別することによって開始します。アーキテクチャ上の変更は必要ありませんが、学習曲線です。あなたはWebGrease(あるいはその代わりのもの)で、そして/またはBundleConfigを使ってそれに対処します。どちらも、すぐに使用できるaspnetテンプレートプロジェクトの一部です。

    api呼び出しの不安定さは非常に異なります。解決はあなたのサービス&アプリケーションデザインを見直す場合です。私はおそらく

    1. で始まります。 websearch q=reduce+chattiness+of+service+design
    2. クライアントがサーバーで行っている会話のシーケンス図を描画します。それらの会話がいつトリガーされるかのスケッチを示します。
    3. これらの写真をもとに、あなたは少数の会話を保持することができる方法について考え始める:
      • は一つの大きなヒットになったこと/キャッシュ可能データを静的ことができますか?
      • Ajaxのデータ読み取りは、1回のヒットでデータの大きなグロブを取得できますか?
    4. また、非同期パターンを使用してユーザーに遅延が見られないことがありますか? Ajaxデータのプッシュは非同期である必要があります。の場合、アプリケーションが移動しないうちにデータプッシュが完了するのを待っているような方法で構成されている場合を除きます。
      • ユーザーが待たないように、データをバックグラウンドでプッシュするアプリケーションfacebook、trelloのUIデザインを調べます。

    最後に、私はそれがすべてのUXデザインではないボンネット下パフォーマンスについてであり得ることを戻って私のオープニングポイントに来ます。ユーザーは簡単にタスクを完了できますか?実際のユーザーに、それが遅いとあなたに伝えましたか?ユーザーと座り、彼らの働きを観察する。実際にはどうしているのですか?

関連する問題