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