2

Ajax は非同期であるため、論理分割が発生します。これが私のコントローラーモジュールです。サーバーへのすべてのデータ要求はここを通過し、ここに戻ってきます。

function cType( type ) {
    var object_pipe = MType[ type ].pre();
    if ( object_pipe !== 'complete' ) {
        var string_pipe = JSON.stringify( object_pipe );
        cMachine( 'pipe=' + string_pipe , function( text ) { // cMachine is an ajax Call - here is the asynch call back
            MType[ type ].post( text ); 
        } );
    }
}

以下のモジュール構造を作成して、ajax の非同期性によって分割された「スペース」がオブジェクト リテラルに結合されるようにします。pre()ajax呼び出しの前をpost()指し、ajax呼び出しの後を指します。

/**
 **  MABAdder
 */
MType.MABAdder =
{
    pre : function() { // some logic and view elements called here
    },
    post : function( string_pipe ) { // some logic and view elements called here
    }
};

この構造は、MVC パターンを技術的に破るモデルからビューを呼び出すことを除けば、うまく機能します。

ただし、コードはきちんと整理されており、適切にスケーリングされます。

これは、堅牢なコードのコアとなる原則を破っていますか?

私にとっては、厳密な MVC パターンに準拠するよりも、ajax の非同期の性質で動作するパターンを作成する方が理にかなっています。

これは受け入れられるフレームワークのシードですか?

4

1 に答える 1

0

この構造は、MVC パターンを技術的に破るモデルからビューを呼び出すことを除けば、うまく機能します。

ただし、コードはきちんと整理されており、適切にスケーリングされます。

これは、堅牢なコードの中核となる原則を破っていますか?

Model オブジェクトが View オブジェクトを適切に機能させる必要がある場合は、はい。

上記の例から、モデルとビューを何と見なすかわかりませんか?

モデルは、オブジェクトのコレクション/ドメインです。それらは完全に自己完結型で、完全なデータと動作を備えています。

ビューはオブジェクトの別のドメインであり、これも完全に自己完結型です。View ドメインの例は、クラス <button> <form> <table> <div> などのオブジェクトを含む Web ページです。

非同期であっても、MVC には影響しません。

于 2012-08-24T08:57:13.433 に答える