全部使用Javascript寫一個界面,是一件很困難的事。
1)要求有較高的Javascript編程能力。
2)會造成“代碼樹”問題。一級又一級子"children",需要"{"和"}"對應,嵌套層次過多,會是一場災難。
3)難以排錯。JS是解釋性語言,漏掉個","、"}"號,運行的時候才發現,而且很難直接定位到行。
4)維護困難。一個開發者寫的復雜JS代碼,另一個開發者很難接手。
5)布局困難。需要復雜的布局控件,並且難以做到原生HTML+CSS方式的布局效果。
MiniUI給開發者推薦的開發方式,是使用HTML標簽來配置出界面,而不是用JS來生成。
比如創建一個DataGrid:
- <div id="datagrid1" class="mini-datagrid" style="width:700px;height:280px;"
- url="../data/dataservice.aspx?method=SearchEmployees" valueField="id"
- >
- <div property="columns">
- <div type="indexcolumn" ></div>
- <div field="loginname" width="120" headerAlign="center" allowSort="true">員工帳號</div>
- <div field="name" width="120" headerAlign="center" allowSort="true">姓名</div>
- </div>
- </div>
如果是Javascript的方式,可以這樣寫:
- var grid = new mini.DataGrid();
- grid.set({
- url: "../data/dataservice.aspx?method=SearchEmployees",
- style: "width:700px;height:280px;",
- valueField: "id",
- columns: [
- { type: "indexcolumn" },
- { field: "loginname", width: 120, headerAlign: "center", allowSort: true },
- { field: "name", width: 120, headerAlign: "center", allowSort: true }
- ]
- });
- grid.render(document.body);
以上創建一個單獨的表格控件,還看不出兩種開發方式的差別。
下面我們來創建一個稍微復雜一點的表單:
- <table class="form-table" border="0" cellpadding="1" cellspacing="2">
- <tr>
- <td class="form-label" style="width:60px;">姓名:</td>
- <td style="width:150px">
- <input name="name" class="mini-textbox" />
- </td>
- <td class="form-label" style="width:60px;">地址:</td>
- <td style="width:150px">
- <input name="addr" class="mini-textbox" />
- </td>
- </tr>
- <tr>
- <td class="form-label">性別:</td>
- <td >
- <input name="gender" class="mini-radiobuttonlist" data="[{id: 1, text: '男'}, {id: 2, text: '女'}]"/>
- </td>
- <td class="form-label">年齡:</td>
- <td >
- <input name="age" class="mini-spinner" />
- </td>
- </tr>
- <tr>
- <td class="form-label">備注:</td>
- <td colspan="3" >
- <input name="remarks" class="mini-textarea" style="width:343px;height:60px;"/>
- </td>
- </tr>
- </table>
呈現效果如下:
如果完全用Javascript開發這個表單,代碼量顯然會增加很多,而且不易修改和擴展。
使用HTML標簽的組件生成方式,開發者可以使用HTML+CSS的開發經驗,輕松實現,靈活布局。