【问题标题】:Is there a reason to use a Javascript framework in conjunction with ASP-MVC?是否有理由将 Javascript 框架与 ASP-MVC 结合使用?
【发布时间】:2013-05-25 08:15:51
【问题描述】:
我正在使自己加快 Javascript 的速度,并且我开始怀疑如果我已经在服务器端使用 ASP.Net MVC,是否有使用像 Backbone/Knockout 这样的 Javascript 框架的目的。
由于我正在尝试创建单页浏览器体验,我可以理解为什么拥有一个 Javascript 框架通常会很有用,但我开始怀疑我是否不能仅仅依靠AJAX 服务器连接来更新我想要刷新的页面部分。我想一般来说:Javascript框架的目的是什么?
【问题讨论】:
标签:
c#
asp.net-mvc
javascript-framework
【解决方案1】:
虽然有很多人提倡将 Backbone 和 Knockout 与 MVC 结合使用(Scott Guthrie 是其中之一,他的 SPA 示例项目),但我发现它对我的很多项目来说都是多余的。
最近我非常喜欢使用 Require.Js 管理我的 JavaScript 依赖项。它加快了加载速度,帮助我模块化我的代码,并提供了一些方便的丑化。但是,归根结底,您需要决定需要多少客户端架构开销。
顺便说一句,您可能希望将 AngularJS 视为 Backbone/Knockout 的替代品。
【解决方案2】:
首先,我想说的是,现在大多数用户都期望动态体验和响应式界面(响应速度而不是流行语响应式)。为了实现这一点,使用 JavaScript 通常是要走的路。通常,您可以节省往返服务器的次数,这会占用时间和带宽。
就使用 JavaScript 框架以及选择使用哪一个而言,这实际上取决于您计划构建的应用程序的类型。例如,Backbone 擅长构建应用程序,而 Knockout 擅长处理用户交互。不过,这其中还有很多变数,并且有很多博客文章比较和对比了各种框架。
如今,如果不使用 JavaScript,您将很难获得真正交互式和动态的 Web 应用程序。各种框架有望帮助您实现您想要的功能。
【解决方案3】:
Javascript 框架使 SPA 和富客户端交互更加流畅,但其代价是比单独的服务器端执行更多。 Knockout 的主力是它能够在模型更改时实时更新 DOM,因此您不必自己导航和修改 DOM。它是一个工具。如果您的项目需要它,那么一定要试一试,它可能值得学习曲线和以面向对象的方式学习 javascript。如果不是,那么您就是在浪费宝贵的时间来创建客户端和服务器端模型。