一、Ajax的使用
1.1、load方法:从服务器上获取静态数据文件
<script type="text/javascript">
$(document).ready(function(){
// load()方法:jquery中用来请求静态文件的方法,如请求html文档
// load的参数:
// url:要请求的静态文件的路径
// data:要发送给服务器的参数(如果没有传参,则load用get方式请求服务器;如果传了参数,且参数是键值对,则load会转换为post方式请求数据)
// callback:请求结束时执行的回调函数(不管请求是否成功,都会执行该回调函数)
$('button').click(function(){
// load请求下来静态文件后,会直接把该文件拼接进指定的标签中
// load方法筛选请求内容:在url之后添加要加载的标签的标志(标志可以是tag、class、id),之间使用空格隔开,这样就只能加载到指定的数据
// $('#news').load('news.html .news1');
// 回调函数中的三个可选参数
// 第一个参数:请求到的数据
// 第二个参数:请求状态
// 第三个参数:jQuery创建出来的请求对象
$('#news').load('news.html h3', function(responseText, responstStatus, responseObj) {
console.log(responseText);
console.log(responstStatus);
console.log(responseObj);
});
});
})
</script>
1.2、GET和POST方法
<script type="text/javascript">
$(document).ready(function(){
// 通过点击按钮请求数据
$('button').click(function(){
// .get()用来向服务器发起get请求
// 第一个参数:请求路径
// 第二个参数:对象类型的数据,把需要提交给服务器的参数放在这个对象中
// 第三个参数:回调函数,当请求成功时,会执行该函数,通过这个回调函数拿到请求的值
// 第四个参数:服务器返回数据的类型(如果我们需要请求的服务器给我们返回的是json数据,则这个参数只能写json)
$.get('text.json',{name:'zhangsan'}, function(data){
// 通过data参数拿到请求到的值
alert(data);
// 数据提取,并拼接在文档中
});
// .post()方法,用来发起post请求。当服务器只能接受post请求时,使用该方法,该方法的用法和参数情况与.get()方法完全一样
});
</script>
1.3、ajax方法
$.ajax(options)
参数options是一个对象类型的数据包含
<script type="text/javascript">
$.ajax({
// url参数:必填。表示数据接口
url: 'http://10.0.159.198/news.php',
// type参数:可选。GET\POST
// GET:1、参数拼接在URL之后,2、而且参数的大小有限制:2k(服务器端口最多只能接受2k个字节的数据)3、用GET发起的请求数据会在浏览器中缓存
// POST:1、参数存放在请求头中,2、传递参数的大小没有限制,3、浏览器不会缓存post数据
type: 'GET',
// data:可选。把需要提交给服务器的参数用&拼接起来。
data: 'user=123&pass123',
// success:可选。表示请求成功的回调函数
success: function(data) {alert(data.name)},
// error:可选。表示请求失败的回调函数
//error: function (err) {alert(err)},
// timeout:可选。设置请求超时时间
timeout: 3000
});
使用$.ajax()进行JSONP跨域
<script type="text/javascript">
$.ajax({
url: 'http://10.0.159.198/news.php',
type: 'GET',
// dataType:表示希望服务器返回的数据类型
// jsonp:只存在jquery中。
dataType: 'jsonp',
// jsonp:表示传递给服务器时回到函数名字值的属性名
jsonp: 'callbackFun',
// data:传递参数以及回调函数。回调函数的属性名要和jsonp中指定的一致,回调函数的值用‘?’表示
data: 'callbackFun=?',
success: function(data){alert(data.name)}
})
</script>
1.4、getJSON方法:专用于加载json文件
<script type="text/javascript">
$(document).ready(function(){
// $.getJSON():使用get方式来获取json文件
// url:请求的数据接口
// callback:请求成功的回调函数,通过这个函数的参数获取到服务器返回的值
$.getJSON('text.json',function(data){
alert(data);
});
使用$.getJSON()方法进行JSONP跨域:
// 只需要在url后拼接上回调函数的属性名和属性值即可。属性名后后台人员指定,属性的值可以使一个‘?’,jQuery会自动把这个"?"转化为回调函数的函数名
$.getJSON('http://10.0.159.198/news.php?msg=一条大河波浪宽&callbackFun=?', function (data){
alert(data.msg);
})
});
</script>
二、promiseJS规范使用
什么是promise?
promise对象用来进行延迟(deferred)和异步(asynchronous)计算,执行完$.ajax后返回一个对象,用变量接收这个对象后,可以把不同状态的回调函数添加在这个对象上.
如何使用promise?
var promise = $.ajax({
type:"get",
url:"zed.txt",
async:true
});
promise.done(function(res){alert(res)}).fail(function(err){alert(err)}).always(function)(){console.log('123')});
.done()当数据请求成功后会执行这个方法,并把数据传递进回调函数
.fail()当数据请求失败后会执行这个方法,并把错误传递进回调函数
.always()不论数据请求成功还是失败,都会执行这个方法
为什么要用promise?
使用promise可以为服务器的某一个状态添加多个回调函数