前端網頁寫久了,還是覺得 Delphi JavaScript DataSnap framework 在 AJAX 上使用來得方便,官方範例的 ReverseString 是這樣寫的:
var valueField = document.getElementById('valueField'); var s = serverMethods().ReverseString(valueField.value); valueField.value = s.result;
如果是使用傳統的 AJAX (Asynchronous JavaScript and XML) ,則寫法如下:
let callback = function (resultMessage) { console.log(resultMessage); }; let req = new XMLHttpRequest(); req.open("GET", "http://localhost:8080/DataSnap/Rest/\ TServerMethod1/ReverseString/ABC", true); req.send(null); req.onreadystatechange = function() { switch(req.readyState) { case 2: if (req.status !== 200) { callback('ERROR'); return; } break; case 4: callback (req.responseText); break; } }
看得出 JavaScript DataSnap framework 確實可以讓前端程式碼少了很多。
然而老大哥 WebBroker framework 卻沒有這等好物可以使用。
既然沒有的話,就自己抄囉!
=======================
認真了解 ServerFunctionExecutor.js,關鍵處是在:
function ServerFunctionExecutor(className, connectionInfo, owner)
而我們 WebBroker 核心是【Action】而非【Function】,所以我也就仿照該樣式:
function ServerActionExecutor(actionName, connectionInfo, owner)
參數 Parameters 則是配合 RequestType (GET, POST) 進行判斷,最後也可以這樣寫:
let callback = function (resultMessage) {console.log(resultMessage);}; let _Executor = new ServerActionExecutor("ReverseString",connectionInfo); _Executor.executeMethod("","GET","ABC", callback); // WebBroker 只有 Action, // 所以 Method 給空字串即可
也是相同地簡單呢!
那麼,這麼好用的單元要去哪裡下載呢?
我把程式碼放在 Github 上,有興趣的人可以自行取用,因為是基於 JavaScript DataSnap framework,使用時記得要搭配相關官方 JS 使用。
See also:
Github - WebBrokerExector
沒有留言:
張貼留言