【问题标题】:MVC Alternative for Ajax Oriented JavaScript面向 Ajax 的 JavaScript 的 MVC 替代方案
【发布时间】:2012-07-04 09:44:21
【问题描述】:

因为 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 模式。

不过,代码整洁有序,可扩展性很好。

这是否违反了健壮代码的任何核心原则?

对我来说,创建一个与 ajax 的异步特性一起工作的模式比遵循严格的 MVC 模式更有意义。

这是一个可接受的框架种子吗?

【问题讨论】:

    标签: javascript model-view-controller design-patterns


    【解决方案1】:

    这种结构运行良好,只是现在我从模型中调用视图,这在技术上打破了 MVC 模式。

    不过,代码整洁有序,可扩展性很好。

    这是否违反了健壮代码的任何核心原则?

    如果您的模型对象需要您的视图对象才能正常工作,是的。

    从您上面的示例中,我不确定您认为模型和视图是什么?

    模型是对象的集合/域。它们是完全独立的,具有完整的数据和行为。

    视图是对象的另一个领域,也是完全独立的。您的 View 域的一个示例是一个网页,其中包含类

    猜你喜欢
    • 1970-01-01
    • 2011-03-28
    • 2016-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-05
    相关资源
    最近更新 更多