Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.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
Javascript 服务器端MVC框架在单页应用程序中仍然相关吗?_Javascript_Angularjs_Single Page Application_Restful Architecture - Fatal编程技术网

Javascript 服务器端MVC框架在单页应用程序中仍然相关吗?

Javascript 服务器端MVC框架在单页应用程序中仍然相关吗?,javascript,angularjs,single-page-application,restful-architecture,Javascript,Angularjs,Single Page Application,Restful Architecture,在使用Angular的单页应用程序中,似乎大多数事情都是在客户端处理的。客户端似乎只是对服务器进行restful调用 遵循这个概念,在我看来,我的服务器端根本没有任何应用程序,只有生成RESTful json数据供客户端读取的脚本 也许像Hibernate或那些连接到数据库的框架仍然是相关的,因为服务器上的restful脚本仍然必须连接到数据库。但是那些MVC框架呢 因为在单页应用程序中,服务器只需要为客户端提供RESTful调用,比如Spring、Struts(Java)或Laravel(PH

在使用Angular的单页应用程序中,似乎大多数事情都是在客户端处理的。客户端似乎只是对服务器进行restful调用

遵循这个概念,在我看来,我的服务器端根本没有任何应用程序,只有生成RESTful json数据供客户端读取的脚本

也许像Hibernate或那些连接到数据库的框架仍然是相关的,因为服务器上的restful脚本仍然必须连接到数据库。但是那些MVC框架呢


因为在单页应用程序中,服务器只需要为客户端提供RESTful调用,比如Spring、Struts(Java)或Laravel(PHP)等框架,它们都与SPA无关?这意味着服务器端可能只需要一个好的RESTful库,我们可以使用它来服务json数据,仅此而已?否则,SPA中服务器上的视图和控制器会是什么?

如果您的视图和导航逻辑位于客户端,并且您的服务器“仅”需要响应HTTP调用(可能是RESTfull),那么您在服务器端需要什么:

  • 一种将URL映射到服务器服务的方法
  • 一种生成json(或者其他格式)输出的方法
  • 您的常规业务逻辑和数据访问逻辑(如果需要),这与始终相同

可能有了jersey这样的好Rest框架就足够了,我正在玩dropwizard(),现在我对这个简单的框架非常满意。

这仍然是相关的,但是,在这种情况下,视图是生成JSON/XML的机制,它可以是隐式的

在这种情况下,带有下面控制器的弹簧座就是这样一个例子。您仍然需要您的应用程序服务仍将在您将从一些持久性机制(通过DAO访问)获得的模型上进行操作


架构是相同的,只是视图中的数据表示不同

我认为MVC框架在SPA应用程序中仍然很有用。我正在开发一个SPA应用程序,我使用ASP.NET MVC实现两件事:

  • 管理我的应用程序的第一页。它允许我利用这个框架的优点,例如管理脚本的连接和缩小的功能

  • 返回我在Angular中使用的局部视图。它允许我使用razor模板,还可以管理局部视图的捕获方式

  • 我认为如果你把这两种东西混合在一起,你会得到一些好处


    我希望这会有所帮助。

    我想不出一个具体的用例,但是由于templateUrl或部分URL只是指向服务器端资源的路径,所以动态生成的页面可能会被用作模板标记服务器端mvc通过生成大量不同的“页面”来工作。如果您只需要一个页面,那么就不需要服务器端mvc。使用服务器端提供非js回退可能很好,但考虑到异步客户机的性能优势,您永远无法达到UX奇偶校验。然后,你必须考虑双重编码是否所有的东西都值得支持少数用户。如果它是一个公共站点,那么可能不是,但是如果你通过杀死非JS而丢弃了仓库团队一半的老式终端,那么是的,双重代码。。。您只需要一个服务器来保存、获取和保护数据。就这样。