0

私は MVVM を初めて使用します。バックエンドにモデルがある場合、データベースまたはその他のサービスからデータを取得している ac# ライブラリなどを理解したいと思いました。モデルはビューモデルにどのように通知しますか。私はMVVM INotifyprovierがWPFに対してそれを行うことを理解しています(どこかで読んでください)が、Webアプリベースのシナリオについてはどうですか、JavaスクリプトのViewmodelは常にモデルにpingを実行して、モデルに変更があるかどうかを識別し、次に伝播する必要がありますUI。ビューモデルは常に10分程度の間隔でAjaxリクエストをasmxまたはapiに送信する必要があると想定しています(ほんの一例です)。それがエンドツーエンドで機能する方法です。どんな例でも素晴らしいでしょう。

プロパティの 1 つは自動 UI 更新であるため、定期的にサーバーから新しいデータを要求する必要があると想定しています。私が Web で目にする多くの例は、ViewModel と View の間でやり取りするだけですが、Model、ViewModel、および View をすべて組み合わせたものはほとんど見当たりません。

サーバーからクライアントにpingを送信するSignalRを使用すると、ビューモデルが更新され、ビューが更新される可能性があると考えることができます。

しかし、Sever から新しいデータ セットを要求する必要があるたびに、Knockout の誇大宣伝とは何なのかというと、Jquery はノックアウト ライブラリで Declarative バインディングのものを除いて、しばらくの間それを行ってきました。

誰かが私を訂正できれば感謝します。

ありがとう

4

1 に答える 1

1

サーバーにはオブザーバブルの概念がないため、新しいデータをフェッチするのはクライアントアプリケーション次第です。サーバーからのjavascriptデータを監視対象に自動的にマッピングできる便利なマッピングプラグインもあります。そうすれば、データをフェッチするときに、データを再マップする必要がありません。

ただし、サーバーからの変更をクライアントに通知することは可能です。1つの方法は、サーバーにクライアントへのプッシュ変更を行うことです。これは、HTML5WebSocketを使用することです。SignalRは、そのタスクに適したライブラリ候補です。サーバーがクライアントに変更を通知できるように、WebSocket接続を開きます。また、Service Broker SqlDependencyを使用して、更新時にイベント通知をトリガーします。例はここにあります。

幸運を!

また、フレームワークを理解するためのknockoutjsについて見るのに非常に優れたビデオもあります。

于 2013-02-11T23:55:21.477 に答える