jquery ajax 请求小技巧实例分析


Posted in jQuery onNovember 11, 2019

本文实例讲述了jquery ajax 请求小技巧。分享给大家供大家参考,具体如下:

jquery   是一个非常好用的js框架,它为我们提供了很多工具。启动异步请求就是很好用的一个工具

官方推荐的ajax 请求格式

$.ajax({
   url:"http://xxxxxxxxxxxxxxxxx/",//你的域名
   dataType:"json",        //对服务器返回的结果进行该数据格式处理 我这里写了json 也可以红xml、text、html 等格式
   type:"get',           //请求到服务器的方式 我这里是get 也可以用其它形式 如post
   beforeSend:function(res){},   //在请求之前会调用这个方法  其中的res 就是XMLHttpRequest 对象
   success:function(result){}   //服务器返回的数据进行dataTyoe 设置的格式 处理后返回的结果
})

在这其中,$.ajax()  方法中传入的数据是一个json   这不难发现吧。  那我们完全可以这样去调用

var ajaxJson = {
   url:"http://xxxxxxxxxxxxxxxxx/",
  dataType:"json",
   type:"get',
   beforeSend:function(res){},  //在请求之前会调用这个方法  其中的res 就是XMLHttpRequest 对象
   success:function(result){}
}
$.ajax(ajaxJson);      //这样去使用。

如果我们想用户在某一个时刻只进行一个请求,而不会产生多余的请求怎么办呢?

在ajax 前面添加一个判定。

var ajax_oper = {
   ajax_status : true,             //当前ajax执行状态
   ajax_json : function(ajaxJson){
       if(!this.ajax_status) return false; // 当这个条件成立的时候,就认为当前有一个正在执行的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);

这样就可以在每次请求的时候判定一下 当前是否有正在执行的ajax请求 如果有就返回,不去执行。如果没有就执行。当一个ajax执行完毕后我们将ajax_oper的状态调整回来等待下一次请求的进行更改。

当然在移动web开发当中touch事件 有点违背原理,我们在测试的时候发现,在同一时间。touch事件被触发了多次,并且产生了多个ajax请求。更改ajax_status并没有起到作用,分析的方案是 touch事件灵敏到了,连ajax_oper的状态还没更改就已经被触发了多次,也就是在统一时间多个ajax请求都在执行$.ajax方法。这种解决方案,第一就是更改touch事件为click事件,第二就是添加多个ajax_oper 状态,层层判定(也有点不保险哈),第三就是更改后台逻辑处理,如在数据库处理的时候添加触发器,每次在更改的时候触发器会先处理一次,然后根据触发器的处理执行相应的处理。  对了,提示一下,在mysql innodb 表 事务处理过程中    也是会触发触发器的。根据结果进行commit 和 rollback。

更多关于jQuery相关内容可查看本站专题:《jquery中Ajax用法总结》、《jQuery扩展技巧总结》、《jQuery常用插件及用法总结》、《jQuery常见经典特效汇总》及《jquery选择器用法总结》

希望本文所述对大家jQuery程序设计有所帮助。

jQuery 相关文章推荐
jQuery鼠标悬停内容动画切换效果
Apr 27 jQuery
jQuery列表检索功能实现代码
Jul 17 jQuery
jquery鼠标悬停导航下划线滑出效果
Sep 29 jQuery
jQuery中过滤器的基本用法示例
Oct 11 jQuery
基于jQuery的$.getScript方法去加载javaScript文档解析
Nov 08 jQuery
jQuery获取随机颜色的实例代码
May 21 jQuery
jQuery实现的页面详情展开收起功能示例
Jun 11 jQuery
jQuery+vue.js实现的多选下拉列表功能示例
Jan 15 jQuery
一文快速了解JQuery中的AJAX
May 31 jQuery
jQuery实现的图片点击放大缩小功能案例
Jan 02 jQuery
JQuery表单元素取值赋值方法总结
May 12 jQuery
jQuery实现鼠标拖动图片功能
Mar 04 jQuery
jQuery利用cookie 实现本地收藏功能(不重复无需多次命名)
Nov 07 #jQuery
jQuery实现form表单基于ajax无刷新提交方法实例代码
Nov 04 #jQuery
jQuery鼠标滑过横向时间轴样式(代码详解)
Nov 01 #jQuery
jQuery高级编程之js对象、json与ajax用法实例分析
Nov 01 #jQuery
Javascript和jquery在selenium的使用过程
Oct 31 #jQuery
JQuery 实现文件下载的常用方法分析
Oct 29 #jQuery
jquery validate 实现动态增加/删除验证规则操作示例
Oct 28 #jQuery
You might like
BBS(php & mysql)完整版(三)
2006/10/09 PHP
PHP新手上路(十三)
2006/10/09 PHP
PHP完整的日历类(CLASS)
2006/11/27 PHP
ThinkPHP使用UTFWry地址库进行IP定位实例
2014/04/01 PHP
phpinfo() 中 Local Value(局部变量)Master Value(主变量) 的区别
2016/02/03 PHP
PHP使用SOAP调用API操作示例
2018/12/25 PHP
PHP实现获取ip地址的5种方法,以及插入用户登录日志操作示例
2019/02/28 PHP
event.srcElement 用法笔记e.target
2009/12/18 Javascript
一个基于jquery的图片切换效果
2010/07/06 Javascript
图片动画横条广告带上下滚动的JS代码
2013/10/25 Javascript
jQuery拖拽 & 弹出层 介绍与示例
2013/12/27 Javascript
原生的html元素选择器类似jquery选择器
2014/10/15 Javascript
JS实现经典的中国地区三级联动下拉菜单功能实例【测试可用】
2017/06/06 Javascript
input file样式修改以及图片预览删除功能详细概括(推荐)
2017/08/17 Javascript
详解webpack编译多页面vue项目的配置问题
2017/12/11 Javascript
详解vue-cli 本地开发mock数据使用方法
2018/05/29 Javascript
微信小程序WebSocket实现聊天对话功能
2018/07/06 Javascript
vue el-table实现行内编辑功能
2019/12/11 Javascript
JS数组方法shift()、unshift()用法实例分析
2020/01/18 Javascript
vue elementui 实现搜索栏公共组件封装的实例代码
2020/01/20 Javascript
Python列表推导式的使用方法
2013/11/21 Python
Python lxml模块安装教程
2015/06/02 Python
python http接口自动化脚本详解
2018/01/02 Python
利用python实现微信头像加红色数字功能
2018/03/26 Python
Flask实现跨域请求的处理方法
2018/09/27 Python
Django跨域请求CSRF的方法示例
2018/11/11 Python
Python面向对象程序设计之类的定义与继承简单示例
2019/03/18 Python
django ModelForm修改显示缩略图 imagefield类型的实例
2019/07/28 Python
Flask框架模板继承实现方法分析
2019/07/31 Python
小学安全工作汇报材料
2014/08/19 职场文书
农村党支部书记司法四风问题对照检查材料
2014/09/26 职场文书
2015年青年志愿者工作总结
2015/05/20 职场文书
复兴之路纪录片观后感
2015/06/02 职场文书
化工厂员工工作总结
2015/10/15 职场文书
golang实现浏览器导出excel文件功能
2022/03/25 Golang
vscode远程免密登入Linux服务器的配置方法
2022/06/28 Servers