為期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期,這個產品會越來越好,因為我們對它已經不止是一個責任,更多的是一種擁有感。