Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MVC应用程序中使用Javascript_Java_Javascript_Html_Model View Controller_Frameworks - Fatal编程技术网

在MVC应用程序中使用Javascript

在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函数,而是通过控制器进行路由?是否有最佳实践?

我是一名助理,在一门课程中,学生们在游戏的帮助下实现一个web应用程序(这是一个类似stackoverflow的问答网站)!框架这是一个基于Java的框架,它依赖于MVC模式。模型和控制器是用Java编写的,视图是用HTML/CSS编写的,框架提供了一些扩展来访问模型信息


最近出现的问题是,视图中可以使用多少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的相应实例中调用该方法,有效地将控制器排除在操作之外。因此,模型是从视图而不是从控制器调用的。我的语言有点不清楚,它不直接改变数据,它通过调用模型的方法来改变数据。