【jquery】适用Deferred实现jquery将请求封装成函数
2017-06-23 21:05
375 查看
有时候需要将jquery的请求api数据的代码封装成函数,供其他页面调用,此时有两种方法,一种是适用ajax发起同步请求,但是ajax的同步请求会阻塞主线程UI的刷新。在jquery 1.5.0之后引入了Deferred,关于Deferred的相关学习和说明可以参考如下一些优秀的界面:
http://blog.csdn.net/ljj_9/article/details/52797299
本文介绍一个简单的使用demo,该demo封装了三个使用jquery发起的get请求方法,每个方法接受一个传入的参数。代码如下:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>HTML5的标题</title>
<script src="/js/jquery-1.12.2.min.js"></script>
<script>
function getLocation(imei) {
var defer = $.Deferred();
$.get("/devices/"+imei+"/location",function(data,status){
defer.resolve(data);
});
return defer.promise();
}
function getMileage(imei) {
var defer = $.Deferred();
$.get("/devices/"+imei+"/mileage",function(data,status){
defer.resolve(data);
});
return defer.promise();
}
function getFences(imei) {
var defer = $.Deferred();
$.get("/devices/"+imei+"/fences",function(data,status){
defer.resolve(data);
});
return defer.promise();
}
$(document).ready(function(){
$("button").click(function() {
//get location.
$.when(getLocation("869449021424717")).done(function(data) {
alert("get location code="+data.code);
});
//get milegae.
$.when(getMileage("869449021424717")).done(function(data) {
alert("get mileage code="+data.code);
});
//get fences.
$.when(getFences("869449021424717")).done(function(data) {
alert("get fences code="+data.code);
});
});
});
</script>
</head>
<body>
<button>点击发送请求</button>
</body>
</html>
http://blog.csdn.net/ljj_9/article/details/52797299
本文介绍一个简单的使用demo,该demo封装了三个使用jquery发起的get请求方法,每个方法接受一个传入的参数。代码如下:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>HTML5的标题</title>
<script src="/js/jquery-1.12.2.min.js"></script>
<script>
function getLocation(imei) {
var defer = $.Deferred();
$.get("/devices/"+imei+"/location",function(data,status){
defer.resolve(data);
});
return defer.promise();
}
function getMileage(imei) {
var defer = $.Deferred();
$.get("/devices/"+imei+"/mileage",function(data,status){
defer.resolve(data);
});
return defer.promise();
}
function getFences(imei) {
var defer = $.Deferred();
$.get("/devices/"+imei+"/fences",function(data,status){
defer.resolve(data);
});
return defer.promise();
}
$(document).ready(function(){
$("button").click(function() {
//get location.
$.when(getLocation("869449021424717")).done(function(data) {
alert("get location code="+data.code);
});
//get milegae.
$.when(getMileage("869449021424717")).done(function(data) {
alert("get mileage code="+data.code);
});
//get fences.
$.when(getFences("869449021424717")).done(function(data) {
alert("get fences code="+data.code);
});
});
});
</script>
</head>
<body>
<button>点击发送请求</button>
</body>
</html>
相关文章推荐
- PHP fsockopen介绍及fsockopen封装函数实现模拟GET或POST请求
- 详解Ajax请求(三)——jQuery对Ajax的实现及serialize()函数对于表单域控件参数提交的使用技巧
- jQuery的deferred对象使用详解——实现ajax线性请求数据
- 关于JQuery 中$.ajax函数利用jsonp实现Ajax跨域请求ASP.NET的WebService成功获取数据的案例
- Jquery中Deferred实现函数数组并发
- 关于JQuery 中$.ajax函数利用jsonp实现Ajax跨域请求ASP.NET的WebService成功获取数据的案例
- jQuery的deferred对象使用详解——实现ajax同步请求数据
- jQuery封装一个方法实现监控页面所有ajax请求
- 原生javascript封装类似jquery的ajax请求跨域函数
- jarson jQuery的deferred对象使用详解——实现ajax线性请求数据
- 实现在Android简单封装类似JQuery异步请求
- .Net结合JQuery实现向aspx后台函数进行请求。
- JS-封装函数getValue(key),实现获取请求数据中的value值
- JQUERY 浏览器判断实现函数
- 利用JQuery的load函数动态加载页面 以及jQuery动态加载页面和请求所返回的数据
- jQuery的实现原理的模拟代码 -4 重要的扩展函数 extend
- 利用jQuery全局事件ajaxStart为特定请求实现提示效果
- 利用JQuery的load函数动态加载其它页面的内容的实现代码
- 利用jQuery实现更简单的Ajax跨域请求
- jquery之利用ajax与服务器交谈(完全控制ajax请求之全局函数)