【jquery】適用Deferred實現jquery將請求封裝成函式
有時候需要將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>
相關文章
- KKB : Jquery實現Ajax請求jQuery
- 從封裝函式到實現簡易版自用jQuery (二)封裝函式jQuery
- 命令模式-將請求封裝成物件模式封裝物件
- jQuery DeferredjQuery
- js封裝函式來 解釋jQuery的執行原理JS封裝函式jQuery
- jQuery如何實現新增自定義函式jQuery函式
- flutter dio網路請求封裝實現Flutter封裝
- jQuery 的deferred物件jQuery物件
- 【JavaScript框架封裝】實現一個類似於JQuery的CSS樣式框架的封裝JavaScript框架封裝jQueryCSS
- jQuery實現的非同步請求程式碼例項jQuery非同步
- 高效使用jquery之一:請使用'On'函式jQuery函式
- jquery ajax 跨域請求jQuery跨域
- jquery ajax 的封裝jQuery封裝
- jquery 封裝 bootstrap tablejQuery封裝boot
- 利用JQuery實現更簡單的Ajax跨域請求jQuery跨域
- jQuery的Deferred物件概述jQuery物件
- jQuery常用函式jQuery函式
- jQuery功能函式jQuery函式
- jquery 實現iframe 自適應高度jQuery
- 利用Jsonp實現跨域請求,spring MVC+JQueryJSON跨域SpringMVCjQuery
- 【JavaScript框架封裝】實現一個類似於JQuery的動畫框架的封裝JavaScript框架封裝jQuery動畫
- jquery 封裝的ajax呼叫jQuery封裝
- jQuery的deferred物件詳解jQuery物件
- php用curl封裝一個http請求類(鏈式呼叫)PHP封裝HTTP
- jquery實現的ajax請求獲取json資料程式碼jQueryJSON
- jQuery的each函式jQuery函式
- jQuery.extenda函式jQuery函式
- 封裝axios請求封裝iOS
- 熟練使用使用jQuery Promise (Deferred)jQueryPromise
- NUXT3.0實現網路請求二次封裝UX封裝
- 使用promise封裝jquery的ajax來實現async和await方式Promise封裝jQueryAI
- jquery實現的iframe高度自適應效果jQuery
- jQuery實現圖片尺寸自適應效果jQuery
- 用原生js封裝一個ajax請求方法JS封裝
- jquery Ajax 請求錯誤 Unexpected tokenjQuery
- jQuery裡如何使用ajax傳送請求jQuery
- 基於jQuery的三種AJAX請求jQuery
- jQuery ajax請求程式碼例項分享jQuery