zoukankan      html  css  js  c++  java
  • 实训项目“你画我猜”总结_前端篇

    为期4周的实训就要结束了,感谢团队中的每一名同学,才有了我们今天的成果。我们这个5人小团队(产品一位,测试一位,开发三位(两名后台,一名前端)),来自不同的学校,带着刚毕业的学生气一起组成了我们的“飞虎队”。

    从产品刚提出的手机版,被开发一致否决,决定做WEB版本开始,我们几乎每天开会,讨论需求,进度,接下来要做的事,优先级。

    最后我们采用了mysql+redis+php+js(html5+flashcanvas.js) 这样的技术组成,完成了web版的"你画我猜"项目+管理后台,为期4周,进行了2期的产品开发。

    作为组内的前端人员,也只能说说前端的工作了。

    1、登录页:

    登录页

    用js实现:对邮箱和密码的验证、自动登录功能。

    细节上:焦点在输入框中用红色边框,焦点丢失时验证输入的格式是否正确,如果正确则输入框用绿色边框;点击登录以后,用ajax请求向后台请求,在顶部显示回调结果。

    另:忘记密码会给注册的邮箱发送邮件哦~

    2、注册页

    注册页

    同样是邮箱、昵称、密码、确认密码的js验证;细节上包括了我已阅读相关服务条款(感觉上挺专业的),点击会出一个静态页面给出服务条款。

    在昵称的验证上,使用了qwrap框架的byteLen,判断长度(限制10个字以内的中文,20个字以内的英文)

    3、大厅页

    大厅页

    功能:修改密码(右上角),退出(返回登录页),加入(加入到相应的房间),创建房间,快速开始,前一页,后一页

    细节上:

    (1)修改密码,大厅页在测试中,产品严格要求到tab切换的顺序

    (2)大厅页的那一排功能按钮

    加入按钮前端的输入框:默认显示1-999;输入非数字的时候,自动去除;如果加入房间已满或者游戏已开始,给出提示,并且提示5秒以后消失

    所有的button都做了hover效果。

    4、画画页(最复杂也是最核心的也在这里了)

    画画页画画页

    上图左边是画画的人看到的界面,右边是猜的人看到的界面。

    画画的人:有题目,有画板(颜色,粗细,铅笔,橡皮,垃圾桶)

    猜的人:提示由谁画画。

    画板的实现:

    高级浏览器用html5的canvas实现,低级浏览器用flashcanvas.js,每画一笔传一次数据到服务器(所以,如果鼠标一直按下不放开,就不会传数据到服务器),

    其中还包括,取消画板部分被选中的(ie:unselectable=on   其他:-xxx-user-select:none;);画板那里只响应鼠标左键画画;鼠标点击的位置判断

    画画部分与消息部分都采用轮询机制,每隔1秒向服务器请求一次数据。setTimeOut 实现轮询。

    一局结束画画以后:会给出这一局画画的答案提示(下左图)。默认的三轮画画结束以后:会给出所有人的分数(下右图):

    一居结束  画画页答案

    细节上:发送部分支持键盘回车发送;点击顶部右边头像,出小弹层提示分数画画页

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    另外:前端还结合smarty模板,使得逻辑与现实分离;在js和css上加上时间戳,防止浏览器缓存;js框架采用qwrap;用minify对js和CSS进行了压缩和合并

    感谢奇舞团给予的技术支持,在每一次相关技术的询问中,都有很多人给予解决方案。感谢后端工程师陈鹏和罗光,从没有一点web经验,到最后这个项目顺利运行;感谢测试李玲,不断的提各种问题;感谢产品申文,才真正的是不断的提各种问题,各种细节;感谢产品张文静,兼职了美工,每一个图都是她的作品。

    附:实训项目马上落下帷幕,这个东西也即将被OPS无情的清理掉,在一台虚拟服务器上(2G内存,单核2.4GCPU),QPS大概只有700左右。相信如果还有3期,4期,这个产品会越来越好,因为我们对它已经不止是一个责任,更多的是一种拥有感。

  • 相关阅读:
    如何用C++操作无线网卡开启共享热点WiFi?
    delphi中的copy函数和pos函数
    C#使用WinAPI 修改电源设置,临时禁止笔记本合上盖子时睡眠(使用PowerGetActiveScheme等函数,以及C#对WINAPI的调用)
    发布Qt Widgets桌面应用程序的方法(自定义进程步骤,用QT Creator直接生成)
    认识TDD
    基于Bootstrap的Asp.net Mvc 分页
    Chrome控制台 JS调试
    英语学习
    JavaScript中的作用域和声明提前
    LeetCode: Distinct Subsequences
  • 原文地址:https://www.cnblogs.com/lilyimage/p/2523935.html
Copyright © 2011-2022 走看看