jquery ajax 請求小技巧實例分析
本文實例講述了jquery ajax 請求小技巧。分享給大家供大家參考,具體如下:
jquery 是一個非常好用的js框架,它為我們提供了很多工具。啟動異步請求就是很好用的一個工具
官方推薦的ajax 請求格式
$.ajax({ url:"http://xxxxxxxxxxxxxxxxx/",//你的域名 dataType:"json", //對服務(wù)器返回的結(jié)果進行該數(shù)據(jù)格式處理 我這里寫了json 也可以紅xml、text、html 等格式 type:"get', //請求到服務(wù)器的方式 我這里是get 也可以用其它形式 如post beforeSend:function(res){}, //在請求之前會調(diào)用這個方法 其中的res 就是XMLHttpRequest 對象 success:function(result){} //服務(wù)器返回的數(shù)據(jù)進行dataTyoe 設(shè)置的格式 處理后返回的結(jié)果 })
在這其中,$.ajax()
方法中傳入的數(shù)據(jù)是一個json 這不難發(fā)現(xiàn)吧。 那我們完全可以這樣去調(diào)用
var ajaxJson = { url:"http://xxxxxxxxxxxxxxxxx/", dataType:"json", type:"get', beforeSend:function(res){}, //在請求之前會調(diào)用這個方法 其中的res 就是XMLHttpRequest 對象 success:function(result){} } $.ajax(ajaxJson); //這樣去使用。
如果我們想用戶在某一個時刻只進行一個請求,而不會產(chǎn)生多余的請求怎么辦呢?
在ajax 前面添加一個判定。
var ajax_oper = { ajax_status : true, //當前ajax執(zhí)行狀態(tài) ajax_json : function(ajaxJson){ if(!this.ajax_status) return false; // 當這個條件成立的時候,就認為當前有一個正在執(zhí)行的ajax操作 $.ajax(ajaxJson); } }
然后 我們在ajaxJson變量中添加如下配置
var ajaxJson={ url:"http://xxxxxxxxxxxxxxxxx/", dataType:"json", type:"get', beforeSend:function(res){ ajax_oper.ajax_status = false; }, success:function(result){ ajax_oper.ajax_status = true; } } $.ajax(ajaxJson);
這樣就可以在每次請求的時候判定一下 當前是否有正在執(zhí)行的ajax請求 如果有就返回,不去執(zhí)行。如果沒有就執(zhí)行。當一個ajax執(zhí)行完畢后我們將ajax_oper的狀態(tài)調(diào)整回來等待下一次請求的進行更改。
當然在移動web開發(fā)當中touch
事件 有點違背原理,我們在測試的時候發(fā)現(xiàn),在同一時間。touch
事件被觸發(fā)了多次,并且產(chǎn)生了多個ajax請求。更改ajax_status并沒有起到作用,分析的方案是 touch事件靈敏到了,連ajax_oper的狀態(tài)還沒更改就已經(jīng)被觸發(fā)了多次,也就是在統(tǒng)一時間多個ajax請求都在執(zhí)行$.ajax
方法。這種解決方案,第一就是更改touch
事件為click事件,第二就是添加多個ajax_oper 狀態(tài),層層判定(也有點不保險哈),第三就是更改后臺邏輯處理,如在數(shù)據(jù)庫處理的時候添加觸發(fā)器,每次在更改的時候觸發(fā)器會先處理一次,然后根據(jù)觸發(fā)器的處理執(zhí)行相應(yīng)的處理。 對了,提示一下,在mysql innodb 表 事務(wù)處理過程中 也是會觸發(fā)觸發(fā)器的。根據(jù)結(jié)果進行commit 和 rollback。
更多關(guān)于jQuery相關(guān)內(nèi)容可查看本站專題:《jquery中Ajax用法總結(jié)》、《jQuery擴展技巧總結(jié)》、《jQuery常用插件及用法總結(jié)》、《jQuery常見經(jīng)典特效匯總》及《jquery選擇器用法總結(jié)》
希望本文所述對大家jQuery程序設(shè)計有所幫助。
- jquery的ajax異步請求接收返回json數(shù)據(jù)實例
- 跨域請求之jQuery的ajax jsonp的使用解惑
- jQuery.ajax 跨域請求webapi設(shè)置headers的解決方案
- Jquery Ajax請求文件下載操作失敗的原因分析及解決辦法
- 淺析jQuery Ajax請求參數(shù)和返回數(shù)據(jù)的處理
- 教你如何終止JQUERY的$.AJAX請求
- JQuery的Ajax跨域請求原理概述及實例
- jquery+ajax實現(xiàn)跨域請求的方法
- jQuery Ajax請求后臺數(shù)據(jù)并在前臺接收
- js與jQuery終止正在發(fā)送的ajax請求的方法
相關(guān)文章
jQuery 遍歷-nextUntil()方法以及prevUntil()方法的使用介紹
本篇文章介紹了,jQuery 遍歷-nextUntil()方法以及prevUntil()方法的使用。需要的朋友參考下2013-04-04jQuery中通過ajax的get()函數(shù)讀取頁面的方法
這篇文章主要介紹了jQuery中通過ajax的get()函數(shù)讀取頁面的方法,需要的朋友可以參考下2016-02-02使用jQuery獲取radio/checkbox組的值的代碼收集
很久沒有寫JQuery的文章了。今天來看下JQ對天Checkbox復(fù)選框的操作??聪旅娴囊粋€小例子。在這個例子中包括了以下幾個功能2009-12-12jquery slibings選取同級其他元素的實現(xiàn)代碼
jquery選取同級其他元素可以使用slibings方法,end方法可以清除之前的鏈式操作,相當于重新開始2013-11-11