zoukankan      html  css  js  c++  java
  • 项目前端问题

    技术场景
    前端获取数据通过Socket IO与Node.js交互,其交互过程基于异步,前端页面将要获取的数据通过指令发给Node Server,Node再将根据指令去调用Gearman相应的接口,
    当Gearman执行结束,会将数据发送给Node,Node再将数据发给前端页面。

    下面是开发中遇到的一些问题

    1 一个业务操作进行了多次IO交互
    对于前端页面来说,每发一次指令就是一次原子操作,而要完成一次业务场景,就会产生多次的原子操作,比如下面用户加房间的过程

    获取用户名片 -> 加入房间 -> 创建卡片 -> 获取房间信息 -> 加入房间

    上述场景是在有房间无名片的用户加入房间整个原子操作,先获取用户的名片信息,如果是一张系统生成的默认名片,就将用户加入到房间,并弹窗要求用户创建名片,
    当名片创建成功,获取该房间的信息(有可能房间已经结束),而后加入房间,客户端发送的网络指令如下:

    get_card_info->join_room->create_card->get_room_info->join_room

    共进行了5次网络IO,多次的网络IO操作会造成页面数据延迟加载,而每一个原子操作都是异步的,因此会在回调函数里进行回调,出现多层回调嵌套的代码。

    解决:提出了复合命令的方式向服务器请求(初定)

    2 接口定义
    项目开始定义了后台需要实现的接口,但是在实际进行中才发现,最初定义的接口往往不够,开发中还会增加或修改接口

    3 单页&多页
    本次开发是一个多页应用,在实际体验中,多页的应用会加载每一个链接的js、css、html文件,因此页面之间的切换会有一个延时等待的过程,降低了产品的流畅度。
    计划在下次改版及下个项目中去使用单页开发

    4 UI
    因为项目开始我们还没有专门的人来做UI,而我们由没有太多的时间花费在UI设计上,导致页面看起来不够美观,色彩搭配不是很合理;另外,项目中采用了ionic框架,
    但是由于缺乏专业UI的设计,以至大量的css代码需要手动完成(自适应能力兼容性也不敢保证),ionic也没发挥出它的功能。

    解决:确定好使用某一套UI框架的时候,前端美工人员的界面要基于这套UI来做。

    5 页面交互
    现阶段的页面交互是比较生硬的,如弹窗之间的动画效果没有,用户触摸时背景切换,在网络延迟的情况下,用户可以对一个提交按钮进行多次提交,导致后台数据冗余等等。

    解决:此类的js特效可以采用某个前端框架的交互效果;也可以自己实现这些交互效果,并逐步将其抽取出来,形成公司移动端的固定的交互模式。

    6 代码结构
    因为js语言的灵活性及语法的特点,如何组织代码提高可维护度,这还需要一定的时间来提高,我想对于前端的压力,经过2个月左右的锻炼和学习,能达到一个专业的水平,胜任
    前端任务。

    总结:现在前端的压力主要集中于对js代码的熟练以及对渲染性能的把控,因为移动设备渲染DOM元素能力并不是很好,当元素存在阴影、滤镜及css3的一些高级特性的时候,渲染很慢,
    在后续的开发中,将逐步提取形成一些模块化、框架化的可复用代码。

  • 相关阅读:
    Apache Ant 1.9.1 版发布
    Apache Subversion 1.8.0rc2 发布
    GNU Gatekeeper 3.3 发布,网关守护管理
    Jekyll 1.0 发布,Ruby 的静态网站生成器
    R语言 3.0.1 源码已经提交到 Github
    SymmetricDS 3.4.0 发布,数据同步和复制
    beego 0.6.0 版本发布,Go 应用框架
    Doxygen 1.8.4 发布,文档生成工具
    SunshineCRM 20130518发布,附带更新说明
    Semplice Linux 4 发布,轻量级发行版
  • 原文地址:https://www.cnblogs.com/xiezhengcai/p/3770507.html
Copyright © 2011-2022 走看看