YMC*_*YMC 21 ajax json razor asp.net-mvc-3
我曾经使用MVC 3 Razor引擎来渲染页面.有时我不得不使用AJAX调用来传输Razor呈现的HTML并使用JQuery将其插入到页面中.随着新项目的开始,我们考虑使用对我们来说是新的MVC 4单页面应用程序框架.我把乍看之下它留下我怀着复杂的心情:一方面,它意味着所有的数据都通过JSON转移和客户端完成了所有的工作,以使它们与编码其中一些是伟大的服务器和网络UI相关的逻辑性能.另一方面,客户端(HTML + JavaScript)变得更加沉重,其中包含一堆魔术字符串和隐藏的关系,这似乎很难维护.我们已经习惯了VS intellisense,类型安全的.NET服务器代码来渲染我们必须交换客户端脚本的页面和SPA的Knockout绑定语句.
我想知道使用SPA与Razor相比有任何prons和cons,还有我在这里提到的这个明显的一个吗?谢谢
Chu*_*way 18
Razor是一种基于服务器的技术,其中SPA(单页应用程序)是客户端(Web浏览器)上使用的架构方法.两者都可以一起使用.
从高层次来看,SPA将渲染和数据检索移动到客户端.Web服务器成为位于数据库前面的服务层.使用SPA时,MVC模式效果最佳.可以使用像Knockout.js和Backbone.js这样的框架.最终结果是丰富的响应式桌面体验.
要实现这一点,你需要成为一名血统的javascript程序员或者愿意学习javascript.
是的,它正在将业务需求从C#转移到javascript中.在Visual Studio中,javascript的智能感有限.为了对您的javascript充满信心,您需要依靠单元测试.好的一面是丰富的用户体验(想想gmail或谷歌地图).
我认为听起来您已经相当了解这里的大部分权衡;您将通过 SPA 减少网络负载,并将处理措施转移到客户端。然而,您将增加代码的复杂性,并使轻松维护系统变得稍微困难(仅仅是因为复杂性增加 - 而不是由于 SPA 固有的任何架构问题)。
另一件要记住的事情是兼容性。我在对你的问题的评论中提到“错误选择”的原因是,为了让禁用 JavaScript 的人可以使用该网站,你仍然需要提供常规的全页面视图。为了 SEO,这也是一个好主意;爬虫将以禁用 JS 的用户身份浏览您的网站,然后可以为您的网站建立索引。然后,网站应该正确处理此类传入 URL,以便那些启用了 JS 的人会发现自己在 SPA 中查看相同的内容(而不是不必要地转储到“无 JS”视图中)。
我会提到其他一些可能有助于解决上述问题的可能性,但它打破了 SPA 的理想;也就是说,在某些地方使用 Ajax 加载的部分,而不是 JSON 数据。例如,假设您的网站上有一个典型的“联系电子邮件”表单;您希望在 SPA 的上下文中加载它,但通过 AJAX 加载部分可能更容易做到这一点。(当然,是的;您可以使用描述要在电子邮件表单中显示的字段的 JSON 对象来实现)。
还可能存在更多“内容”而不是“数据”的内容,您可能仍然希望通过部分和 Ajax 加载这些内容。
SPA 绝对是一个有趣的项目,我正准备自己部署一个。我在其中混合使用了 JSON 和部分,但这可能不是您自己的选择。
| 归档时间: |
|
| 查看次数: |
16613 次 |
| 最近记录: |