加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

dojo学习笔记(一)-dojo.io.IO & dojo.io.BrowserIO)

发布时间:2020-12-16 22:06:32 所属栏目:百科 来源:网络整理
导读:模块: dojo.io.IO dojo.io.bind 处理请求取回需要的数据并处理 这个函数是 AJAX 中最为重要和有用的函数, dojo.io.bind 这个类是用来处理客户端与服务器间通讯的,需要通讯的参数由对象 dojo.io.Request 所定义,具体通讯的方法则由另外一个对象 Transport
模块: dojo.io.IO
dojo.io.bind
处理请求取回需要的数据并处理
这个函数是 AJAX 中最为重要和有用的函数, dojo.io.bind 这个类是用来处理客户端与服务器间通讯的,需要通讯的参数由对象 dojo.io.Request 所定义,具体通讯的方法则由另外一个对象 Transport 所提供。 因此,我们如果需要与服务器通讯,则应该定义一个 Request 对象,其中包括服务器地址及回调函数,例子中 Requset 都是以匿名对象方式定义的 虽然我们可以定义一个自己的 ,但是显然不如直接利用现成的 方便。
Dojo
里提供了一个同时兼容 IE Firefox dojo.io.XMLHTTPTransport ,但是这个对象位于 dojo.io.BrowserIO ,因此,一般 requiredojo.io.IO 时,还应该 requiredojo.io.BrowserIO
UsageExample:
dojo.io.bind({
url:"http://localhost/test.html",//
要请求的页面地址
mimetype:"text/html",170); line-height: 165%; font-family: 宋体;">请求的页面的类型,应该设置为与你请求页面类型对应的
mimetype ,默认为 "text/plain"
method
"GET",170); line-height: 165%; font-family: 宋体;">默认为 "GET"
sync:false,170); line-height: 165%; font-family: 宋体;">默认为异步执行

useCache:false,170); line-height: 165%; font-family: 宋体;">默认为不使用页面缓存,注意这里的缓存并不是浏览器的缓存,而是
Dojo 自身所维护的页面缓存
preventCache:false,170); line-height: 165%; font-family: 宋体;">默认为启用浏览器缓存,否则将通过自动增加不同的参数来确保浏览器缓存失效

timeoutSeconds:3000,//3
秒后超时,如果为 0 则永不超时
load:function(type,data,evt){alert(data);},//typeshouldbe"load",dataisthatwewanted
error:function(type,error){alert(error.message);},//errorisdojo.io.Error
timeout:function(type){alert("
请求超时! ");}
});
你也可以用一个 handle 来处理所有的事件
dojo.io.bind({
url:"mimetype
timeoutSeconds:3000,170); line-height: 165%; font-family: 宋体;">则永不超时

handle:function(type,evt){
if(type=="load"){alert(data);}//dataisthatwewanted
elseif(type=="error"){alert(data.message);}//dataistheerrorobject
else{;}//othereventsmaybeneedhandled
}
});
如果没有在 中指定所用的 transport ,则 会自动的在已注册的 transports 中寻找能够处理这个 ,如果不能找到,则返回指定的 。下面是一个指定了 的例子 :
dojo.io.bind({
url:"
transport:"XMLHTTPTransport",
load:function(type,//errorisdojo.io.Error
timeout:function(type){alert("
你还可以利用 bind 来得到一个 Javas cript 所定义的对象(注意 必须要定义为 "text/javas cript"
testObj=dojo.io.bind({
url:"http://localhost/test.js",//test.js
里定义了一个对象
mimetype:"text/javas cript",170); line-height: 165%; font-family: Verdana;">
handle:function(type,evt){
if(type=="load"){alert(data);}//dataisaobjectorvalue
elseif(type=="error"){alert(data.message);}//dataistheerrorobject
else{;}//othereventsmaybeneedhandled
}
});
下面是一个 Post 的例子 :
dojo.io.bind({
url:"http://localhost/test.aspx",170); font-family: 宋体;">要提交的页面地址

mimetype:"text/html",170); font-family: 宋体;">请求的页面的类型,应该设置为与你请求页面类型对应的
mimetype
timeoutSeconds:3000,170); font-family: 宋体;">秒后超时,如果为
0 则永不超时
method:"POST",
formNode:dojo.byId("myForm"),170); font-family: 宋体;">指定提交的
Form 名称

load:function(type,170); font-family: 宋体;">请求超时!
");}
});
另一个 (withoutFormtopost):
dojo.io.bind({
url:"要提交的数据
load:function(type,170); font-family: Verdana;">");}
});
dojo.io.queueBind
有时,我们需要一次发出多个网页请求,则应该使用 dojo.io.queueBind ,因为浏览器可能只允许同时发出有限个数的请求,如果是使用 dojo.io.bind 的话,则有可能会申请不到新的 XMLHttp 对象而导致出错。
用法与 是一样的。
dojo.io.argsFromMap
用来把对象转换为 URL 的参数形式
UsageExample:
dojo.io.argsFromMap({a:1,b:2,c:3});//willreturn"c=3&b=2&a=1"
dojo.io.argsFromMap({name:"
",value:" "},"utf");//willreturn"value=?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读