因为 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 模式更有意义。
这是一个可接受的框架种子吗?