Learning Dojo 0.9 : Hello Rpc, Furnished Ajax
The goal of this tutorial is to explore dojo.rpc module. To my best understanding, this is a simplified way of calling servers asynchronously in Dojo. So now you can save a lot of hassle worrying about the types and versions of browsers.
Modify Interface
setting up a remote message
I created a file called lab005.service and put under dojolab/resource/
Later we will load message, asynchronously, from this file.
adding a output pane
The message in a file could be large, so it’s more appropriate to have an output box to display retrieved text.
Adding RPC function
changing the function name
Since when the button is pressed, it’s going to get some data, so a better name representing its function is preferred.
var getData = function(){
...
}
read url
Like in the last exercise, we will read from the TextBox. The value is set as the url to the file from which we will read. It’s also disabled to give you an idea of what it looks like.
<input id="input" name="string" size="50" type="text" value="resource/lab005.service" />
*With Firebug it’s possible to modify the value of the url so disabling it cannot really protect it from being changed.
create dojo.rpc.JsonService object
Require the module first.
dojo.require("dojo.rpc.JsonService");
Create a new JsonService object, passing it the url which it will call.
//msg was read from TextBox value;
var rpc = new dojo.rpc.JsonService({serviceUrl : msg});
bind and call
With the handle to the JsonService object, we will then bind it to handler functions.
rpc.bind(null, null,
{
callback: function(text){
console.debug("Message Retrieved.");
output.innerHTML = text;
}
},
null);
The third parameter of the bind function must be a object that contains at least a callback function. It may also contain another function to deal with cases when the retrieval fails.
The fourth parameter is the url, since we already specified url during JsonService object creation, it can be null.
The first and second are method and parameters, respectively. They are null because the file from which we will read is a plain text file and doesn’t ask for methods or parameters.
Screenshot
Example
Example: lab005.html
Source Code: lab005.txt



Leave a Reply