非同期でやる。
非同期でリモートメソッドをコールする。
先のJSPのJavaScript部分を以下のように書き換え。
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にすることで得ることができる。