node.js - 协同工具Worktile 全站都是用的JS实现,具体是什么样的架构?
怪我咯
怪我咯 2017-04-17 11:16:00
[Node.js讨论组]

看到协同工具Worktile 说用node和angularjs(差不多全站逻辑都是由JS来控制)实现.
这样的网站架构具体是什么样子的? 什么优缺点?

后补:
Worktile CTO TerryLee 的文章: 团队协作工具Worktile技术架构揭秘
讲的比较详细

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(4)
巴扎黑

优点

  1. 前后端语言一致,招人方便,交流顺畅。
  2. 资源一次加载后,就不用每次都重新加载。
  3. 前后端使用 api 接口,前后端分离,开发Android与iOS方便。
  4. 从反应速度上来说,还是很不错的

缺点

  1. 对SEO不友好。
  2. 我自己开发一个Demo时,有时按F5,重新加载慢(有时直接显示json数据),用户体验当时就降到冰点。

PS

看回复才知道 SEO 和 刷新 都有了解决方案,表示孤陋寡闻了。

巴扎黑

不太认同其他两位的观点

优点:

  • 前端、后端、数据库(如果是 MongoDB 的话),全是 JavaScript 和 JSON, 写起来爽
  • 大部分操作不需要刷新页面,体验更好
  • 前后端分离,可以方便地做 CDN, 做负载均衡,API 可以直接开放给移动设备用

缺点:

  • AngularJS 和 Node.js ,包括 MongoDB 毕竟都还算是新技术,招人不像 PHP 和 jQuery 那么容易
  • 低版本 IE 对 AngularJS 和单页应用所需要的一些 HTML5 特征支持比较差
PHP中文网

不是太了解Angular,但是和它同名的Ember.js是这样的,它可以说是一个在前端的web框架,包含了router,model,controller,view/template这些。

  • router监控url变化来取得相对应的model,把model喂给对应的controller,并且决定render哪个view
  • view和controller交流,得到model,并呈现出来,view还负责监听事件,用户交互行为之后改变了当前页面的状态,这些页面的状态记录在controller之中
  • controller除了记录页面的状态,还负责把改动过的数据重新存回model
  • 这类的前端web框架,数据的存储虽然在model这个模块,但是application configure的时候,可以选择用什么样的数据存取的adapter。Ember有常见的RESTAdapter,配置好后端的api(这里就可以用node)来存取数据。这样,controller和model还是一样交流,但是数据都走json格式通过api来存取了。还有常见的LSAdapter,对应的是用浏览器的LocalStorage来存取数据。这样做的好处是controller,model,view的相互交流不用管数据到底在背后是怎么存取的,只用管好自己的逻辑就行。
伊谢尔伦

我正好跟他们的人见过,还聊过,可以谈谈我的见解。
架构:
前端:angularjs,他们的前端是angularjs写的,更偏向于webApp的方式,单页面应用。
服务端:nodejs,express框架,既然是用express框架。根据框架来看,我估计不是完全的前后端分离,应该还是首页用node渲染出来的。
数据库: mongodb,其实这个你也可以认为是一个大的json文件,所以才说(差不多全站逻辑都是由JS来控制)。
优缺点
对于1楼说的优点都认同,缺点,现在看来SEO基本不成问题,F5感觉也优化了体验。
但是对于用了angularjs之后,ie的体验一直不是太好,特别是低版本。
还有一个对于mongodb 在数据量大了之后的一个疑问。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号