/** The function that we use to fetch/calculate a session id */
Java代码
dwr.engine._getScriptSessionId = function() {
if (dwr.engine._scriptSessionId == null) {
dwr.engine._scriptSessionId = dwr.engine._origScriptSessionId + Math.floor(Math.random() * 1000);
}
return dwr.engine._scriptSessionId;
};
scriptSessionId是通过原始的脚本SessionId加上一个随机数得到的。parameters:{}参数; headers:{},http请求的头信息;handlers:{}处理器对象;preHooks:[],我把它叫做前勾,作用是在调用服务器的组件的时候,类似一个代理,如果preHooks存在,我先调用它的内容,然后再调用web组件的内容,最后调用postHooks。对于Demo.sayHello = function(p0,callback){dwr.engine._execute(Demo._path,'Demo','sayHello',p0,callback);},它会先调用preHooks的内容,接着执行请求,然后调用postHooks的内容。rpcType:dwr.engine._rpcType指的是请求的类型。因为dwr框架并不是仅仅针对xml、httprequest,它还会针对其他的请求类型:iframe、scriptshell脚本。httpMethod:dwr.engine._httpMethod指的是请求方法:post或者get,在dwr框架中,只允许这两种方式,其它的方式是不允许的。
async:dwr.engine._async,指的是异步还是同步,在ajax中,open的最后一个参数为true就是异步,false就是同步。如果为false来讲,用ajax就没有什么意义,所以一般来讲就是true.timeout:dwr.engine._timeout,指的是请求的超时时间。
接下来看execute方法是怎么将vararg_params分割长参数和回调函数的?
由于vararg_params里面包含了方法的参数以及回调函数,由于execute里面要调用回调函数,因此必须进行方法的参数和回调函数的分割。把参数放到参数的数组中,回调函数放到回调函数的变量中。
var args = [];用来放置方法的参数,去除回调函数以外的用来调用的方法的参数。
看看下面的代码:
for (var i = 0; i < arguments.length - 3; i++) {
args[i] = arguments[i + 3];
}
// All the paths MUST be to the same servlet
if (batch.path == null) {
batch.path = path;
}
else {
if (batch.path != path) {
dwr.engine._handleError(batch, { name:"dwr.engine.multipleServlets", message:"Can't batch requests to multiple DWR Servlets." });
return;
}
}
for (var i = 0; i < arguments.length - 3; i++) {
args[i] = arguments[i + 3];
}
// All the paths MUST be to the same servlet
if (batch.path == null) {
batch.path = path;
}
else {
if (batch.path != path) {
dwr.engine._handleError(batch, { name:"dwr.engine.multipleServlets", message:"Can't batch requests to multiple DWR Servlets." });
return;
}
}
在javascript中,创建一个函数,它有一个隐式的参量arguments,这个arguments相当于我这个函数调用时传进去的几个参数,而且这几个参数都是放置在arguments里面的,它并不是隐式的显示出来,因为弱类型的语言,参数列表个数不同可以调用同一个函数。arguments负责把所有的参数存放在里面。
分享到:
相关推荐
dwr前端源码分析、dwr协议分析、dwr入门实例
内含各种文档文件,如DWR的xml配置文件说明,DWR学习笔记,DWR技术分析,DWR开发培训,WEB界面开发规范,还有一些重要控件的代码分析和文档说明,如树控件。
dwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwr
dwr的简单使用,是一个Eclipse的项目,直接导进去就可以看到使用的方式了 对于初学者这个应该是不错的demo哦~
dwr反向Ajax的三种情况dwr反向Ajax的三种情况
dwr 框架dwr 框架dwr 框架dwr 框架dwr 框架dwr 框架
dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;
dwr基础_dwr兼容三大框架 myeclipse环境下运行 有视频解说
dwr入门例子 包含类型转换 dwr实战.doc
DWR 实例 + DWR 深入 (源代码分析).doc dwr学习的实例
DWR开发流程,ajax很好的开发辅助工具,每步很详细,完全傻瓜操作指南
DWR中文文档DWR中文文档DWR中文文档DWR中文文档DWR中文文档
DWR笔记 DWR.xml配置文件说明书 DWR技术分析
dwr源码
dwr笔记 dwr自学资料 dwr笔记 dwr自学资料 dwr笔记 dwr自学资料
dwr中文文档dwr中文文档dwr中文文档dwr中文文档dwr中文文档dwr中文文档dwr中文文档
DWR介绍DWR介绍DWR介绍DWR介绍DWR介绍DWR介绍
Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr...
DWR配置文件详解 DWR配置 DWR配置文件
配置dwr组件到dwr.xml文件中,如果有必要,配置convert,进行java和javascript类型互转。 5.通过反射机制,dwr将步骤4的类转换成javascript代码,提供给前台页面调用。 5.编写网页,调用步骤5的javascript中的相关...