D2js 的邦聯式架構

2022-08-17 23:09:14 字數 2651 閱讀 7934

d2js 的介面單獨看有點像小手工業者,每個人擺弄著自己的小功能,但是在 update 的一聲號令下,它們也可以組合起來,發揮出整體的功效,變為流水線上的工人——這一切是自然而隱蔽的進行的,小手工業者不需要為進工廠而改變自己。

這是怎麼做到的呢?

d2js 的介面可以通過瀏覽器位址列呼叫。

以下面的介面為例:

除了以json方式提供params,還可以分散在query string提供。

以該方式提供引數會視被為字串:

需要在介面中做引數轉換:

d2js.exports.test = d2js.test = function(params))

return

}

d2js 介面加以匯出即可通過瀏覽器直接訪問,使用瀏覽器位址列就可以隨意注入引數進行測試,這為後端開發提供了很大便利。

作為普通函式,d2js 可以在其它函式中呼叫,如:

d2js.test2 = function(params))

}

可以在另乙個d2js中呼叫:

d2js.test2 = function(params)]);

}

可以使用表單呼叫:

也可以使用 ajax 呼叫:

$.get('test.d2js', )},

function(s)

d2js.exports.formentry =

d2js.formentry = function(params)

}

用法:

test.jssp:

[%var result = request.getattribute('result')

%]

如需完全滿足表單式應用場景, formentry 函式還需要進一步完善,如實現跳轉詞典等等。

d2js 介面支援 post,put,get,delete 語義,分別對應 modify, create, fetch, destroy 四個介面,也就是說,在上述配對情形中使用,可以不提供 _m 引數。

乙個典型的 d2js 檔案具有 crud 四介面:

d2js.fetch = function()

d2js.destroy = function(rcd)

這四個介面都可以像上面一樣獨立使用。

不僅如此,create, modify, destroy 三介面還可以被前端聚合!

d2js 框架前端是乙個主要為 datatable 形態的資料結構。datatable 可以改動多行,一起提交:

table.rows[0]._set('name', 'jack')

table.rows[1]._set('name', 'mike')

table.rows[2].remove();

table.addrow();

table.submit();

submit 函式呼叫時,上面**中表的四行變動彙總為乙個表變動資訊,合併提交至 d2js.prototype.update 函式,d2js.prototype.update 函式根據行狀態(edit,remove,new),呼叫相應的函式(modify, destroy, create)。該函式內為乙個迴圈,處在乙個事務中,一旦出錯全體回滾。

此外,前端還支援表間關聯,提交父表時,可連帶提交子表。

提交多行的例子可參見 提供的示例。

下面是例子中提交的json資料:

,

"_state":"edit",

"_idx":0,

"_origin":

},"_children":[  }]

}]}]

}}

根據資料提到的 src,和行狀態,d2js.prototype.update 函式會為為執行相應入庫動作。

可見,d2js 介面解耦程度極高,可聚可分,可聯合作戰,可獨立作戰,可用於 ajax 方式,表單方式、datatable  方式,適合與各種前端模型混搭——當然,搭配 d2js 前端使用更珠聯璧合。

這套架構可以稱為邦聯式架構,每個介面都是獨立的能行駛職能的政權,但也可以隨時結合為乙個更大的政權結構。

js 繪製2D機櫃(一)2D機櫃的基本繪製

今天被領導要求用js繪製2d機櫃用於向客戶展示客戶資產以及管理裝置,雖然我是後端,既然被分配到這個任務那就得做好。繪製的第一步當然是繪製機櫃框框,這個很簡單,寫個div然後將邊框設定下就好了 parentblock 這裡將背景設定成灰色顯得真實些 為了辨別機櫃,這裡在機櫃上面再加乙個機櫃title ...

GDI 的替代者 D2D

winform中的2d繪圖,以前用的都是gdi 在簡單應用環境下,如果不在乎速度,gdi 可以表現的很好。機緣巧合,前段時間做了乙個簡單的3d程式,使用的是c 託管 directx9 sdk,平台是win7 vs2012。專案做完以後,回顧發現,其實也可以使用directx11的direct2d來進...

css動畫2D 3D的轉換

可以使用2d,3d來轉換元素 translate 使元素移動 有兩個引數,x和y,x表示水平方向的移動,y表示垂直方向的移動 例如 transfrom translate 100px,100px 例子 transfrom rotate 180deg deg 是乙個度數單位必須寫的 例子 transf...