2018/11/29

JavaScript for WebBroker framework



前端網頁寫久了,還是覺得 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

沒有留言:

張貼留言