技术场景
前端获取数据经过Socket IO与Node.js交互,其交互过程基于异步,前端页面将要获取的数据经过指令发给Node Server,Node再将根据指令去调用Gearman相应的接口,
当Gearman执行结束,会将数据发送给Node,Node再将数据发给前端页面。css
下面是开发中遇到的一些问题html
1 一个业务操做进行了屡次IO交互
对于前端页面来讲,每发一次指令就是一次原子操做,而要完成一次业务场景,就会产生屡次的原子操做,好比下面用户加房间的过程
获取用户名片 -> 加入房间 -> 建立卡片 -> 获取房间信息 -> 加入房间
上述场景是在有房间无名片的用户加入房间整个原子操做,先获取用户的名片信息,若是是一张系统生成的默认名片,就将用户加入到房间,并弹窗要求用户建立名片,
当名片建立成功,获取该房间的信息(有可能房间已经结束),然后加入房间,客户端发送的网络指令以下:
get_card_info->join_room->create_card->get_room_info->join_room前端
共进行了5次网络IO,屡次的网络IO操做会形成页面数据延迟加载,而每个原子操做都是异步的,所以会在回调函数里进行回调,出现多层回调嵌套的代码。css3
解决:提出了复合命令的方式向服务器请求(初定)前端框架
2 接口定义
项目开始定义了后台须要实现的接口,可是在实际进行中才发现,最初定义的接口每每不够,开发中还会增长或修改接口服务器
3 单页&多页
本次开发是一个多页应用,在实际体验中,多页的应用会加载每个连接的js、css、html文件,所以页面之间的切换会有一个延时等待的过程,下降了产品的流畅度。
计划在下次改版及下个项目中去使用单页开发网络
4 UI
由于项目开始咱们尚未专门的人来作UI,而咱们由没有太多的时间花费在UI设计上,致使页面看起来不够美观,色彩搭配不是很合理;另外,项目中采用了ionic框架,
可是因为缺少专业UI的设计,以致大量的css代码须要手动完成(自适应能力兼容性也不敢保证),ionic也没发挥出它的功能。框架
解决:肯定好使用某一套UI框架的时候,前端美工人员的界面要基于这套UI来作。异步
5 页面交互
现阶段的页面交互是比较生硬的,如弹窗之间的动画效果没有,用户触摸时背景切换,在网络延迟的状况下,用户能够对一个提交按钮进行屡次提交,致使后台数据冗余等等。ionic
解决:此类的js特效能够采用某个前端框架的交互效果;也能够本身实现这些交互效果,并逐步将其抽取出来,造成公司移动端的固定的交互模式。
6 代码结构
由于js语言的灵活性及语法的特色,如何组织代码提升可维护度,这还须要必定的时间来提升,我想对于前端的压力,通过2个月左右的锻炼和学习,能达到一个专业的水平,胜任
前端任务。
总结:如今前端的压力主要集中于对js代码的熟练以及对渲染性能的把控,由于移动设备渲染DOM元素能力并非很好,当元素存在阴影、滤镜及css3的一些高级特性的时候,渲染很慢,在后续的开发中,将逐步提取造成一些模块化、框架化的可复用代码。