面向Ajax的JavaScript的MVC替代方案
因为Ajax是异步的,所以会导致逻辑划分。这是我的控制器模块。 所有对服务器的数据请求都通过这里,然后返回这里面向Ajax的JavaScript的MVC替代方案,javascript,model-view-controller,design-patterns,Javascript,Model View Controller,Design Patterns,因为Ajax是异步的,所以会导致逻辑划分。这是我的控制器模块。 所有对服务器的数据请求都通过这里,然后返回这里 function cType( type ) { var object_pipe = MType[ type ].pre(); if ( object_pipe !== 'complete' ) { var string_pipe = JSON.stringify( object_pipe ); cMachine( 'pipe=' + s
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模式更有意义
这是一个可接受的框架吗
这个结构工作得很好,只是现在我从模型中调用视图,这在技术上打破了MVC模式
然而,代码是整洁的、有组织的,并且具有良好的伸缩性
这是否违背了健壮代码的核心原则
如果模型对象要求视图对象正常工作,则选择“是”
从上面的例子中,我不确定你认为模型和视图是什么?
模型是对象的集合/域。它们是完全独立的,具有完整的数据和行为 视图是另一个对象域,也是完全自包含的。视图域的一个示例是一个网页,其中包含类等的对象 异步应该对MVC没有影响 这个结构工作得很好,只是现在我从模型中调用视图,这在技术上打破了MVC模式 然而,代码是整洁的、有组织的,并且具有良好的伸缩性 这是否违背了健壮代码的核心原则 如果模型对象要求视图对象正常工作,则选择“是”从上面的例子中,我不确定你认为模型和视图是什么?
模型是对象的集合/域。它们是完全独立的,具有完整的数据和行为 视图是另一个对象域,也是完全自包含的。视图域的一个示例是一个网页,其中包含类等的对象 异步应该对MVC没有影响