发哥讲堂
专注前端、专注互联网
随笔- 15  文章- 0  评论- 8 
博客园  首页  新随笔  联系  管理  订阅 订阅
2011年5月14日
dojo学习笔记8.延迟

延迟入门

dojo.Deferred

 如下主题:

1、定义

2、状态和触发

3、ajax 

4、链式调用 

5、合并调用 

 

var def = new dojo.Deferred() 

def.then(function(res){ ... },function(err){...});

如果两个回调函数时,第二个是错误时执行。

 

 状态有三种:

1)unresolved  未处理,对象定义后的默认状态

2)resolved 已处理,执行def.resolve()后的状态,调用第一个回调函数;

2)rejected 驳回,执行def.rejected()后的状态,调用第二个回调函数;

 

dojo在Ajax函数中使用到延迟,调用dojo.xhrGet或dojo.xhrPost时,返回延迟对象。

 比如下面代码 

dojo.xhrGet({

  url:"...",

  load:function(content){...}

}) 

 

可以写成: 

 var def = dojo.xhrGet({url:"..."});

def.then(function(content){...});

 

也可直接写成

dojo.xhrGet(url:"...").then(function(content){...}); 

 

还有另一种情况:异步发送两次请求, 返回后在一个回调函数中处理。即延迟列表(DeferredList)

var def1 = dojo.xhrGet({url:"..."});

var def2 = dojo.xhrGet({url:"..."});

var defs = dojo.DeferredList([def1,def2]);

defs.then(function(results){

  var result1 = results[0][1];

  var result2 = results[1][1];

  ... 

}) 

 

posted @ 2011-05-14 23:05 发仔 阅读(163) 评论(0) 编辑
dojo学习笔记7.ajax

主题:

1、常用写法,dojo.xhrGet,dojo.xhrPost

2、事件(load,error,handle)

3、传输参数 (url,content,form)

4、跨域访问 (JSONP、dojo.io.script)

 

常用写法:

Get 示例:

        dojo.xhrGet({
            url: "data.ashx?method=...",
            handleAs: "json",
            load: function (data) { console.dir(data); }

        }); 

事件有

1、载入成功时调用:load

2、载入失败时调用:error

3、最后都会调用:handle

 

传输参数值的几种做法:

1、直接放到URL

2、使用content参数(json对象)

3、使用form参数(相当于提交表单)

 

跨域访问:

dojo.require("dojo.io.script");

dojo.io.script.get({

  url:"http://...",

  callbackParamName:"callback",

  content:{...},

  load:function(){...} 

}) 

 

还有其他方法:xhrPut 和 xhrDelete ,对应用于REST开发中。

 

 

 

 

 

 

posted @ 2011-05-14 11:02 发仔 阅读(98) 评论(0) 编辑
Copyright ©2012 发仔