因为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模式。
这是一个可接受的框架种子吗?
答案 0 :(得分:0)
这个结构运行良好,但现在我从模型中调用视图,这在技术上打破了MVC模式。
然而,代码整洁有序,并且可以很好地扩展。
这是否破坏了强健代码的任何核心原则?
如果您的Model对象要求您的View对象正常运行,请单击是。
从上面的例子中,我不确定你认为模型和视图是什么?
模型是对象的集合/域。它们是完全独立的,具有完整的数据和行为。
View是另一个对象域,同样完全是自包含的。 View域的一个示例是一个网页,其中包含类< button>的对象。 <形式> <表> < DIV>等
异步应该对MVC没有影响。