使用jQuery处理AJAX请求的基础学习教程
$.ajax快捷方法两种方法请求方式不同,其他方式相同. 参数:url[请求地址],data[请求的数据内容(obj对象)],callback[回调函数(只能处理请求成功事件)], type[请求返回数据的编码格式(默认ContentType指定格式)] 将页面片段载入到selector的容器里面 如果是JSON数据回调会成功,否则失败 动态加载脚本文件 $.ajax详细使用方法$.ajax({
url:'/test',success:function(){ alert('ok'); } }); 处理响应结果的回调函数: success[成功],error[请求失败], statusCode[指明返回的状态码的回调函数], complete[请求返回前的回调函数(处理返回不同状态码的请求)] 请求的数据:data,processData,contentType,traditional 响应数据:dataType,dataFilter 前置处理:beforeSend 请求类型:GET(默认) | POST | PUT | DELETE 同步异步:async(默认true) 是否缓存:cache(默认true) 其他参数: 1.global[是否触发全局事件] 2.ifModifed[仅在服务器数据改变时候加载数据] 3.username,password[http需要验证时候] 4.timeout[设置请求超时时间,若请求超时触发error] 5.context[回调中this指向的对象] 其他相关的API$.ajaxSetup(option) 设置全局默认参数 //修改全局请求方式为post
$.ajaxSetup({ type:'post',headers:{ test:new Date().getTime },cache:false }); //请求方式改变为post 请求发起前的预处理,提供了一种AOP(面向切面)编程模式,常见用途: 1.根据option设定执行特定处理逻辑 2.修改option值改变请求默认行为 3.通过return修改默认dataType 例:通过return修改默认dataType $.ajax('/test',{
type:'post',dataType:'text',//自定义属性 test:'haha' }); 例:多次请求仅最后一次有效,避免多次请求导致的数据混乱 $.ajax('/test/');
$.ajax('/test/'); 例:统一修改请求路径 $.ajax('/usr/');
全局事件jQuery-1.9以后,全局事件必须绑定在document上 > ajaxSend >> ajaxSend >> ajaxSuccess >> ajaxComplete >> ajaxError >> ajaxComplete >> ajaxStop
序列化 1.param[序列化一个 key/value 对象] 2.serialize[通过序列化表单值,创建 URL 编码文本字符串] 3.serializeArray[通过序列化表单值来创建对象数组(名称和值)] 例:param() 例:serialize() ajax链式编程方法在开发的过程,经常会遇到一些耗时间的操作,比如ajax读取服务器数据(异步操作),遍历一个很大的数组(同步操作)。不管是异步操作,还是同步操作,总之就是不能立即得到结果,JS是单线程语音,不能立即得到结果,便会一直等待(阻塞)。一般的做法就是用回调函数(callback),即事先定义好一个函数,JS引擎不等待这些耗时的操作,而是继续执行下面的代码,等这些耗时操作结束后,回来执行事先定义好的那个函数。如下面的ajax代码: 但这样写不够强大灵活,也很啰嗦。为此,jQuery1.5版本引入Deferred功能,为处理事件回调提供了更加强大而灵活的编程模式。 不就是链式调用嘛,有何优点? 优点一:可以清晰指定多个回调函数 试想一下,如果用以前的编程模式,只能这么写: 优点二:为多个操作指定回调函数 用传统的编程模式,只能重复写success,error等回调了。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |