在MVC应用程序中使用Javascript
我是一名助理,在一门课程中,学生们在游戏的帮助下实现一个web应用程序(这是一个类似stackoverflow的问答网站)!框架这是一个基于Java的框架,它依赖于MVC模式。模型和控制器是用Java编写的,视图是用HTML/CSS编写的,框架提供了一些扩展来访问模型信息在MVC应用程序中使用Javascript,java,javascript,html,model-view-controller,frameworks,Java,Javascript,Html,Model View Controller,Frameworks,我是一名助理,在一门课程中,学生们在游戏的帮助下实现一个web应用程序(这是一个类似stackoverflow的问答网站)!框架这是一个基于Java的框架,它依赖于MVC模式。模型和控制器是用Java编写的,视图是用HTML/CSS编写的,框架提供了一些扩展来访问模型信息 最近出现的问题是,视图中可以使用多少javascript来更改模型中的某些内容(例如投票、评论等),从而不太违反MVC模式。还是应该避免所有实际更改模型中数据的Javascript函数,而是通过控制器进行路由?是否有最佳实践?
最近出现的问题是,视图中可以使用多少javascript来更改模型中的某些内容(例如投票、评论等),从而不太违反MVC模式。还是应该避免所有实际更改模型中数据的Javascript函数,而是通过控制器进行路由?是否有最佳实践?我倾向于路由所有需要执行任何CRUD操作的AJAX调用,以向控制器中的函数发送GET或POST请求,并让它处理与模型的通信 这就是HTML/CSS查看流程数据的方式(即,通过控制器从模型中获取数据,并向控制器发送GET和POST请求),而且由于JS是客户端的,因此不应该对其进行任何区别。大概“javascript”指的是更多?(而不是JS对输出的修改……在这种情况下,它只是视图的扩展)。没有理由认为AJAX不能/不应该像其他组件一样通过MVC进行路由
当然,这可能会促成对原始MVC设计的更改,但这可能是课程中可以接受的部分。当然,当使用AJAX时,视图呈现可以由嵌入在现有视图中的JS来处理——如果数据是以JSON而不是HTML片段的形式提供的。在客户端执行的JavaScript代码如何可能更改“模型中的数据”?您仅仅是在客户端更改对象的JavaScript表示中的属性,还是以某种方式从JavaScript调用服务器端方法(即调用servlet)来更改数据
如果是后者,那么这违反了MVC——来自客户端的所有请求都应该通过控制器。我在CakePHP MVC应用程序中过度使用ajax。在本例中,除了一个将html/javascript页面发送到浏览器的静态控制器之外,控制器操作仅由javascript调用。首先解释“实际更改模型中数据的javascript函数”的含义。例如,您可以投票帖子。JS函数将直接在post的相应实例中调用该方法,有效地将控制器排除在操作之外。因此,模型是从视图而不是从控制器调用的。我的语言有点不清楚,它不直接改变数据,它通过调用模型的方法来改变数据。