|
|
|
|
Blog信息
|
blog名称:四裤全输的小窝~~ 日志总数:178 评论数量:699 留言数量:198 访问次数:1152407 建立时间:2005年10月29日 | |
|
|
|
|
 |
|
|
|
|
[AJAX][转]DWR笔记2
文章收藏, 网上资源, 软件技术, 电脑与网络 四裤全输 发表于 2006/10/18 14:08:28
|
转自:http://blog.csdn.net/zhangjianying/archive/2006/07/31/1004857.aspx用javascript对象去匹配 java 对象public class Remote { public void setPerson(Person p) { this.person = p; }}
And Classes Person looks like this:public Person { private String name; private int age; private Date[] appointments; // getters and setters ...一定要补上getter与setter}
//Then you can call this from Javascript like this:var p = { name:"Fred Bloggs", age:42, appointments:[ new Date(), new Date("1 Jan 2008") ]};Remote.setPerson(p);
因为setPerson()使用 VOID 修饰所以 在javascript中不不需要回调函数,即便你写了回调函数,DWR也不会将任何值给传回来当然 你也可以这样写Remote.setPerson(null,p);
异步Loading提示DWR标准情况下是展现GMAIL样式的Loading消息提示,你可以在page loaded之后调用loading消息提示,但不可以在page onload之前调用.因为loading的原理还是用一个hide的层来包容loading消息.在DWR中只要很简单的一步就可以完成GMAIL样式的loading设置<head> <script> function init() { DWRUtil.useLoadingMessage(); } </script> ...</head><body onload="init();">
当然有些时候可能无法去修改<BODY>元素,那么你可以用CMS方式来修改<script>function init() { DWRUtil.useLoadingMessage();}
if (window.addEventListener) { window.addEventListener("load", init, false);}else if (window.attachEvent) { window.attachEvent("onload", init);}else { window.onload = init;}</script>
你也可以动态的创建一个层(with id="disabledZone") ,它将包含提示消息下面是2个改进的程序
第一个允许你修改属于你自己的提示消息function useLoadingMessage(message) { var loadingMessage; if (message) loadingMessage = message; else loadingMessage = "Loading";
DWREngine.setPreHook(function() { var disabledZone = $('disabledZone'); if (!disabledZone) { disabledZone = document.createElement('div'); disabledZone.setAttribute('id', 'disabledZone'); disabledZone.style.position = "absolute"; disabledZone.style.zIndex = "1000"; disabledZone.style.left = "0px"; disabledZone.style.top = "0px"; disabledZone.style.width = "100%"; disabledZone.style.height = "100%"; document.body.appendChild(disabledZone); var messageZone = document.createElement('div'); messageZone.setAttribute('id', 'messageZone'); messageZone.style.position = "absolute"; messageZone.style.top = "0px"; messageZone.style.right = "0px"; messageZone.style.background = "red"; messageZone.style.color = "white"; messageZone.style.fontFamily = "Arial,Helvetica,sans-serif"; messageZone.style.padding = "4px"; disabledZone.appendChild(messageZone); var text = document.createTextNode(loadingMessage); messageZone.appendChild(text); } else { $('messageZone').innerHTML = loadingMessage; disabledZone.style.visibility = 'visible'; } });
DWREngine.setPostHook(function() { $('disabledZone').style.visibility = 'hidden'; });}
第2个你能使用图片作为提示消息function useLoadingImage(imageSrc) { var loadingImage; if (imageSrc) loadingImage = imageSrc; else loadingImage = "ajax-loader.gif"; DWREngine.setPreHook(function() { var disabledImageZone = $('disabledImageZone'); if (!disabledImageZone) { disabledImageZone = document.createElement('div'); disabledImageZone.setAttribute('id', 'disabledImageZone'); disabledImageZone.style.position = "absolute"; disabledImageZone.style.zIndex = "1000"; disabledImageZone.style.left = "0px"; disabledImageZone.style.top = "0px"; disabledImageZone.style.width = "100%"; disabledImageZone.style.height = "100%"; var imageZone = document.createElement('img'); imageZone.setAttribute('id','imageZone'); imageZone.setAttribute('src',imageSrc); imageZone.style.position = "absolute"; imageZone.style.top = "0px"; imageZone.style.right = "0px"; disabledImageZone.appendChild(imageZone); document.body.appendChild(disabledImageZone); } else { $('imageZone').src = imageSrc; disabledImageZone.style.visibility = 'visible'; } }); DWREngine.setPostHook(function() { $('disabledImageZone').style.visibility = 'hidden'; });}
DWRUtil.toDescriptiveString()用于debug 页面上的任何Html控件DWRUtil.toDescriptiveString(p1,p2)其中p1 代表你将要bebug的控件id名称p2 (int={0,1,2})其中 0 返回单行调试信息 1\2 返回多行调试信息
|
阅读全文(3514) | 回复(0) | 编辑 | 精华 |
|
|
|
|
|
|
|