設(shè)計框架,和使用第三方框架,都基于一個很樸素的目的,Productivity.
首先就要思考的是什么造成了開發(fā)效率的低下:
1)重復(fù)
2)繁瑣、耗時
3)復(fù)雜度太高
4)容易出錯,不統(tǒng)一,難以維護
解決問題的手段就是:
1)封裝
?? 通過不斷的封裝,信息隱藏,降低復(fù)雜度。
??
2)重用
?? 通過重用,來降低工作量,提高代碼質(zhì)量。
3) 分離
?? 將不穩(wěn)定的,可變的、同穩(wěn)定,很少變化的部分分離出來,減少需求變化的沖擊。
所以第一步,要分析問題域,去結(jié)構(gòu)化它,然后一條一條的解決:
1)不復(fù)雜,但是重復(fù)、繁瑣
2)復(fù)雜,而且重復(fù)。
無論怎樣都是要命的,都要去設(shè)計者盡量去解決。
以前端頁面開發(fā)為例,我們在前端開發(fā)當(dāng)中,都會遇到一個看似通用的工作,分頁查詢和表格表現(xiàn)。
這是一個重復(fù)、繁瑣、耗時的工作,但是不復(fù)雜,人人都會做,但要命的是,每個人的做法都不一樣,所以造成了不統(tǒng)一、不一致。
分析問題的過程,是一個結(jié)構(gòu)化的過程。我們可以對Grid的工作,做一個結(jié)構(gòu)化的分析,可以將繁瑣的問題,變成清晰的結(jié)構(gòu)。
1)分頁操作:next, prev, last, first, go to, 自定義顯示行數(shù),總頁數(shù),總條數(shù),總
2)分頁參數(shù)傳送與狀態(tài)保持:POST、GET、AJAX
3)斑馬條
4)事件: load, mouse over, click
5) 列操作:sort(服務(wù)器端排序、客戶端排序)、 resize column, 自定義顯示列。
6) 行操作:add row, delete row, edit row, select, muliselect, edit, query,
7)數(shù)據(jù)傳輸: json, xml, array,
8) 高級功能:subgrid, master/detail 多表關(guān)聯(lián)
9)擴展:Call back function.
10)布局與風(fēng)格統(tǒng)一:Theme的設(shè)計,Caption, title, 查詢區(qū),數(shù)據(jù)區(qū),按鈕區(qū)
Jquery Grid (jgGrid) 相對比較好的,解決了這些問題,但框架畢竟是框架,
沒有最完美的,只有相對合適的,使用者需要分析知道自己的問題在那里,然后去設(shè)計開發(fā)、使用合適第三方的框架,或直接使用、或二次封裝、開發(fā)、修改源代碼,來解決自己的問題,總之,不要做一個問題的抱怨者,等著別人煮米下鍋。
點這里,可以下載 JqGrid JQuery Grid? 可惜的是里面沒有Demo, 以后我會補充一個比較豐富的Demo進去。
JQuery Grid 的文檔下載
網(wǎng)址是(可能需要代理):
http://trirand.com/jqgrid/jqgrid.html