一周学会Mootools 1.4中文教程:(5)Ajax
ajax在我们前台的开发中是非常重要的,所以我们单独拿出一节课来讲述,首先我们看一下mootools的ajax构成
语法:
var myRequest=new Request([参数]); 参数:
url - (string:默认是null) 要请求的URL.
data - (string:默认是空) 默认要请求或发送的数据.
link - (string:默认是'ignore') 可为'ignore','cancel','chain'.
'ignore' - 当请求正在执行之中时,新的请求将被忽略
'cancel' - 当请求正在执行之中时,将立即取消当前执行中的请求,开始执行新的请求
'chain' - 当请求正在执行之中时,将会把新的请求链接在当前请求之后,依次执行所有请求
method - (string:默认是'post') HTTP请求类型,可为'post' 或 'get'.
emulation - (boolean:默认是true) 仿真,通常不用理会
async - (boolean:默认是true) 异步,如果设为false,那么在请求数据的时候将会同步冻结浏览器请求,通常不用理会.
timeout - (integer:默认是0) 超时时间
headers - (object) 设置content-type头.
urlEncoded - (boolean:默认是true) url编码,如果设为true,则content-type头将被设为www-form-urlencoded+encoding
encoding - (string:默认是'utf-8') 数据的编码.
noCache - (boolean;默认是false) 如果设为true,则不缓存
isSuccess - (function) 请求结束之后的事件.
evalScripts - (boolean:默认是false) 如果设为true,结果内的script会被执行
evalResponse - (boolean:默认是false) 如果设为true,请求内容将会被执行.
user - (string:默认是null) 如果设置了此项,那么请求的时候将会尝试认证.
password - (string:默认是null) 和user搭配使用,设置此项的时候要填写密码而不是星号
上边已经列出了所有的ajax参数,那么mootools为我们提供了哪些事件呢?我们来看一下:
onRequest
当请求被发送的时候触发. onLoadstart
当请求已载入的时候触发,在其他所有进程之前. onProgress
当请求正在建立上传或下载的进程时触发. onComplete
当请求结束时触发. onCancel
当请求被取消时触发. onSuccess
当请求成功完成后触发. onFailure
当请求失败时触发. onException
当设置一个请求头失败时触发. onTimeout
当超出了options.timeout所设置的毫秒数,却没有发生状态值的改变时触发.
我们再来看一下他还有哪些额外的方法:
setHeader
添加或修改一个请求的头信息. 并不会重写options.
示例:
var myRequest=new Request({url:'getData.php',method:'get',headers:{'X-Request':'JSON'}});
myRequest.setHeader('Last-Modified','Sat,1 Jan 2005 05:00:00 GMT'); getHeader
返回响应头,如果没有发现则为null.
示例:
var myRequest=new Request({url:'getData.php',method:'get',onSuccess:function(responseText,responseXML){
alert(this.getHeader('Date'));//显示服务的数据 (如,'Thu,26 Feb 2009 20:26:06 GMT')
}}); send
打开请求链接并发送在options里预设的数据
示例:
var myRequest=new Request({
url:'http://localhost/some_url'
}).send('save=username&name=John'); cancel
取消当前正运行的请求.
示例:
var myRequest=new Request({url:'mypage.html',method:'get'}).send('some=data');
myRequest.cancel(); isRunning
如果当前请求正在运行则返回true
示例:
var myRequest=new Request({url:'mypage.html',method:'get'}).send('some=data');
if(myRequest.isRunning()) //It runs!
上面说了那么多还没进入正题,连个完整的例子都没出来,Mootools的ajax够强大,我喜欢,嘿嘿,好了我们马上进入正题给大家展示一个完整的ajax请求的例子:
var myRequest=new Request({//建立Request对象
url:'image.php',//要请求的地址
onProgress:function(event,xhr){//建立进度显示在控制台内
var loaded=event.loaded,total=event.total;
console.log(parseInt(loaded / total * 100,10));
}
}).send();//用他的send方法发送 //再来一个例子
var myElement=$('myElement');//选节点
var myRequest=new Request({//建立Request对象
url:'getMyText.php',//要请求的地址
method:'get',//get请求
onTimeout:function(){//超时
myElement.set('text','超时了');
},
onFailure:function(){//请求失败
myElement.set('text','请求失败了');
},
onProgress:function(event,xhr){//建立进度显示在控制台内
var loaded=event.loaded,total=event.total;
console.log(parseInt(loaded / total * 100,10));
},
onRequest:function(){//当请求被发送时设置内容
myElement.set('text','loading...');
},
onSuccess:function(responseText){//结束后重设内容
myElement.set('text',responseText);
},
onFailure:function(){//失败时提示
myElement.set('text','Sorry,your request failed:(');
}
}); //$('myLink')点击时,触发ajax的send方法
$('myLink').addEvent('click',function(event){
event.stop();//终止掉$('myLink')的默认事件(假如是<a ..>防止超链接跑到别的页面上)
myRequest.send('userid='+this.get('data-userid'));
});
看完了上边这个完整的示例之后有没有感觉Mootools的ajax很彪悍?还是你觉得他太复杂,没关系我再来个简洁型的,不管你有什么癖好都让你满意.
var myHTMLRequest=new Request.HTML().get('myPage.html');
var myHTMLRequest=new Request.HTML({url:'myPage.html'}).post('user_id=25&save=true'); <div id="content">Loading content...</div>
$('content').load('page_1.html'); //从这个网址载入"load/?user_id=25".
var myHTMLRequest=new Request.HTML({url:'load/'}).get({'user_id':25}); Data from Element via POST:
<form action="save/" method="post" id="user-form">
<p>
Search:<input type="text" name="search" />
Search in description:<input type="checkbox" name="search_description" value="yes" />
<input type="submit" />
</p>
</form> //这里是一个submit事件
var myHTMLRequest=new Request.HTML({url:'save/'}).post($('user-form'));
好了,这一课讲完了,有问题就进群(16648471)讨论吧,注意:加群的时候要说明你从哪个网站来到.
一周学会Mootools 1.4中文教程:(5)Ajax的更多相关文章
- 一周学会Mootools 1.4中文教程:(7)汇总收尾
转眼之间已经第七课了,这也将成为最后一课,如果这7课下来您感觉水平没有达到预想的水平,没关系您可以继续关注本站的博文,我会陆续发一些类似的文章帮您提升水平,另外我最近打算和群里的几个Mootools爱 ...
- 一周学会Mootools 1.4中文教程:序论
刚才发了几篇Mootools(以后直接简称Moo或Mt,看到这两个名字的时候不要感到奇怪),有一位热心的朋友"追杀"告诉我说现在已经出到1.4了,就不要再纠结于1.2了,想象一下有 ...
- 一周学会Mootools 1.4中文教程:(1)Dom选择器
利器: 君欲善其事须先利其器,好吧因为我们的时间比较紧迫,只有六天而已,那么六天的时间用死记硬背的方式学会Mt犹如天方夜谭,因此我们需要借鉴一下Editplus的素材栏帮我们记忆就好了,当我们需要用到 ...
- 一周学会Mootools 1.4中文教程:(6)动画
先看一下动画的参数设置: 参数: fps - (number:默认是50) 每秒的帧数. unit - (string:默认是 false) 单位,可为 'px','em',或 '%'. link - ...
- 一周学会Mootools 1.4中文教程:(3)事件
今天我們講解一下mt的事件部分,对于事件的讲解主要包含三部分,分别是:绑定,移除,和触发,我们首先来看一个例子 //jquery的事件绑定方式$('a').click(function){ alert ...
- 一周学会Mootools 1.4中文教程:(4)类型
Mootools的类型主要包含下边几部分:String:字符串;Number:数字;Array:数组;Object:对象;Json:;Cookie:. 这也是我们今天的讲述重点.每一种数据类型Mt都为 ...
- 一周学会Mootools 1.4中文教程:(2)函数
温故: 透过对上一节课的学习,相信大家对mt的选择器应该有了一定的认识了,我再放几个小示例让大家对选择器的复杂应用有所了解: <!DOCTYPE html PUBLIC "-//W3C ...
- 一周学会go语言并应用 by王奇疏
<一周学会go语言并应用> by王奇疏 ( 欢迎加入go语言群: 218160862 , 群内有实践) 点击加入 零.安装go语言,配置环境及IDE 这部分内容不多,请参考我的这篇安装环境 ...
- webstorm的中文教程和技巧分享
webstorm是一款前端javascript开发编辑的神器,此文介绍webstorm的中文教程和技巧分享.webstorm8.0.3中文汉化版下载:百度网盘下载:http://pan.baidu.c ...
随机推荐
- JavaScript的日期处理
很久前写的代码了,偶尔看到贴出来做个备忘,写得有点乱,懒得整理了. // 根据初始日期和滚动周期及滚动次数来计算终止日期,日期滚动周期,// 可以是每天(DAY).每周(WEEK).每月(MONTH) ...
- ftp上来显示的时间和系统时间不一致
ftp上来显示的时间和系统时间不一致,是因为默认情况下,vsftpd 是用GMT做为他的时间的,所以和系统的时间可能会不一致 修改也非常简单: vi /etc/vsftpd/vsftpd.conf 在 ...
- 浅谈C中的指针和数组(七)
现在到揭露数组名本质的时候了,先给出三个结论: (1)数组名的内涵在于其指代实体是一种数据结构,这种数据结构就是数组: (2)数组名的外延在于其可以转换为指向其指代实体的指针,而且是一个指针常量: ( ...
- web.xml加载顺序详解
一. 1.启动tomcat启动web项目,首先读取web.xml文件中<context-param>和<listener> 2.容器创建一个ServletContext(ser ...
- Android DatePicker和TimePicker
监测日期改变的监听器: OnDateChangedListener和OnTimeChangedListener() 当用户改变Datepicker里的年.月.日时,将触发 ...
- KETTLE使用入门
一.准备文件 1.安装java虚拟机 2.安装kettle安装文件 二.使用步骤 1.点击Spoon.bat,启动kettle,弹出DOS窗口如下: 2.进入主界面 3.新建资源库
- python之字符串格式化(format)
用法: 它通过{}和:来代替传统%方式 1.使用位置参数 要点:从以下例子可以看出位置参数不受顺序约束,且可以为{},只要format里有相对应的参数值即可,参数索引从0开,传入位置参数列表可用*列表 ...
- CSS自学笔记(4):CSS样式表的使用
当浏览器读到一个样式表时,浏览器会根据这个样式表来格式化html文档,从而表现出各式各样的网页. 想要浏览器读到样式表,有三种方法: 1.外部样式表 外部样式表可以理解为.CSS文件.当多个页面使用同 ...
- Umbraco安装权限问题
当安装或升级,甚至是使用Umbraco时,如果出现一些莫名其妙的问题. 估计都是权限出了问题,用心参考下文: https://our.umbraco.org/documentation/Getting ...
- 当你还在争夺移动支付的时候,我已经统一了IC卡市场
摘要:虽然说今年移动支付行业的发展很快:苹果.Twitter和Facebook等巨头都开始进军这个市场,再加上PayPal.Coin和Square几个“老玩家”的存在,使得今年的移动支付市场热闹非凡. ...