AngularJS与ServerSide呈现

Wjd*_*is5 5 javascript model-view-controller asp.net-mvc angularjs mean-stack

我工作的一位同事前几天提出了挑战.问题:解决人力资源管理中常见的问题之一即.将ppl分配给项目.一个警告是我们必须使用我们都没有使用的技术这样做.因此,我们开始使用MEAN堆栈构建此项目.到目前为止,它一直是一个有趣的学习经历,但它让我感到疑惑.

我们在什么时候决定服务器端MVC渲染胜过客户端MVC渲染.我们合作的大多数客户已经在某个地方运行了IIS实例,因此我们将使用asp.net MVC,它显然将在服务器端执行大部分HTML渲染.即使将angular与节点结合使用,HTML呈现也是服务器端.

但是,如果我们将IIS与IIS结合起来,我们可以进行完整的客户端HTML呈现.其他人在什么时候决定使用Client vs Server HTML Rendering?是否存在移动平台缓慢的问题?

社区所说的是每种情景的利弊?

谢谢你的想法!

sha*_*ain 4

我已经将客户端和服务器完全分离。我的服务器堆栈依赖 PHP(使用 PDO 和 ph-pass)和 MySQL 来实现持久性。我认为主要优点是视图/表示与服务器端逻辑完全解耦。在我的应用程序中,非常清楚的是,PHP 生成数据并将其格式化为 JSON,并接受 JSON 格式的参数,但与显示无关(它只是创建易于在前端解析的数据结构)。

在前端,我使用 AngularJS、UI Bootstrap(引导程序的角度包装器)、Google Maps V3 Javascript api(包装在角度指令中)和 D3js(再次包装在角度指令中)。

我工作过的几个网站在移动设备上并没有真正遇到任何问题...即使在前端进行一些相当繁重的数据处理时...我在客户端代码中进行所有过滤和一些聚合以显示地图上的可过滤标记并绘制一些图表。不幸的是,我目前提到的应用程序距离上线大约一周,所以我无法显示 ATM 的链接。

这是我的主要网站,这个网站不依赖于任何 PHP,所以都是 Angular: http: //www.intellectual-tech.com

您还可以查看投资组合网站和http://www.shanklandfinancial.com我仅使用 AngularJS 完成了所有这些工作,没有服务器端代码。确实依赖数据库但仍处于 WIP 状态的网站是http://www.eat-data.org

最长的延迟仍然是获取 gzip 压缩后 60kb 范围内的初始数据。在移动设备上,谷歌地图拖慢了速度,CSS 动画不流畅/快速,但一切仍然可用。

另一个优点是,如果在某个时候我决定 AngularJS 不是正确的选择,或者客户端想要一个本机应用程序,那么服务器端代码完全可以重用,无需修改。

我真正看到的唯一缺点是,如果客户端想要导出视图,我真的没有一个好的方法来做到这一点...我最近使用 PHPExcel 库将数据输出为 XLSX 文件,但就以下方面而言图表等。我的服务器代码中没有任何内容如此花哨,如果需要的话,需要进行彻底修改。也就是说,我不认为这是将打印机友好的页面“打印为 PDF”无法解决的真正问题。