dojo笔记

http://dojo.jot.com/WikiHome/Tutorials/HelloWorld

还有dojo book

 

有哪些开发工具。不同浏览器,不同辅助开发工具。

调试。

Fiddler查看客户端到服务器之间的通信,可以诊断Ajax调用慢的原因。

 

检查JS语法的方法

 

调试的方法

 

优化JS代码。找出运行慢的地方,进行改善。

 

debugAtAllCosts ???

 

Dojo.profile 可以检查function运行花费了多少时间。

 

Function(){

Var startTime = new Date();

//

Dojo.debug("Total time: "+(new Date() - startTime));

}

Dtemp/保留3个月目录中,按Tutorial说明进行实验。

 

Dojo.addOnLoad(function_name)

页面载入后(马上)运行。页面初始处理,比如给元素绑定事件,因为浏览器处理显示dojo元素后,才能进行事件绑定。

 

Dojo.widget.byId('widgetId_name')

对应到带 widgetId='attribute_name' 属性的dojo元素

如果是一般的带 id='id_name' 属性 的普通HTML元素。

可以用dojo.byId('id_name')

 

dojo元素

需要预先申明dojo.require("dojo.widget.Button")

 

<button dojoType='Button' >button_name</button>

 

对已有元素绑定事件处理函数

需要预先申明

Dojo.require("dojo.event.*")

用的时候,这样

Dojo.event.connect(element_obj,'event_name','function_name')

比如:

Dojo.event.connect( $(' '), 'onClick', 'sayHello')

 

绑定对象方法还有一种用法。就是把一个对象(元素对象或自定义对象)的一个方法绑定到另一个对象的一个方法上,即一个对象的方法运行结束后,马上继续运行另一个对象的方法。

比如

Dojo.event.connect(obj1,'func1',obj2,'func2');

obj1的函数func1运行完后运行obj2的函数func2

 

好像说每用一次dojo.event.connect就会有一个连接。

另外也有方法,可以取消对象上方法的绑定。

 

直接用document.getElementById不能获取dojo元素对象。因为dojo自己内定了ID值,就是说你即使设置了ID属性,dojo会转换成它自己的ID属性值,因此你直接用这个ID属性来取,会取不到。

 

Type 返回类型。返回'load'表示成功。'error'表示错误。
Data 读取服务器上文件,返回的数据。
Evt    一个dojo事件对象
 
读取服务器上文件的使用方法
Dojo.io.bind({url:'filename.ext', handler:function_name,
Content: {name: dojo.byId('name').value}})
 
参数content传递一个值到服务器。应该是作为URL的参数的作用。
content的第一个参数是和url参数一起传递的变量名。其后的第二个参数是对应的值。
Dojo.io.bind的默认method为get
 
注意之前要声明 dojo.require("dojo.io.*")
 
参数content也可以改为
formNode: dojo.byId('myForm')
相当于提交指定form的数据。注意设置Form的method为get或post。
 

利用dojo声明一个对象,注意不是类。

Var obj = {

Counter : 0, //成员属性

Foo : function(){  //成员方法foo

Alert("foo");

This.counter++; //引用成员变量

}

Bar : function(){

Alert("bar")

This.counter++;

}

};

 

 

Dojo.io -函数库

包含XMLHTTP功能。

也就是用这个包就可以做Ajax请求了。

Dojo.io.bind()就是一个异步请求。

 

Dojo.io.bind()的参数通常是一个匿名对象(anonymous object

比如:

Dojo.io.bind( {

Url : "http://xxxxxx",

Load : function(type, data, evt){

//do something

}

Mimetype : "text/plain"

});

这个调用的意思是,调用某个URL请求,返回后自动调用load 那行的函数

 

也可以加一个错误处理函数。

比如:

dojo.io.bind({

url: "http://foo.bar.c",

load: function(type, data, evt){},

error: function(type, error){ },

mimetype: "text/plain"

});

 

专门对请求超时的处理

dojo.io.bind({

url: "http://foo.bar.c",

load: function(type, data, evt){},

error: function(type, error){ },

timeoutSeconds : 2,

Timeout : function(type, data, evt){ }

});

 

没有设置timeoutSeconds属性时,默认为0,表示“一直等”

 

还可以指定请求的method

Dojo.io.bind( {

Url : "http://xxxxxx",

Load : function(type, data, evt){

//do something

},

Method : "get"

});

 

Dojo.io.request 类的对象?

 

要能对ajax请求有错误处理。比如404页面没有找到、服务无效,或者因为某些原因超时。因为ajax是后台处理,如果没有后台错误处理,前台页面就会显示错误(某种程度上的错误,比如载入画面总是显示,而没有数据载入。)

 

Module dojo的逻辑单元。和java的类包一样,另外自身也有构造器,和成员函数。

比如 dojo.html module包含了很多function。如dojo.html.getContentBox()

 

一个module在一个js 文件中,有时也分多个文件。

 

定义一个资源。包。

Dojo.provide(" ")

 

Widget namespace

widget我的理解一般是些可视化控件。

也可以自己定义。比如放在markpeak namespace下。 比如"markpeak:Button"就是指自己定义的按钮控件。"dojo:Button"就是dojo的按钮控件。

有几种使用dojo widget的方法

方法一:<input dojoType="sss" widgetId="sss"></button>

 

方法二:<input class="dojo-ComboBox" value="default" dataUrl="comboBoxData.js">

 

方法三:<dojo:ComboBox value="default" dataUrl="comboBoxData.js">

 

dojo的组合框可以根据输入的关键字列出匹配的所有选项。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值