非同期でやる。

非同期でリモートメソッドをコールする。


先のJSPJavaScript部分を以下のように書き換え。

jsonrpc = new JSONRpcClient("/jsonrpc/JSON-RPC");
var callback = function(result, error, profile) {
  document.write(result);
}
jsonrpc.hello.sayHello(callback, "Hoge");


リモートメソッドの第1引数に、コールバックするクロージャを与える。
それだけ。


クロージャの引数は、以下の3つ。

  • result ・・・ リモートメソッドの戻り値
  • error ・・・ エラーが発生したときの、その内容
  • profile ・・・ 非同期呼出にかかった時間を計算するための情報

profileは通常はundefinedであるが、JSONRpcClient.profile_async(jsonrpc.jsの中) をtrueにすることで得ることができる。