setMethod()不能把正使用你选择的方法,它只是保证首先尝试使用那个方法。newmethod必须是DWREngine.XMLHttpRequest或者DWREngine.IFrame,或者2.0以后的DWREngine.ScriptTag。XMLHttpRequest时默认的,并且大多情况下可用。当ActiveX禁用IFrame就有用了,尽管DWR能自动检测出这种情况并切换到IFrame。当你要突破跨域调用的限制,ScriptTag就很有用了。例如,要设置全局的远程调用方法:DWREngine.setMethod(DWREngine.IFrame);或者单次调用:Remote.method(params,{callback:function(data){...},method:DWREngine.IFrame});或者批量调用:DWREngine.beginBatch();Remote.method1(params,callback1);Remote.method2(params,callback2);DWREngine.endBatch({method:DWREngine.IFrame});DWREngine.setVerb(verb)这个选项允许你选择POST和GET,无论时用iframe还是XMLHttpRequest方法。
一些浏览器(例如,旧版的Safari)不支持XHR-POST所以DWR就自动切换到GET,即使你设置POST为verb。所以setVerb()应当被仅仅做为一个堤示。如果使用ScriptTag来远程调用,设置verb时没有的。例如,设置全局远程调用的verb:DWREngine.setVerb("GET");设置单次调用:Remote.method(params,{callback:function(data){...},verb:"GET"});设置批量调用:DWREngine.beginBatch();Remote.method1(params,callback1);Remote.method2(params,callback2);DWREngine.endBatch({verb:"GET"});util.jsutil.js包含了一些工具函数来帮助你用javascript数据(例如从服务器返回的数据)来更新你的web页面。你可以在DWR以外使用它,因为它不依赖于DWR的其他部分。你可以下载整个DWR或者单独下载.4个基本的操作页面的函数:getValue[s]()和setValue[s]()可以操作大部分HTML元素除了table,list和image。
getText()可以操作selectlist。要修改table可以用addRows()和removeAllRows()。要修改列表(select列表和ul,ol列表)可以用addOptions()和removeAllOptions()。还有一些其他功能不是DWRUtil的一部分。但它们也很有用,它们可以用来解决一些小问题,但是它们不是对于所有任都通用的。$()$()函数(它是合法的Javascript名字)是从Protoype偷来的主意。大略上的讲:$=document.getElementById。因为在Ajax程序中,你会需要写很多这样的语句,所以使用$()会更简洁。通过指定的id来查找当前HTML文档中的元素,如果传递给它多个参数,它会返回找到的元素的数组。所有非String类型的参数会被原封不动的返回。这个函数的灵感来至于prototype库,但是它可以在更多的浏览器上运行。可以看看DWRUtil.toDescriptiveString的演示。从技术角度来讲他在IE5.0中是不能使用的,因为它使用了Array.push,尽管如此通常它只是用来同engine.js一起工作。如果你不想要engine.js并且在IE5.0中使用,那么你最好为Array.push找个替代品。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-25046-12.html
支持
电池更耐用了