他的工作機制如下:
當你點擊"發送"按鈕時響應了onclick事件, 調用了 update() 函數:
function update() {
var name = dwr.util.getValue("demoName");
Demo.sayHello(name, loadinfo);
}
dwr.util.getValue() is a utility to get the value of any element, in this case an input field, but it could be a div or a select box.
由於dwr是異步javascript工作方式,所以當我們在後台等待http請求的返回時,不會中斷web浏覽器的顯示。 所以一個被函數調用的參數 loadinfo 名,被調用的時候已經返回了。
在服務器端, dwr調用Demo.sayHello() java的方法:
public String sayHello(String name) {
return "Hello, " + name;
}
當這個方法返回時, dwr 調用了 loadinfo() 函數, 將文本返回了:
function loadinfo(data) {
dwr.util.setValue("demoReply", data);
}
dwr.util.setValue()是一個有用的東西它使你傳入的第二個參數通過第一個參數的那個id值計算出適合html的標簽。 這個函數使得javascript用起來更簡單。
我們可以將2個javascript的函數一起寫
function update() {
var name = dwr.util.getValue("demoName");
Demo.sayHello(name, function(data) {
dwr.util.setValue("demoReply", data);
});
這種方法在寫從服務端返回10以內的行字符串是很有效的