Jquery中进行post请求时同步与异步的区别(从实例入手学习)
生活随笔
收集整理的這篇文章主要介紹了
Jquery中进行post请求时同步与异步的区别(从实例入手学习)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
場景
表單中有兩個輸入框input在提交這個表單前需要對兩個輸入框進行校驗。
即點擊提交按鈕時會經過校驗的方法,此方法會post方式提交到后臺,在請求后臺成功后的回調方法中會對js變量進行賦值,進而決定是否提交此表單。
$.post
默認是異步提交,所謂異步提交就是在請求發出去之后,不管結果是否返回,都會執行后面的代碼。
所以呀想把返回的結果或者根據返回結果給js變量賦值,那么就要使用同步請求。同步請求就是等請求結果返回后再執行后面的代碼。
因為默認是異步請求,所以修改為同步請求的方式為:
async:false,添加如上屬性。
實現
form表單代碼:
<form id="inAirportForm" action="${ctx}/frontPage/passFlight/GJbook.html" method="post" class="plug_form dis_none"? onsubmit="return inAirportCheck(this)"><button class="btn_max wm_94 bg_title c_white mt_1em h_36em"type="submit"><spring:message code="search" /></button><buttonclass="btn_max wm_94 border bor_title bg_white c_title mt_1em h_36em"type="reset"><spring:message code="reselection" /></button>?</div> </form>中間input框代碼省掉。
js驗證方法代碼
function inAirportCheck(that) {var guojiStrart = $(".plug_airport3 ").val();var guojiEnd = $(".plug_airport4").val();debuggervar formAction = "${ctx}/frontPage/passAddrAirport/validateIsGuoNeiAll";var validateIsGuoNeiAll = false;$.post({async:false,url: formAction,cache: false,? //禁用緩存data:JSON.stringify({"guojiStrart":guojiStrart,"guojiEnd":guojiEnd}),contentType: "application/json",dataType: "json",success: function (result) {debuggerif ("300" == result.statusCode) {$ak.alert(result.message, { //(微信平臺的H5使用方法 $ak.alert)title: "信息提示",//彈窗標題button_ok: "確定",button_cancel: "取消",icon: "error", //圖標類型(warning,error,info,question,success)animateIn: "bounceInDown",//彈窗顯示效果animateOut: "bounceOutUp"});validateIsGuoNeiAll = false;}if("200" == result.statusCode){validateIsGuoNeiAll = true;}}});return ???validateIsGuoNeiAll; }如上代碼是設置為同步之后的代碼,如果不加async:false,< BR> 則后臺還沒走完驗證,表單已經提交。
總結
以上是生活随笔為你收集整理的Jquery中进行post请求时同步与异步的区别(从实例入手学习)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux-权限管理相关操作
- 下一篇: Jquery中实现表单提交到SSM后台前