用兩個星期的時間完成了這個項目的先後臺,如今想要總結一下經驗。 php
剛開始本身什麼都不會,只是會一點點前端知識,拿到項目就直接開始開發,邊開發邊學習,前端用到的框架是大師封裝的Zonda,後端用本身歷來沒用過的ThinkPHP html
設計幾乎都是參考了不少漂亮的網站,而後融合了一下,對於瞭解的人,很容易就以爲有很大的山寨味道 前端
研發中各類各樣的修改需求,其中想要說說本身遇到的問題吧 jquery
原本是兩我的合做完成這個項目的,可是不少地方都很難合做,都要寫前臺後臺,用git也不會,而後都是本身學習,分享一下本身對於git的心得,在這裏有很詳細的介紹
http://www.xhomestudio.org/wiki/index.php/Git
全部遇到的問題都在這裏能夠獲得解決,感謝張大神的總結
- 登陸後臺的經驗:
起初我是用cookie記住了賬號密碼,把登陸寫在一個function裏,爲了實現記住密碼自動登陸,我把密碼用戶名存放在了cookie裏,只有用戶點擊退出登陸,才清除cookie,可是這樣是很是嚴重的錯誤,cookie存放密碼是很不安全的,很容易被竊取,因此我又查了相關文檔,思路大概是這樣的,首先是用戶每次登陸,要在後臺php中建立一個session,而後再建立一個新的sessionid,再把這個sessionid經過ajax傳到前臺,前臺拿到這個sessionid後把這個id存放在cookie裏,爲了實習自動登陸,每次登陸都會驗證這個sessionid,若是後臺返回的sessionid與cookie裏存放的sessionid同樣,就直接登陸,若是不同就返回登陸頁面。
- 在thinkPHP裏和Zonda實首頁頁面和後臺管理頁面分開開發:
我用本身的思路,在後臺分了兩個文件出來,模版TPL文件裏一個是Index存放首頁模版,一個存放後臺模版,Action裏也是隻寫了兩個Action,分別能夠進行先後臺開發,前端頁面也是用到了兩個Zonda,因爲不會用backbone的路由,我就按照本身的思路去作,很高興的是,我實現了這個,我修改了Zonda裏的引用部分,不少,最後仍是成功了。
- 基於bootstrap的表單驗證:
這是大師封裝的模塊,我是直接拿來用的,很好用,並且因爲是基於bootstrap的,因此很漂亮,https://github.com/smallsmallwolf/Zonda/tree/master/util/backup/verify,驗證插件,功能是當用戶輸入錯誤的時候,焦點會自動聚焦到第一個錯誤的區域,讓用戶修改,用戶體驗很是好。
- cookie的總結:
因爲之前都沒用過cookie,致使我幾乎對cookie一無所知,可是此次我,嘗試把cookie經常使用的操做封裝成了jquery的插件,包括cookie的set,get方法,刪除一個cookie,刪除全部的cookie,因爲js沒有刪除全部的cookie方法,我在網上找了很久都沒有,因此又參考了大師封裝的刪除全部cookie的方法,可是我發現徹底不能用,原來有bug,並且不能刪除子cookie的狀況,因此我把大師的代碼再次封裝了,如今能夠刪除全部cookie的功能,分享一下https://github.com/419003251/Noin/blob/master/assets/util/jquery-plugin/jquery.cookie.coffee
- 關於彈框:
原生的彈框真的很醜,bootstrap的彈框很漂亮,可是大師封裝的彈框不怎麼好用,尤爲是在手機端的時候,位置不對,我用了,可是網頁上仍是不錯的,但是官方的彈框在手機端是沒有問題的,應該是大師沒測試手機端吧,因此我想要下一步總結就是封裝bootstrap的彈出,繼續參考大師的代碼~!~
- 關於頭像上傳:
本身寫真的很麻煩,因而我在網上查找了方法,用jquery.form.js的jquery插件很不錯,http://www.helloweba.com/view-blog-189.html參考這個案例,確實很不錯。而後談一下上傳過程吧,這點算是一個知識點吧,首先是當用戶點擊file的change事件後用ajax傳送圖片到後臺,後臺返回該圖片存放的位置,前端對把這個連接放到img的src裏,最後點擊修改用戶信息時把這個url傳到後臺就能夠實現用戶信息的修改,很遺憾的一點是我沒有作到圖片剪切,應該是在用戶提交圖片以前把頭像剪切爲適合的格式大小,再上傳,這樣才比較好。
- 關於ie下傳數據的一些問題的總結:
原本是經過jquery的ajax傳的數據,可是url是用的?a=changUser&name=name&headerUrl=/a/d/ds,後臺是在function裏直接從參數得到,這樣傳數據在ie下不知道爲何不行,我也不知道,馬小跳說這種方式是get傳數據,很差,因而我就改用了post,經過json,把數據傳到後臺,後臺用post方法得到數據,這樣就能夠在ie下兼容了,馬小跳傳的數據都是json,可是我本身傳的時候都是傳對象,因此又會涉及到一個數據轉換的問題,我是用JSON.parse()方法把json轉爲對象來操做的。這個方法在ie7裏是有問題的,因此我又加入了json2.js這個插件進去..而後就兼容了...
- 關於表單傳json:
咱們發現,用jquery的serialize()方法能把表單數據轉換爲name=a&sex=1&age=13這樣的格式,可是我但願直接把表單的數據轉換爲json,網上說沒有直接轉換爲json的方法,jquery只有轉換爲對象的方法serializeArray(),因而我找了個方法封裝了jquery的插件,實現直接調用這個方法就轉換爲json,https://github.com/419003251/Noin/blob/master/assets/util/jquery-plugin/jquery.serializeJson.coffee
記得的就這麼多了,之後要把本身的知識封裝在本身的一個目錄裏,這就是個人經驗,之後作的多了,它也能夠成爲一個框架的。~!~ git